mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2026-03-13 07:15:53 +00:00
1
This commit is contained in:
parent
93f7036599
commit
9b55b17b54
@ -1,31 +0,0 @@
|
||||
<template>
|
||||
<div class="edit-horz-blank">
|
||||
<h3 class="mb-[10px]">test信息设置</h3>
|
||||
<el-form label-width="80px" class="px-[10px]">
|
||||
<el-form-item :label="t('blankHeight')">
|
||||
<el-slider v-model="diyStore.editComponent.height" show-input size="small"
|
||||
class="ml-[10px] horz-blank-slider"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {t} from '@/lang'
|
||||
import useDiyStore from '@/stores/modules/diy'
|
||||
|
||||
const diyStore = useDiyStore()
|
||||
|
||||
defineExpose({})
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.horz-blank-slider {
|
||||
.el-slider__input {
|
||||
width: 100px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style lang="scss" scoped></style>
|
||||
@ -1,12 +1,20 @@
|
||||
<template>
|
||||
<div class="edit-horz-blank">
|
||||
<h3 class="mb-[10px]">test文本设置</h3>
|
||||
<el-form label-width="80px" class="px-[10px]">
|
||||
<el-form-item :label="t('blankHeight')">
|
||||
<el-slider v-model="diyStore.editComponent.height" show-input size="small"
|
||||
class="ml-[10px] horz-blank-slider"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 内容 -->
|
||||
<div class="content-wrap" v-show="diyStore.editTab == 'content'">
|
||||
<div class="edit-attr-item-wrap">
|
||||
<h3 class="mb-[10px]">文本设置</h3>
|
||||
<el-form label-width="80px" class="px-[10px]">
|
||||
<el-form-item :label="t('blankHeight')">
|
||||
<el-slider v-model="diyStore.editComponent.height" show-input size="small" class="ml-[10px] horz-blank-slider"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 样式 -->
|
||||
<div class="style-wrap" v-show="diyStore.editTab == 'style'">
|
||||
<!-- 组件样式 -->
|
||||
<slot name="style"></slot>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
@ -16,6 +24,7 @@
|
||||
import useDiyStore from '@/stores/modules/diy'
|
||||
|
||||
const diyStore = useDiyStore()
|
||||
diyStore.editComponent.ignore = []; // 忽略公共属性
|
||||
|
||||
defineExpose({})
|
||||
|
||||
|
||||
@ -11,9 +11,8 @@
|
||||
|
||||
namespace addon\hello_world\app\adminapi\controller;
|
||||
|
||||
use app\adminapi\controller\BaseAdminController;
|
||||
use app\service\core\addon\CoreInstallService;
|
||||
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
class Index extends BaseAdminController
|
||||
{
|
||||
|
||||
21
niucloud/addon/hello_world/app/dict/diy/components.php
Normal file
21
niucloud/addon/hello_world/app/dict/diy/components.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'BASIC' => [
|
||||
'title' => get_lang('dict_diy.component_type_basic'),
|
||||
'list' => [
|
||||
'HelloText' => [
|
||||
'title' => 'hello文本',
|
||||
'icon' => 'iconfont-iconhuiyuanzhongxin',
|
||||
'path' => 'edit-hello-text',
|
||||
'support_page' => [],
|
||||
'uses' => 0,
|
||||
'sort' => 10007,
|
||||
'value' => [
|
||||
'height' => 20
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
26
niucloud/addon/hello_world/app/dict/diy/links.php
Normal file
26
niucloud/addon/hello_world/app/dict/diy/links.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'SYSTEM_LINK' => [
|
||||
'title' => get_lang('dict_diy.system_link'),
|
||||
'child_list' => [
|
||||
[
|
||||
'name' => 'HELLO_WORLD_INFO',
|
||||
'title' => get_lang('dict_diy.hello_world_info'),
|
||||
'url' => '/pages/hello_world/info',
|
||||
'is_share' => 1
|
||||
],
|
||||
]
|
||||
],
|
||||
'HELLO_WORLD_LINK' => [
|
||||
'title' => get_lang('dict_diy.hello_world_link'),
|
||||
'child_list' => [
|
||||
[
|
||||
'name' => 'HELLO_WORLD_INDEX',
|
||||
'title' => get_lang('dict_diy.hello_world_index'),
|
||||
'url' => '/pages/hello_world/index',
|
||||
'is_share' => 1
|
||||
],
|
||||
]
|
||||
],
|
||||
];
|
||||
89
niucloud/addon/hello_world/app/dict/diy/pages.php
Normal file
89
niucloud/addon/hello_world/app/dict/diy/pages.php
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'DIY_INDEX' => [
|
||||
'hello_world_index' => [ // 页面标识
|
||||
"title" => "hello world 首页", // 页面名称
|
||||
'cover' => '', // 页面封面图
|
||||
'preview' => '', // 页面预览图
|
||||
'desc' => '', // 页面描述
|
||||
// 页面数据源
|
||||
"data" => [
|
||||
"global" => [
|
||||
"title" => "hello world首页页面",
|
||||
"pageBgColor" => "#F8F8F8",
|
||||
'bgUrl' => '',
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
"bottomTabBarSwitch" => true,
|
||||
"template" => [
|
||||
'textColor' => "#303133",
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
]
|
||||
],
|
||||
'topStatusBar' => [
|
||||
'bgColor' => "#ffffff",
|
||||
'isTransparent' => false,
|
||||
'isShow' => true,
|
||||
'style' => 'style-1',
|
||||
'textColor' => "#333333",
|
||||
'textAlign' => 'center',
|
||||
],
|
||||
'popWindow' => [
|
||||
'imgUrl' => "",
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
'count' => -1,
|
||||
'show' => 0,
|
||||
'link' => [
|
||||
'name' => ""
|
||||
],
|
||||
]
|
||||
],
|
||||
"value" => [
|
||||
[
|
||||
"path" => "edit-image-ads",
|
||||
"id" => "4640ld4k1pu0",
|
||||
"componentName" => "ImageAds",
|
||||
"componentTitle" => "图片广告",
|
||||
"uses" => 0,
|
||||
"list" => [
|
||||
[
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/banner.png",
|
||||
"imgWidth" => 750,
|
||||
"imgHeight" => 320,
|
||||
"id" => "2xuytp7622w0"
|
||||
]
|
||||
],
|
||||
"ignore" => [],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
12
niucloud/addon/hello_world/app/dict/diy/template.php
Normal file
12
niucloud/addon/hello_world/app/dict/diy/template.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'DIY_HELLO_WORLD_INDEX' => [
|
||||
'title' => get_lang('dict_diy.page_hello_world_index'),
|
||||
'page' => 'pages/hello_world/index',
|
||||
],
|
||||
'DIY_HELLO_WORLD_INFO' => [
|
||||
'title' => get_lang('dict_diy.page_hello_world_info'),
|
||||
'page' => 'pages/hello_world/info',
|
||||
],
|
||||
];
|
||||
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
|
||||
return [
|
||||
MemberAccountTypeDict::POINT => [
|
||||
//调整
|
||||
'hello_world_test' => [
|
||||
//名称
|
||||
'name' => "hello_world账户变化",
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
|
||||
],
|
||||
];
|
||||
@ -13,6 +13,5 @@
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
];
|
||||
36
niucloud/addon/hello_world/app/dict/menu/site.php
Normal file
36
niucloud/addon/hello_world/app/dict/menu/site.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
[
|
||||
'menu_name' => '插件站点菜单',
|
||||
'menu_key' => 'niucloud_site_hello',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconyingyongshichang',
|
||||
'api_url' => '',
|
||||
'router_path' => 'hello_world',
|
||||
'view_path' => 'hello_world/site',
|
||||
'methods' => '',
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
],
|
||||
/* [
|
||||
'menu_name' => '会员列表',
|
||||
'menu_key' => 'member_list',
|
||||
'parent_key' => 'member',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconhuiyuanliebiao',
|
||||
'api_url' => 'member/member',
|
||||
'router_path' => 'hello_world_member_list',
|
||||
'view_path' => 'hello_world/member',
|
||||
'methods' => 'get',
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'children' => [
|
||||
|
||||
]
|
||||
],
|
||||
"delete" => "member" //针对修改系统菜单处理方式,可以删除系统菜单,设置对应key值,也可删除不需要的菜单处理
|
||||
*/
|
||||
];
|
||||
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'BASICS' => [
|
||||
'title' => get_lang('enum_diy.component_type_basics'),
|
||||
'list' => [
|
||||
'TestInfo' => [
|
||||
'title' => '测试信息',
|
||||
'icon' => 'iconfont-iconhuiyuanzhongxin',
|
||||
'path' => 'edit-hello-info',
|
||||
'support_page' => [],
|
||||
'max_count' => 0,
|
||||
'sort' => 10007,
|
||||
'value' => [
|
||||
'height' => 20
|
||||
],
|
||||
],
|
||||
'TestText' => [
|
||||
'title' => '测试文本',
|
||||
'icon' => 'iconfont-iconhuiyuanzhongxin',
|
||||
'path' => 'edit-hello-text',
|
||||
'support_page' => [],
|
||||
'max_count' => 0,
|
||||
'sort' => 10007,
|
||||
'value' => [
|
||||
'height' => 20
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
[
|
||||
'name' => 'HELLO_WORLD_INDEX',
|
||||
'title' => get_lang('enum_hello_world.links_hello_world_index'),
|
||||
],
|
||||
];
|
||||
@ -1,4 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
];
|
||||
@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
[
|
||||
'menu_name' => '插件站点菜单',
|
||||
'menu_key' => 'niucloud_site_hello',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconyingyongshichang',
|
||||
'api_url' => '',
|
||||
'router_path' => 'hello_world',
|
||||
'view_path' => 'hello_world/site',
|
||||
'methods' => '',
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
];
|
||||
@ -13,8 +13,11 @@
|
||||
* 插件枚举语言
|
||||
*/
|
||||
return [
|
||||
'enum_hello_world' => [
|
||||
//菜单类型
|
||||
'links_hello_world_index' => 'hello world 插件',
|
||||
],
|
||||
'dict_diy' => [
|
||||
'page_hello_world_index' => 'hello 首页',
|
||||
'page_hello_world_info' => 'hello 信息',
|
||||
'hello_world_link' => 'hello world链接',
|
||||
'hello_world_index' => 'hello world index 插件',
|
||||
'hello_world_info' => 'hello world info 插件'
|
||||
]
|
||||
];
|
||||
@ -1,14 +0,0 @@
|
||||
{
|
||||
"pages": [ // pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/hello_world/index",
|
||||
"style": {
|
||||
// #ifdef H5
|
||||
"navigationStyle": "custom",
|
||||
// #endif
|
||||
"navigationBarTitleText": "%pages.index.index%"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
25
niucloud/addon/hello_world/package/uni-app-pages.php
Normal file
25
niucloud/addon/hello_world/package/uni-app-pages.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
return [
|
||||
'pages' => <<<EOT
|
||||
// PAGE_BEGIN
|
||||
{
|
||||
"path": "pages/hello_world/index",
|
||||
"style": {
|
||||
// #ifdef H5
|
||||
"navigationStyle": "custom",
|
||||
// #endif
|
||||
"navigationBarTitleText": "%pages.hello_world.index%"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/hello_world/info",
|
||||
"style": {
|
||||
// #ifdef H5
|
||||
"navigationStyle": "custom",
|
||||
// #endif
|
||||
"navigationBarTitleText": "%pages.hello_world.info%"
|
||||
}
|
||||
}
|
||||
// PAGE_END
|
||||
EOT
|
||||
];
|
||||
BIN
niucloud/addon/hello_world/resource/cover.png
Normal file
BIN
niucloud/addon/hello_world/resource/cover.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 128 KiB |
@ -1,24 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
演示插件信息——自定义组件
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
import useDiyStore from '@/stores/diy';
|
||||
|
||||
const props = defineProps(['component', 'index']);
|
||||
|
||||
const diyStore = useDiyStore();
|
||||
|
||||
const diyComponent = computed(() => {
|
||||
if (diyStore.mode == 'decorate') {
|
||||
return diyStore.value[props.index];
|
||||
} else {
|
||||
return props.component;
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
@ -1,24 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
演示插件文本——自定义组件
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
import useDiyStore from '@/stores/diy';
|
||||
|
||||
const props = defineProps(['component', 'index']);
|
||||
|
||||
const diyStore = useDiyStore();
|
||||
|
||||
const diyComponent = computed(() => {
|
||||
if (diyStore.mode == 'decorate') {
|
||||
return diyStore.value[props.index];
|
||||
} else {
|
||||
return props.component;
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
@ -1,20 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 扩展组件 -->
|
||||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
// 自定义扩展组件
|
||||
import { computed } from 'vue';
|
||||
import useDiyStore from '@/stores/diy';
|
||||
const props = defineProps(['component', 'index']);
|
||||
const diyStore = useDiyStore();
|
||||
const diyComponent = computed(() => {
|
||||
if (diyStore.mode == 'decorate') {
|
||||
return diyStore.value[props.index];
|
||||
} else {
|
||||
return props.component;
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
@ -0,0 +1,34 @@
|
||||
<template>
|
||||
<view :style="warpCss">
|
||||
hello-world:演示插件文本——自定义组件
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
import useDiyStore from '@/stores/diy';
|
||||
|
||||
const props = defineProps(['component', 'index']);
|
||||
|
||||
const diyStore = useDiyStore();
|
||||
|
||||
const diyComponent = computed(() => {
|
||||
if (diyStore.mode == 'decorate') {
|
||||
return diyStore.value[props.index];
|
||||
} else {
|
||||
return props.component;
|
||||
}
|
||||
})
|
||||
|
||||
const warpCss = computed(() => {
|
||||
var style = '';
|
||||
style += 'background-color:' + diyComponent.value.componentBgColor + ';';
|
||||
style += 'border-top-left-radius:' + diyComponent.value.topRounded * 2 + 'rpx;';
|
||||
style += 'border-top-right-radius:' + diyComponent.value.topRounded * 2 + 'rpx;';
|
||||
style += 'border-bottom-left-radius:' + diyComponent.value.bottomRounded * 2 + 'rpx;';
|
||||
style += 'border-bottom-right-radius:' + diyComponent.value.bottomRounded * 2 + 'rpx;';
|
||||
return style;
|
||||
})
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
@ -1,43 +0,0 @@
|
||||
{
|
||||
"pages" : [ // pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/hello_world/index",
|
||||
"style": {
|
||||
// #ifdef H5
|
||||
"navigationStyle": "custom",
|
||||
// #endif
|
||||
"navigationBarTitleText": "%pages.hello_world.index%"
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "",
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"backgroundColor": "#F8F8F8",
|
||||
"backgroundColorTop": "#F8F8F8",
|
||||
"backgroundColorBottom": "#F8F8F8"
|
||||
},
|
||||
"tabBar": {
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/article/list"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/member/index"
|
||||
}
|
||||
]
|
||||
},
|
||||
"uniIdRouter": {},
|
||||
"easycom": {
|
||||
"custom": {
|
||||
"^u-(.*)": "uview-plus/components/u-$1/u-$1.vue",
|
||||
"diy-system-(\W.*)": "@/components/diy/system/$1/index.vue",
|
||||
"diy-core-(\W.*)": "@/components/diy/core/$1/index.vue",
|
||||
"diy-(\W.*)": "@/components/diy/$1/index.vue"
|
||||
}
|
||||
}
|
||||
}
|
||||
166
niucloud/addon/hello_world/uni-app/pages/hello_world/info.vue
Normal file
166
niucloud/addon/hello_world/uni-app/pages/hello_world/info.vue
Normal file
@ -0,0 +1,166 @@
|
||||
<template>
|
||||
<view class="bg-gray-100 min-h-[100vh]">
|
||||
<view class="fixed top-0 inset-x-0 z-10">
|
||||
<view
|
||||
class='p-[10px] bg-white border-solid border-t-0 border-l-0 border-r-0 border-b-[1px] border-gray-200'>
|
||||
<u-search :placeholder="t('searchPlaceholder')" actionText :actionStyle="{'width':0,'margin':0}"
|
||||
v-model="articleTitle" @clickIcon="searchFn"></u-search>
|
||||
</view>
|
||||
<scroll-view :scroll-x="true" :enable-flex="true"
|
||||
class="nav-list bg-white align-center px-[10px] box-border">
|
||||
<view class="flex scroll-view-wrap">
|
||||
<view
|
||||
:class="['nav-item text-[14px] mx-[5px] h-[30px] leading-[30px] my-[5px] border-t-0 border-l-0 border-r-0',{'border-solid border-b-[2px] active': currCategoryId==item.category_id}]"
|
||||
@click="loadCategory(item.category_id)" v-for="(item,index) in categoryList"
|
||||
:key="item.category_id">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<mescroll-body ref="mescrollRef" @init="mescrollInit" top="220rpx" @down="downCallback" @up="getArticleListFn">
|
||||
<view v-for="(item,index) in articleList" :key="item.id"
|
||||
:class="['bg-white flex align-center p-[10px]',{'border-solid border-t-0 border-l-0 border-r-0 border-b-[1px] border-gray-200': articleList.length-1 !== index}] "
|
||||
@click="toLink(item.id)">
|
||||
<u--image width="260rpx" height="200rpx" :src="img(item.image)" v-if="item.image" model="aspectFill">
|
||||
<template #error>
|
||||
<u-icon name="photo" color="#999" size="50"></u-icon>
|
||||
</template>
|
||||
</u--image>
|
||||
<view class="flex-1 flex flex-col justify-between ml-[10px]">
|
||||
<view class="text-[16px] leading-[1.3] multi-hidden mt-[2px]">{{item.title}}</view>
|
||||
<view class="text-[14px] using-hidden mb-[auto] mt-[10px] text-gray-500">{{item.summary}}</view>
|
||||
<view class="text-[12px] text-gray-400 flex justify-between mb-[5px]">
|
||||
<text class="">{{item.create_time}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<mescroll-empty v-if="!articleList.length && loading"></mescroll-empty>
|
||||
</mescroll-body>
|
||||
<tabbar />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref, onMounted } from 'vue'
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { t } from '@/locale'
|
||||
import { redirect, img } from '@/utils/common';
|
||||
import { getArticleList, getArticleCategory } from '@/api/article';
|
||||
import MescrollBody from '@/components/mescroll/mescroll-body/mescroll-body.vue';
|
||||
import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue';
|
||||
import useMescroll from '@/components/mescroll/hooks/useMescroll.js';
|
||||
import { onPageScroll, onReachBottom } from '@dcloudio/uni-app';
|
||||
const { mescrollInit, downCallback, getMescroll } = useMescroll(onPageScroll, onReachBottom);
|
||||
import { useShare } from '@/hooks/useShare'
|
||||
|
||||
const { setShare, onShareAppMessage, onShareTimeline } = useShare()
|
||||
setShare()
|
||||
onShareAppMessage()
|
||||
onShareTimeline()
|
||||
|
||||
let categoryList = ref<Array<Object>>([]);
|
||||
let articleList = ref<Array<any>>([]);
|
||||
let currCategoryId = ref<number | string>('');
|
||||
let articleTitle = ref<string>('');
|
||||
let mescrollRef = ref(null);
|
||||
let loading = ref<boolean>(false);
|
||||
|
||||
interface acceptingDataStructure {
|
||||
data : acceptingDataItemStructure,
|
||||
msg : string,
|
||||
code : number
|
||||
}
|
||||
interface acceptingDataItemStructure {
|
||||
data : object,
|
||||
[propName : string] : number | string | object
|
||||
}
|
||||
onLoad(async () => {
|
||||
await getArticleCategory().then((res : acceptingDataStructure) => {
|
||||
const initData = { name: t("all"), category_id: '' };
|
||||
categoryList.value.push(initData);
|
||||
categoryList.value = categoryList.value.concat(res.data.data);
|
||||
});
|
||||
})
|
||||
|
||||
interface mescrollStructure {
|
||||
num : number,
|
||||
size : number,
|
||||
endSuccess : Function,
|
||||
[propName : string] : any
|
||||
}
|
||||
const getArticleListFn = (mescroll : mescrollStructure) => {
|
||||
loading.value = false;
|
||||
let data : object = {
|
||||
category_id: currCategoryId.value,
|
||||
title: articleTitle.value,
|
||||
page: mescroll.num,
|
||||
limit: mescroll.size
|
||||
};
|
||||
|
||||
getArticleList(data).then((res : acceptingDataStructure) => {
|
||||
let newArr = (res.data.data as Array<Object>);
|
||||
//设置列表数据
|
||||
if (mescroll.num == 1) {
|
||||
articleList.value = []; //如果是第一页需手动制空列表
|
||||
}
|
||||
articleList.value = articleList.value.concat(newArr);
|
||||
mescroll.endSuccess(newArr.length);
|
||||
loading.value = true;
|
||||
}).catch(() => {
|
||||
loading.value = true;
|
||||
mescroll.endErr(); // 请求失败, 结束加载
|
||||
})
|
||||
}
|
||||
|
||||
const loadCategory = (id : string) => {
|
||||
currCategoryId.value = id;
|
||||
getMescroll().resetUpScroll();
|
||||
}
|
||||
|
||||
const searchFn = () => {
|
||||
getMescroll().resetUpScroll();
|
||||
}
|
||||
|
||||
const toLink = (id : string) => {
|
||||
redirect({ url: '/pages/article/detail', param: { id } })
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
setTimeout(() => {
|
||||
getMescroll().optUp.textNoMore = t("end");
|
||||
}, 500)
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.nav-item.active {
|
||||
color: $u-primary;
|
||||
}
|
||||
|
||||
.scroll-view-wrap {
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
/* 单行超出隐藏 */
|
||||
.using-hidden {
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
white-space: break-spaces;
|
||||
}
|
||||
|
||||
/* 多行超出隐藏 */
|
||||
.multi-hidden {
|
||||
word-break: break-all;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
</style>
|
||||
@ -1,9 +1,10 @@
|
||||
<?php
|
||||
namespace app;
|
||||
|
||||
use app\enum\sys\AppTypeEnum;
|
||||
use app\dict\sys\AppTypeDict;
|
||||
use core\exception\AdminException;
|
||||
use core\exception\AuthException;
|
||||
use core\exception\ServerException;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\DbException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
@ -57,7 +58,7 @@ class ExceptionHandle extends Handle
|
||||
$app_type = empty($app_type) ? str_replace('/', '', request()->rootUrl()) : $app_type;
|
||||
//写入日志内容
|
||||
$log = [
|
||||
'服务主体:'.($app_type == AppTypeEnum::ADMIN ? request()->uid() : request()->memberId()),//服务发起者 //用户ID
|
||||
'服务主体:'.($app_type == AppTypeDict::ADMIN ? request()->uid() : request()->memberId()),//服务发起者 //用户ID
|
||||
'IP:'.request()->ip(),//ip
|
||||
'耗时(毫秒):'.ceil((microtime(true) * 1000) - (request()->time(true) * 1000)),//耗时(毫秒)
|
||||
'请求类型:'.request()->method(),//请求类型
|
||||
@ -102,8 +103,9 @@ class ExceptionHandle extends Handle
|
||||
} else if($e instanceof UnexpectedValueException){
|
||||
return fail($e->getMessage(), [], 401);
|
||||
}else if($e instanceof AuthException || $e instanceof AdminException){
|
||||
|
||||
return fail($e->getMessage(), [], $e->getCode() ?: 400);
|
||||
}else if($e instanceof ServerException){
|
||||
return fail($e->getMessage(), [], http_code:$e->getCode());
|
||||
}else {
|
||||
return fail($e->getMessage(), $massageData);
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace app;
|
||||
use app\enum\common\ChannelEnum;
|
||||
use app\dict\common\ChannelDict;
|
||||
|
||||
/**
|
||||
* Class Request
|
||||
@ -13,7 +13,7 @@ class Request extends \think\Request
|
||||
//认证信息
|
||||
protected static $auth_info = [];
|
||||
|
||||
protected static $site_id = 1;
|
||||
protected static $site_id = 0;
|
||||
|
||||
/**
|
||||
* 获取请求参数
|
||||
@ -95,7 +95,7 @@ class Request extends \think\Request
|
||||
if ($site_id > 0) {
|
||||
static::$site_id = (int)$site_id;
|
||||
} else {
|
||||
return static::$site_id ?? $this->getDefaultSiteId();
|
||||
return static::$site_id ?? $this->defaultSiteId();
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ class Request extends \think\Request
|
||||
* @return array|string
|
||||
*/
|
||||
public function getChannel(){
|
||||
return $this->header(system_name('channel_name'), ChannelEnum::H5);
|
||||
return $this->header(system_name('channel_name'), ChannelDict::H5);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -173,7 +173,7 @@ class Request extends \think\Request
|
||||
* @return int
|
||||
*/
|
||||
public function defaultSiteId(){
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -13,7 +13,6 @@ namespace app\adminapi\controller\addon;
|
||||
|
||||
use app\service\admin\addon\AddonService;
|
||||
use app\service\core\addon\CoreAddonService;
|
||||
use app\service\core\addon\CoreInstallService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
|
||||
@ -34,17 +33,34 @@ class Addon extends BaseAdminController
|
||||
*/
|
||||
public function install($addon)
|
||||
{
|
||||
( new AddonService() )->install($addon);
|
||||
return success('ADDON_INSTALL_SUCCESS');
|
||||
return ( new AddonService() )->install($addon);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行安装
|
||||
* @param $addon
|
||||
* @return void
|
||||
*/
|
||||
public function execute($addon) {
|
||||
return ( new AddonService() )->executeInstall($addon);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插件安装环境检测
|
||||
* @param $addon
|
||||
* @return mixed
|
||||
*/
|
||||
public function installCheck($addon){
|
||||
return ( new AddonService() )->installCheck($addon);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询插件安装状态
|
||||
* @param $addon
|
||||
*/
|
||||
public function getInstallState($addon)
|
||||
public function getInstallState($addon, $key)
|
||||
{
|
||||
return success(( new AddonService() )->getInstallState($addon));
|
||||
return success(( new AddonService() )->getInstallState($addon, $key));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -12,7 +12,6 @@
|
||||
namespace app\adminapi\controller\addon;
|
||||
|
||||
use app\service\core\addon\CoreAddonService;
|
||||
use app\service\core\addon\CoreInstallService;
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
|
||||
namespace app\adminapi\controller\diy;
|
||||
|
||||
use app\enum\diy\PageEnum;
|
||||
use app\service\admin\diy\DiyService;
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
@ -67,7 +66,7 @@ class Diy extends BaseAdminController
|
||||
|
||||
/**
|
||||
* 自定义页面编辑
|
||||
* @param $id 自定义页面id
|
||||
* @param $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
@ -84,7 +83,7 @@ class Diy extends BaseAdminController
|
||||
|
||||
/**
|
||||
* 自定义页面删除
|
||||
* @param $id 自定义页面id
|
||||
* @param $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function del(int $id)
|
||||
@ -114,7 +113,8 @@ class Diy extends BaseAdminController
|
||||
$params = $this->request->params([
|
||||
[ 'id', "" ],
|
||||
[ "name", "" ],
|
||||
[ "type", "" ],
|
||||
[ "template", "" ],
|
||||
[ 'template_name', '' ],
|
||||
[ "title", "" ],
|
||||
]);
|
||||
|
||||
@ -132,16 +132,16 @@ class Diy extends BaseAdminController
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取页面类型
|
||||
* 获取页面模板
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function getPageType()
|
||||
public function getTemplate()
|
||||
{
|
||||
$params = $this->request->params([
|
||||
[ 'type', "" ],
|
||||
]);
|
||||
$page_type = PageEnum::getPageType($params[ 'type' ]);
|
||||
return success($page_type);
|
||||
$diy_service = new DiyService();
|
||||
return success($diy_service->getTemplate($params[ 'type' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -73,7 +73,7 @@ class DiyRoute extends BaseAdminController
|
||||
|
||||
/**
|
||||
* 自定义路由表编辑
|
||||
* @param $id 自定义路由表id
|
||||
* @param $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
@ -92,7 +92,7 @@ class DiyRoute extends BaseAdminController
|
||||
|
||||
/**
|
||||
* 自定义路由表删除
|
||||
* @param $id 自定义路由表id
|
||||
* @param $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function del(int $id)
|
||||
|
||||
@ -55,7 +55,7 @@ class Generator extends BaseController
|
||||
$data = $this->request->params([
|
||||
[ "table_name", "" ],
|
||||
], false);
|
||||
$this->validate($data, 'app\validate\generator\generator.add');
|
||||
$this->validate($data, 'app\validate\generator\Generator.add');
|
||||
$id = ( new GenerateService() )->add($data);
|
||||
return success('ADD_SUCCESS', [ 'id' => $id ]);
|
||||
}
|
||||
@ -75,7 +75,7 @@ class Generator extends BaseController
|
||||
[ "edit_type", "1" ],
|
||||
[ "table_column", "" ],
|
||||
], false);
|
||||
$this->validate($data, 'app\validate\generator\generator.edit');
|
||||
$this->validate($data, 'app\validate\generator\Generator.edit');
|
||||
( new GenerateService() )->edit($id, $data);
|
||||
return success('MODIFY_SUCCESS');
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ use app\service\admin\auth\ConfigService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
|
||||
|
||||
class Config extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ namespace app\adminapi\controller\login;
|
||||
|
||||
use app\service\admin\auth\ConfigService;
|
||||
use app\service\admin\auth\LoginService;
|
||||
use app\service\core\addon\CoreAddonInstallService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
|
||||
|
||||
@ -11,9 +11,12 @@
|
||||
|
||||
namespace app\adminapi\controller\member;
|
||||
|
||||
use app\enum\member\MemberAccountEnum;
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
use app\service\admin\member\MemberAccountService;
|
||||
use app\service\admin\member\MemberCashOutService;
|
||||
use app\service\admin\member\MemberService;
|
||||
use core\base\BaseAdminController;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
use think\Response;
|
||||
|
||||
class Account extends BaseAdminController
|
||||
@ -28,11 +31,40 @@ class Account extends BaseAdminController
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data[ 'account_type' ] = 'point';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员积分统计(用于会员积分统计窗口)
|
||||
*/
|
||||
public function sumPoint()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ 'member_id', '' ],
|
||||
]);
|
||||
$member_account_service = new MemberAccountService();
|
||||
$member_service = new MemberService();
|
||||
|
||||
if(empty($data['member_id']))
|
||||
{
|
||||
$commission_data = [
|
||||
'point_get' => $member_service->getSum('point_get'),//累计
|
||||
'point_use' => abs($member_account_service->getExpensesSumAccount(MemberAccountTypeDict::POINT)),
|
||||
];
|
||||
return success($commission_data);
|
||||
}else{
|
||||
$info = $member_account_service->getMemberAccountInfo($data['member_id']);
|
||||
$commission_data = [
|
||||
'point_get' => $info['point_get'],
|
||||
'point_use' => abs($member_account_service->getExpensesSumAccount(MemberAccountTypeDict::POINT,$data['member_id'])),
|
||||
];
|
||||
return success($commission_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 余额流水
|
||||
* @return Response
|
||||
@ -43,6 +75,7 @@ class Account extends BaseAdminController
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data[ 'account_type' ] = 'balance';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
@ -58,6 +91,7 @@ class Account extends BaseAdminController
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data[ 'account_type' ] = 'money';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
@ -74,7 +108,7 @@ class Account extends BaseAdminController
|
||||
[ 'memo', '' ],
|
||||
]);
|
||||
$res = ( new MemberAccountService() )->adjustPoint($data);
|
||||
return success('ADD_SUCCESS', [ 'id' => $res ]);
|
||||
return success('SUCCESS', [ 'id' => $res ]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -88,7 +122,7 @@ class Account extends BaseAdminController
|
||||
[ 'memo', '' ],
|
||||
]);
|
||||
$res = ( new MemberAccountService() )->adjustBalance($data);
|
||||
return success('ADD_SUCCESS', [ 'id' => $res ]);
|
||||
return success('SUCCESS', [ 'id' => $res ]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +137,7 @@ class Account extends BaseAdminController
|
||||
[ 'memo', '' ],
|
||||
]);
|
||||
$res = ( new MemberAccountService() )->adjustMoney($data);
|
||||
return success('ADD_SUCCESS', [ 'id' => $res ]);
|
||||
return success('SUCCESS', [ 'id' => $res ]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -116,11 +150,44 @@ class Account extends BaseAdminController
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data[ 'account_type' ] = 'commission';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员佣金统计(用于会员账户统计窗口)
|
||||
*/
|
||||
public function sumCommission()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ 'member_id', '' ],
|
||||
]);
|
||||
$member_account_service = new MemberAccountService();
|
||||
$member_service = new MemberService();
|
||||
|
||||
if(empty($data['member_id']))
|
||||
{
|
||||
$commission_data = [
|
||||
'total_commission' => $member_service->getSum('commission_get'),//累计
|
||||
'commission' => $member_service->getSum('commission'),//未提现
|
||||
'withdrawn_commission' => $member_account_service->getWithdrawnCommission(),//已提现
|
||||
'commission_cash_outing' => $member_service->getSum('commission_cash_outing'),//提现中
|
||||
];
|
||||
return success($commission_data);
|
||||
}else{
|
||||
$info = $member_account_service->getMemberAccountInfo($data['member_id']);
|
||||
$commission_data = [
|
||||
'commission' => $info['commission'],
|
||||
'commission_cash_outing' => $info['commission_cash_outing'],
|
||||
'withdrawn_commission' => $member_account_service->getWithdrawnCommission($data['member_id']),//已提现
|
||||
'total_commission' => $info['commission_get'],
|
||||
];
|
||||
return success($commission_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员余额统计(用于会员账户统计窗口)
|
||||
*/
|
||||
@ -134,8 +201,8 @@ class Account extends BaseAdminController
|
||||
{
|
||||
|
||||
$balance_data = [
|
||||
MemberAccountEnum::BALANCE => $member_account_service->getSumAccount(MemberAccountEnum::BALANCE),
|
||||
MemberAccountEnum::MONEY => $member_account_service->getSumAccount(MemberAccountEnum::MONEY),
|
||||
MemberAccountTypeDict::BALANCE => number_format($member_account_service->getSumAccount(MemberAccountTypeDict::BALANCE), 2),
|
||||
MemberAccountTypeDict::MONEY => number_format($member_account_service->getSumAccount(MemberAccountTypeDict::MONEY), 2),
|
||||
];
|
||||
return success($balance_data);
|
||||
}else{
|
||||
@ -158,7 +225,7 @@ class Account extends BaseAdminController
|
||||
*/
|
||||
public function accountType()
|
||||
{
|
||||
return success(MemberAccountEnum::getType());
|
||||
return success(MemberAccountTypeDict::getType());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
|
||||
namespace app\adminapi\controller\member;
|
||||
|
||||
use app\enum\member\MemberCashOutEnum;
|
||||
use app\enum\pay\TransferEnum;
|
||||
use app\dict\member\MemberCashOutDict;
|
||||
use app\dict\pay\TransferDict;
|
||||
use app\service\admin\member\MemberCashOutService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
@ -28,7 +28,12 @@ class CashOut extends BaseAdminController
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['status', ''],
|
||||
['transfer_type', ''],
|
||||
['create_time', []],
|
||||
['audit_time', []],
|
||||
['transfer_time', []],
|
||||
['cash_out_no', ''],
|
||||
['keywords', '']
|
||||
]);
|
||||
return success((new MemberCashOutService())->getPage($data));
|
||||
}
|
||||
@ -58,7 +63,7 @@ class CashOut extends BaseAdminController
|
||||
*/
|
||||
public function getTransferType()
|
||||
{
|
||||
return success(TransferEnum::getTransferType([], false));
|
||||
return success(TransferDict::getTransferType([], false));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -82,6 +87,14 @@ class CashOut extends BaseAdminController
|
||||
* @return Response
|
||||
*/
|
||||
public function getStatusList(){
|
||||
return success(MemberCashOutEnum::getStatus());
|
||||
return success(MemberCashOutDict::getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计数据
|
||||
*/
|
||||
public function stat()
|
||||
{
|
||||
return success((new MemberCashOutService())->stat());
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@ class Config extends BaseAdminController
|
||||
[ 'is_mobile', 0 ],
|
||||
[ 'is_auth_register', 1 ],
|
||||
[ 'is_bind_mobile', 0 ],
|
||||
[ 'agreement_show', 0 ]
|
||||
]);
|
||||
$this->validate($data, 'app\validate\member\LoginConfig.set');
|
||||
( new MemberConfigService() )->setLoginConfig($data);
|
||||
@ -71,4 +72,25 @@ class Config extends BaseAdminController
|
||||
return success('SET_SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员配置
|
||||
* @return Response
|
||||
*/
|
||||
public function getMemberConfig(){
|
||||
return success(( new MemberConfigService() )->getMemberConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置会员配置
|
||||
* @return Response
|
||||
*/
|
||||
public function setMemberConfig(){
|
||||
$data = $this->request->params([
|
||||
[ 'prefix', '' ],
|
||||
[ 'length', 10 ]
|
||||
]);
|
||||
$this->validate($data, 'app\validate\member\MemberConfig.set');
|
||||
( new MemberConfigService() )->setMemberConfig($data);
|
||||
return success('MODIFY_SUCCESS');
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,9 +11,9 @@
|
||||
|
||||
namespace app\adminapi\controller\member;
|
||||
|
||||
use app\enum\member\MemberEnum;
|
||||
use app\enum\member\MemberRegisterChannelEnum;
|
||||
use app\enum\member\MemberRegisterTypeEnum;
|
||||
use app\dict\member\MemberDict;
|
||||
use app\dict\member\MemberRegisterChannelDict;
|
||||
use app\dict\member\MemberRegisterTypeDict;
|
||||
use app\service\admin\member\MemberService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
@ -55,7 +55,8 @@ class Member extends BaseAdminController
|
||||
$data = $this->request->params([
|
||||
['nickname', ''],
|
||||
['mobile', ''],
|
||||
['username', ''],
|
||||
['member_no', ''],
|
||||
['init_member_no', ''],
|
||||
['password', ''],
|
||||
['headimg', ''],
|
||||
['member_label', []],
|
||||
@ -104,13 +105,19 @@ class Member extends BaseAdminController
|
||||
return success('EDIT_SUCCESS');
|
||||
}
|
||||
|
||||
public function del($member_id)
|
||||
{
|
||||
$res = (new MemberService())->deleteMember($member_id);
|
||||
return success('DELETE_SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员使用场景
|
||||
* @return array|mixed|string
|
||||
*/
|
||||
public function getMemberRegisterType()
|
||||
{
|
||||
return success(MemberRegisterTypeEnum::getType());
|
||||
return success(MemberRegisterTypeDict::getType());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -131,7 +138,7 @@ class Member extends BaseAdminController
|
||||
*/
|
||||
public function getMemberRegisterChannelType()
|
||||
{
|
||||
return success(MemberRegisterChannelEnum::getType());
|
||||
return success(MemberRegisterChannelDict::getType());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -154,6 +161,17 @@ class Member extends BaseAdminController
|
||||
* @return Response
|
||||
*/
|
||||
public function getStatusList(){
|
||||
return success(MemberEnum::getStatus());
|
||||
return success(MemberDict::getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员编码
|
||||
* @return Response
|
||||
*/
|
||||
public function getMemberNo(){
|
||||
$member_no = (new MemberService())->getMemberNo();
|
||||
return success('SUCCESS', $member_no);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\notice;
|
||||
|
||||
use app\enum\sys\SmsEnum;
|
||||
use app\dict\sys\SmsDict;
|
||||
use app\service\admin\notice\NoticeService;
|
||||
use app\service\admin\notice\SmsService;
|
||||
use core\base\BaseAdminController;
|
||||
@ -78,7 +78,7 @@ class Notice extends BaseAdminController
|
||||
public function editSms($sms_type)
|
||||
{
|
||||
//参数获取
|
||||
$sms_type_list = SmsEnum::getType();
|
||||
$sms_type_list = SmsDict::getType();
|
||||
if(!array_key_exists($sms_type, $sms_type_list)) throw new AdminException('SMS_TYPE_NOT_EXIST');
|
||||
//数据验证
|
||||
$data = [
|
||||
|
||||
@ -25,10 +25,14 @@ class Recharge extends BaseAdminController
|
||||
public function lists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['order_no', ''],
|
||||
['order_status', ''],
|
||||
['order_from', ''],
|
||||
['create_time', []],
|
||||
['member_id', '']
|
||||
['pay_time', []],
|
||||
['member_id', ''],
|
||||
['start_money', 0],
|
||||
['end_money', 0]
|
||||
]);
|
||||
return success((new RechargeOrderService())->getPage($data));
|
||||
}
|
||||
@ -55,4 +59,18 @@ class Recharge extends BaseAdminController
|
||||
return fail($res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 充值统计
|
||||
*/
|
||||
public function stat()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ 'member_id', '' ],
|
||||
]);
|
||||
$res = (new RechargeOrderService())->stat($data);
|
||||
return success($res);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -27,7 +27,9 @@ class Refund extends BaseAdminController
|
||||
['create_time', []],
|
||||
['member_id', ''],
|
||||
['refund_no', ''],
|
||||
['status', '']
|
||||
['status', ''],
|
||||
['keywords', ''],
|
||||
['order_no', ''],
|
||||
]);
|
||||
return success((new RefundService())->getPage($data));
|
||||
}
|
||||
@ -54,4 +56,12 @@ class Refund extends BaseAdminController
|
||||
]);
|
||||
return success((new RefundService())->getStatus($data['type']));
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款统计
|
||||
*/
|
||||
public function stat()
|
||||
{
|
||||
return success((new RefundService())->stat());
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\pay;
|
||||
|
||||
use app\enum\pay\PayEnum;
|
||||
use app\dict\pay\PayDict;
|
||||
use app\model\pay\PayConfigTemplate;
|
||||
use app\service\admin\pay\PayChannelService;
|
||||
use app\service\admin\pay\PayConfigTemplateService;
|
||||
@ -68,8 +68,8 @@ class PayChannel extends BaseAdminController
|
||||
['wechatpay_config', []],
|
||||
['alipay_config', []],
|
||||
]);
|
||||
$this->validate(array_merge($data['wechatpay_config'], ['type' => PayEnum::WECHATPAY]), 'app\validate\pay\Pay.set');
|
||||
$this->validate(array_merge($data['alipay_config'], ['type' => PayEnum::ALIPAY]), 'app\validate\pay\Pay.set');
|
||||
$this->validate(array_merge($data['wechatpay_config'], ['type' => PayDict::WECHATPAY]), 'app\validate\pay\Pay.set');
|
||||
$this->validate(array_merge($data['alipay_config'], ['type' => PayDict::ALIPAY]), 'app\validate\pay\Pay.set');
|
||||
(new PayChannelService())->setTransfer($data);
|
||||
return success('SET_SUCCESS');
|
||||
}
|
||||
@ -82,8 +82,8 @@ class PayChannel extends BaseAdminController
|
||||
$data = $this->request->params([
|
||||
['config', []],
|
||||
]);
|
||||
// $this->validate(array_merge($data['wechatpay_config'], ['type' => PayEnum::WECHATPAY]), 'app\validate\pay\Pay.set');
|
||||
// $this->validate(array_merge($data['alipay_config'], ['type' => PayEnum::ALIPAY]), 'app\validate\pay\Pay.set');
|
||||
// $this->validate(array_merge($data['wechatpay_config'], ['type' => PayDict::WECHATPAY]), 'app\validate\pay\Pay.set');
|
||||
// $this->validate(array_merge($data['alipay_config'], ['type' => PayDict::ALIPAY]), 'app\validate\pay\Pay.set');
|
||||
(new PayChannelService())->setAll($data['config']);
|
||||
return success('SET_SUCCESS');
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\site;
|
||||
|
||||
use app\enum\site\SiteEnum;
|
||||
use app\dict\site\SiteDict;
|
||||
use app\service\admin\auth\AuthSiteService;
|
||||
use app\service\admin\site\SiteService;
|
||||
use core\base\BaseAdminController;
|
||||
@ -27,8 +27,10 @@ class Site extends BaseAdminController
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['keywords', ''],
|
||||
['status', 1],
|
||||
['status', ""],
|
||||
['group_id', 0],
|
||||
['create_time', []],
|
||||
['expire_time', []],
|
||||
]);
|
||||
return success((new SiteService())->getPage($data));
|
||||
}
|
||||
@ -84,7 +86,7 @@ class Site extends BaseAdminController
|
||||
*/
|
||||
public function getStatuList()
|
||||
{
|
||||
return success(SiteEnum::getStatus());
|
||||
return success(SiteDict::getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -94,4 +96,28 @@ class Site extends BaseAdminController
|
||||
public function menu(){
|
||||
return success((new AuthSiteService())->getMenuList(1, 'all'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭站点
|
||||
*/
|
||||
public function closeSite($id)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['status', SiteDict::CLOSE],
|
||||
]);
|
||||
(new SiteService())->edit($id, $data);
|
||||
return success('SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启站点
|
||||
*/
|
||||
public function openSite($id)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['status', SiteDict::ON],
|
||||
]);
|
||||
(new SiteService())->edit($id, $data);
|
||||
return success('SUCCESS');
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\site;
|
||||
|
||||
use app\enum\sys\UserEnum;
|
||||
use app\dict\sys\UserDict;
|
||||
use app\service\admin\site\SiteUserService;
|
||||
use app\service\admin\user\UserService;
|
||||
use core\base\BaseAdminController;
|
||||
@ -55,7 +55,7 @@ class User extends BaseAdminController
|
||||
['password', ''],
|
||||
['real_name', ''],
|
||||
['head_img', ''],
|
||||
['status', UserEnum::ON],
|
||||
['status', UserDict::ON],
|
||||
['role_ids', []]
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\User.add');
|
||||
@ -71,7 +71,7 @@ class User extends BaseAdminController
|
||||
$data = $this->request->params([
|
||||
['real_name', ''],
|
||||
['head_img', ''],
|
||||
['status', UserEnum::ON],
|
||||
['status', UserDict::ON],
|
||||
['role_ids', []],
|
||||
['password', '']
|
||||
]);
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\sys;
|
||||
|
||||
use app\enum\sys\FileEnum;
|
||||
use app\dict\sys\FileDict;
|
||||
use app\service\admin\sys\AttachmentService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
@ -63,7 +63,7 @@ class Attachment extends BaseAdminController
|
||||
public function addCategory()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['type', FileEnum::IMAGE],
|
||||
['type', FileDict::IMAGE],
|
||||
['name', '']
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\AttachmentCategory.add');
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\sys;
|
||||
|
||||
use app\enum\common\ChannelEnum;
|
||||
use app\dict\common\ChannelDict;
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
class Channel extends BaseAdminController
|
||||
@ -24,6 +24,6 @@ class Channel extends BaseAdminController
|
||||
*/
|
||||
public function getChannelType()
|
||||
{
|
||||
return success(ChannelEnum::getType());
|
||||
return success(ChannelDict::getType());
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,9 +44,22 @@ class Config extends BaseAdminController
|
||||
["full_address",""],
|
||||
["phone",""],
|
||||
["business_hours",""],
|
||||
["site_name",""],
|
||||
["logo",""],
|
||||
["front_end_name", ""],
|
||||
["front_end_logo", ""],
|
||||
["icon", ""]
|
||||
]);
|
||||
$this->validate($data, 'app\validate\site\site.edit');
|
||||
$this->validate($data, 'app\validate\site\Site.edit');
|
||||
(new ConfigService())->setWebSite($data);
|
||||
|
||||
$service_data = $this->request->params([
|
||||
["wechat_code",""],
|
||||
["enterprise_wechat",""],
|
||||
["tel",""],
|
||||
]);
|
||||
(new ConfigService())->setService($service_data);
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
@ -83,4 +96,12 @@ class Config extends BaseAdminController
|
||||
public function getSceneDomain(){
|
||||
return success((new ConfigService())->getSceneDomain());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取服务信息
|
||||
* @return Response
|
||||
*/
|
||||
public function getServiceInfo(){
|
||||
return success((new ConfigService())->getService());
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\sys;
|
||||
|
||||
use app\enum\sys\CronEnum;
|
||||
use app\dict\sys\CronDict;
|
||||
use app\service\admin\cron\CronService;
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
@ -51,6 +51,6 @@ class Cron extends BaseAdminController
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function getType(){
|
||||
return success((new CronEnum())->getType());
|
||||
return success((new CronDict())->getType());
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,9 +11,9 @@
|
||||
|
||||
namespace app\adminapi\controller\sys;
|
||||
|
||||
use app\enum\sys\MenuEnum;
|
||||
use app\enum\sys\MenuTypeEnum;
|
||||
use app\enum\sys\MethodEnum;
|
||||
use app\dict\sys\MenuDict;
|
||||
use app\dict\sys\MenuTypeDict;
|
||||
use app\dict\sys\MethodDict;
|
||||
use app\service\admin\install\InstallSystemService;
|
||||
use app\service\admin\sys\MenuService;
|
||||
use core\base\BaseAdminController;
|
||||
@ -60,7 +60,7 @@ class Menu extends BaseAdminController
|
||||
['methods', ''],
|
||||
['sort', 0],
|
||||
|
||||
['status', MenuEnum::ON],
|
||||
['status', MenuDict::ON],
|
||||
['is_show', 0],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Menu.add');
|
||||
@ -85,7 +85,7 @@ class Menu extends BaseAdminController
|
||||
['methods', ''],
|
||||
['sort', 0],
|
||||
|
||||
['status', MenuEnum::ON],
|
||||
['status', MenuDict::ON],
|
||||
['is_show', 0],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Menu.edit');
|
||||
@ -99,7 +99,7 @@ class Menu extends BaseAdminController
|
||||
* @return Response
|
||||
*/
|
||||
public function getMenuType(){
|
||||
return success(MenuTypeEnum::getMenuType());
|
||||
return success(MenuTypeDict::getMenuType());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -107,7 +107,7 @@ class Menu extends BaseAdminController
|
||||
* @return Response
|
||||
*/
|
||||
public function getMethodType(){
|
||||
return success(MethodEnum::getMethodType());
|
||||
return success(MethodDict::getMethodType());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\adminapi\controller\sys;
|
||||
|
||||
use app\enum\sys\RoleStatusEnum;
|
||||
use app\dict\sys\RoleStatusDict;
|
||||
use app\service\admin\sys\RoleService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
@ -51,7 +51,7 @@ class Role extends BaseAdminController
|
||||
$data = $this->request->params([
|
||||
['role_name', ''],
|
||||
['rules', []],
|
||||
['status', RoleStatusEnum::ON],
|
||||
['status', RoleStatusDict::ON],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Role.add');
|
||||
(new RoleService())->add($data);
|
||||
@ -66,7 +66,7 @@ class Role extends BaseAdminController
|
||||
$data = $this->request->params([
|
||||
['role_name', ''],
|
||||
['rules', []],
|
||||
['status', RoleStatusEnum::ON],
|
||||
['status', RoleStatusDict::ON],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Role.edit');
|
||||
(new RoleService())->edit($role_id, $data);
|
||||
|
||||
@ -47,4 +47,27 @@ class System extends BaseAdminController
|
||||
return success((new SystemService())->getSystemInfo());
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理缓存,更新菜单
|
||||
*/
|
||||
public function schemaCache(){
|
||||
|
||||
return success((new SystemService())->schemaCache());
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验消息队列是否正常运行
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function checkJob(){
|
||||
return success(data:(new SystemService())->checkJob());
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验计划任务是否正常运行
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function checkSchedule(){
|
||||
return success(data:(new SystemService())->checkSchedule());
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
namespace app\adminapi\controller\upload;
|
||||
|
||||
use app\adminapi\controller\sys\AdminException;
|
||||
use app\enum\sys\StorageEnum;
|
||||
use app\dict\sys\StorageDict;
|
||||
use app\service\admin\file\StorageConfigService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
@ -47,7 +47,7 @@ class Storage extends BaseAdminController
|
||||
public function editStorage($storage_type)
|
||||
{
|
||||
//参数获取
|
||||
$storage_type_list = StorageEnum::getType();
|
||||
$storage_type_list = StorageDict::getType();
|
||||
if (!array_key_exists($storage_type, $storage_type_list)) throw new AdminException('OSS_TYPE_NOT_EXIST');
|
||||
//数据验证
|
||||
$data = [
|
||||
|
||||
@ -14,6 +14,7 @@ namespace app\adminapi\middleware;
|
||||
use app\Request;
|
||||
use Closure;
|
||||
use core\exception\AdminException;
|
||||
use core\exception\ServerException;
|
||||
|
||||
/**
|
||||
* http跨域请求中间件
|
||||
@ -54,7 +55,7 @@ class AllowCrossDomain
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
}else{
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
throw new AdminException('SERVER_CROSS_REQUEST_FAIL');
|
||||
throw new ServerException('SERVER_CROSS_REQUEST_FAIL', 409);
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
|
||||
@ -15,7 +15,7 @@ use app\adminapi\middleware\AdminLog;
|
||||
use think\facade\Route;
|
||||
|
||||
/**
|
||||
* 路由
|
||||
* 应用插件相关路由
|
||||
*/
|
||||
Route::group(function () {
|
||||
//获取本地插件
|
||||
@ -28,19 +28,21 @@ Route::group(function () {
|
||||
Route::put('addon/status/:id/:status', 'addon.Addon/setStatus');
|
||||
//安装插件
|
||||
Route::post('addon/install/:addon', 'addon.Addon/install');
|
||||
//插件安装检测安装环境
|
||||
Route::get('addon/install/check/:addon', 'addon.Addon/installCheck');
|
||||
// 执行安装
|
||||
Route::post('addon/install/execute/:addon', 'addon.Addon/execute');
|
||||
//插件安装状态
|
||||
Route::get('addon/install/:addon/status/:key', 'addon.Addon/getInstallState');
|
||||
|
||||
//卸载插件
|
||||
Route::post('addon/uninstall/:addon', 'addon.Addon/uninstall');
|
||||
//插件状态
|
||||
Route::get('addon/install/status/:addon', 'addon.Addon/uninstall');
|
||||
//卸载插件
|
||||
Route::post('addon/edit/:addon', 'addon.Addon/edit');
|
||||
|
||||
|
||||
//应用列表(...)
|
||||
Route::get('app/list', 'addon.App/getAppList');
|
||||
})->middleware([
|
||||
AdminCheckToken::class,
|
||||
AdminCheckRole::class,
|
||||
AdminLog::class
|
||||
]);;
|
||||
]);
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2022~2025 https://www.niushop.com All rights reserved.
|
||||
// | 官方网址:https://www.niucloud-admin.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed Niushop并不是自由软件,未经许可不能去掉Niushop相关版权
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niushop Team <niucloud@outlook.com>
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
use app\adminapi\middleware\AdminCheckRole;
|
||||
@ -45,8 +45,8 @@ Route::group('diy', function() {
|
||||
// 设为使用
|
||||
Route::put('use', 'diy.Diy/setUse');
|
||||
|
||||
// 获取页面类型
|
||||
Route::get('type', 'diy.Diy/getPageType');
|
||||
// 获取页面模板
|
||||
Route::get('template', 'diy.Diy/getTemplate');
|
||||
|
||||
// 自定义路由列表
|
||||
Route::get('route', 'diy.DiyRoute/lists');
|
||||
|
||||
@ -26,8 +26,13 @@ Route::group('member', function () {
|
||||
Route::get('member/:id', 'member.Member/info');
|
||||
//会员添加
|
||||
Route::post('member', 'member.Member/add');
|
||||
//会员删除
|
||||
Route::delete('member/:member_id', 'member.Member/del');
|
||||
//会员编码
|
||||
Route::get('memberno', 'member.Member/getMemberNo');
|
||||
//会员添加
|
||||
Route::put('member/:member_id', 'member.Member/edit');//会员添加
|
||||
|
||||
Route::put('member/modify/:member_id/:field', 'member.Member/modify');
|
||||
//会员注册方式
|
||||
Route::get('registertype', 'member.Member/getMemberRegisterType');
|
||||
@ -63,6 +68,10 @@ Route::group('member', function () {
|
||||
Route::get('account/money', 'member.Account/money');
|
||||
//会员佣金流水
|
||||
Route::get('account/commission', 'member.Account/commission');
|
||||
//会员佣金统计
|
||||
Route::get('account/sum_commission', 'member.Account/sumCommission');
|
||||
//会员积分统计
|
||||
Route::get('account/sum_point', 'member.Account/sumPoint');
|
||||
//会员积分调整
|
||||
Route::post('account/point', 'member.Account/adjustPoint');
|
||||
//会员余额调整
|
||||
@ -95,7 +104,12 @@ Route::group('member', function () {
|
||||
Route::put('cash_out/transfer/:id', 'member.CashOut/transfer');
|
||||
//提现状态
|
||||
Route::get('cash_out/status', 'member.CashOut/getStatusList');
|
||||
|
||||
//提现统计信息
|
||||
Route::get('cash_out/stat', 'member.CashOut/stat');
|
||||
//获取注册与登录设置
|
||||
Route::get('config/member', 'member.Config/getMemberConfig');
|
||||
//更新注册与登录设置
|
||||
Route::post('config/member', 'member.Config/setMemberConfig');
|
||||
})->middleware([
|
||||
AdminCheckToken::class,
|
||||
AdminCheckRole::class,
|
||||
|
||||
@ -26,8 +26,10 @@ Route::group('order', function () {
|
||||
Route::get('recharge/:order_id', 'order.Recharge/detail');
|
||||
//订单状态
|
||||
Route::get('recharge/status', 'order.Recharge/status');
|
||||
//订单统计
|
||||
Route::get('recharge/stat', 'order.Recharge/stat');
|
||||
// 订单发起退款
|
||||
Route::get('recharge/refund/:order_id', 'order.Recharge/refund');
|
||||
Route::put('recharge/refund/:order_id', 'order.Recharge/refund');
|
||||
})->middleware([
|
||||
AdminCheckToken::class,
|
||||
AdminCheckRole::class,
|
||||
|
||||
@ -26,6 +26,8 @@ Route::group('refund', function () {
|
||||
Route::get('refund/:refund_id', 'order.Refund/detail');
|
||||
//退款状态
|
||||
Route::get('status', 'order.Refund/status');
|
||||
//退款状态
|
||||
Route::get('stat', 'order.Refund/stat');
|
||||
})->middleware([
|
||||
AdminCheckToken::class,
|
||||
AdminCheckRole::class,
|
||||
|
||||
@ -27,7 +27,9 @@ Route::group(function () {
|
||||
Route::get('captcha/check', 'login.Captcha/check');
|
||||
|
||||
Route::get('terminal', 'sys.Terminal/exec');
|
||||
|
||||
Route::get('test', 'login.Login/test');
|
||||
});
|
||||
|
||||
//加载插件路由
|
||||
(new \core\addon\AddonLoader("Route"))->load(['app_type' => 'adminapi']);
|
||||
(new \core\dict\DictLoader("Route"))->load(['app_type' => 'adminapi']);
|
||||
@ -29,6 +29,10 @@ Route::group('site', function () {
|
||||
Route::post('site', 'site.Site/add');
|
||||
//更新站点
|
||||
Route::put('site/:id', 'site.Site/edit');
|
||||
//关闭站点
|
||||
Route::put('closesite/:id', 'site.Site/closeSite');
|
||||
//开启站点
|
||||
Route::put('opensite/:id', 'site.Site/openSite');
|
||||
//站点状态
|
||||
Route::get('statuslist', 'site.Site/getStatuList');
|
||||
/***************************************************** 站点分组 *************************************************/
|
||||
|
||||
@ -52,7 +52,7 @@ Route::group('sys', function () {
|
||||
// 获取菜单信息
|
||||
Route::get('menu/info/:menu_key', 'sys.Menu/info');
|
||||
// 初始化菜单
|
||||
Route::get('menu/refresh', 'sys.Menu/refreshMenu');
|
||||
Route::post('menu/refresh', 'sys.Menu/refreshMenu');
|
||||
|
||||
Route::get('menu/mothod', 'sys.Menu/getMethodType');
|
||||
/***************************************************** 设置 ****************************************************/
|
||||
@ -60,6 +60,8 @@ Route::group('sys', function () {
|
||||
Route::get('config/website', 'sys.Config/getWebsite');
|
||||
//网站设置
|
||||
Route::put('config/website', 'sys.Config/setWebsite');
|
||||
//服务信息设置
|
||||
Route::get('config/service', 'sys.Config/getServiceInfo');
|
||||
//版权设置
|
||||
Route::get('config/copyright', 'sys.Config/getCopyright');
|
||||
//版权设置
|
||||
@ -133,11 +135,23 @@ Route::group('sys', function () {
|
||||
Route::get('scene_domain', 'sys.Config/getSceneDomain');
|
||||
/***************************************************** 系统环境 ****************************************************/
|
||||
Route::get('system', 'sys.System/getSystemInfo');
|
||||
//校验消息队列
|
||||
Route::get('job', 'sys.System/checkJob');
|
||||
//校验计划任务
|
||||
Route::get('schedule', 'sys.System/checkSchedule');
|
||||
/***************************************************** 应用管理 ****************************************************/
|
||||
Route::get('applist', 'sys.App/getAppList');
|
||||
|
||||
/***************************************************** 清理缓存-刷新菜单 ****************************************************/
|
||||
Route::post('schema/clear', 'sys.System/schemaCache');
|
||||
|
||||
})->middleware([
|
||||
AdminCheckToken::class,
|
||||
AdminCheckRole::class,
|
||||
AdminLog::class
|
||||
]);
|
||||
]);
|
||||
|
||||
//系统环境(不效验登录状态)
|
||||
Route::group('sys', function () {
|
||||
Route::get('web/website', 'sys.Config/getWebsite');
|
||||
});
|
||||
@ -11,7 +11,8 @@
|
||||
|
||||
namespace app\api\controller\member;
|
||||
|
||||
use app\enum\member\MemberAccountEnum;
|
||||
use app\dict\member\MemberAccountChangeTypeDict;
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
use app\service\api\member\MemberAccountService;
|
||||
use core\base\BaseApiController;
|
||||
use think\Response;
|
||||
@ -31,7 +32,7 @@ class Account extends BaseApiController
|
||||
$data = $this->request->params([
|
||||
['from_type', '']
|
||||
]);
|
||||
$data['account_type'] = MemberAccountEnum::POINT;
|
||||
$data['account_type'] = MemberAccountTypeDict::POINT;
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
}
|
||||
|
||||
@ -43,7 +44,7 @@ class Account extends BaseApiController
|
||||
$data = $this->request->params([
|
||||
['from_type', '']
|
||||
]);
|
||||
$data['account_type'] = MemberAccountEnum::BALANCE;
|
||||
$data['account_type'] = MemberAccountTypeDict::BALANCE;
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
}
|
||||
|
||||
@ -55,7 +56,7 @@ class Account extends BaseApiController
|
||||
$data = $this->request->params([
|
||||
['from_type', '']
|
||||
]);
|
||||
$data['account_type'] = MemberAccountEnum::MONEY;
|
||||
$data['account_type'] = MemberAccountTypeDict::MONEY;
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
}
|
||||
|
||||
@ -79,7 +80,7 @@ class Account extends BaseApiController
|
||||
$data = $this->request->params([
|
||||
['from_type', '']
|
||||
]);
|
||||
$data['account_type'] = MemberAccountEnum::COMMISSION;
|
||||
$data['account_type'] = MemberAccountTypeDict::COMMISSION;
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
}
|
||||
|
||||
@ -90,7 +91,7 @@ class Account extends BaseApiController
|
||||
*/
|
||||
public function getFromType($account_type){
|
||||
|
||||
return success(MemberAccountEnum::getFromType($account_type));
|
||||
return success(MemberAccountChangeTypeDict::getType($account_type));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
|
||||
namespace app\api\controller\member;
|
||||
|
||||
use app\enum\member\MemberAccountEnum;
|
||||
use app\enum\pay\TransferEnum;
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
use app\dict\pay\TransferDict;
|
||||
use app\service\api\member\MemberCashOutService;
|
||||
use core\base\BaseApiController;
|
||||
use think\Response;
|
||||
@ -59,7 +59,7 @@ class MemberCashOut extends BaseApiController
|
||||
*/
|
||||
public function getTransferType()
|
||||
{
|
||||
return success(TransferEnum::getTransferType([], false));
|
||||
return success(TransferDict::getTransferType([], false));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,7 +70,7 @@ class MemberCashOut extends BaseApiController
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ 'apply_money', 0 ],
|
||||
[ 'account_type', MemberAccountEnum::MONEY ],
|
||||
[ 'account_type', MemberAccountTypeDict::MONEY ],
|
||||
[ 'transfer_type', '' ],
|
||||
[ 'account_id', 0 ]
|
||||
]);
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
|
||||
namespace app\api\controller\sys;
|
||||
|
||||
use app\service\api\site\SiteService;
|
||||
use app\service\api\sys\ConfigService;
|
||||
use core\base\BaseApiController;
|
||||
use think\Response;
|
||||
@ -33,4 +34,11 @@ class Config extends BaseApiController
|
||||
return success((new ConfigService())->getSceneDomain());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取站点信息
|
||||
* @return Response
|
||||
*/
|
||||
public function site(){
|
||||
return success((new SiteService())->getSiteCache());
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ namespace app\api\middleware;
|
||||
use app\Request;
|
||||
use Closure;
|
||||
use core\exception\ApiException;
|
||||
use core\exception\ServerException;
|
||||
|
||||
/**
|
||||
* http跨域请求中间件
|
||||
@ -58,7 +59,7 @@ class AllowCrossDomain
|
||||
// header('Access-Control-Allow-Origin: ' . $origin);
|
||||
}else{
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
throw new ApiException('SERVER_CROSS_REQUEST_FAIL');
|
||||
throw new ServerException('SERVER_CROSS_REQUEST_FAIL', 409);
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
namespace app\api\middleware;
|
||||
|
||||
use app\enum\sys\AppTypeEnum;
|
||||
use app\dict\sys\AppTypeDict;
|
||||
use app\Request;
|
||||
use app\service\api\login\AuthService;
|
||||
use app\service\api\login\LoginService;
|
||||
@ -36,7 +36,9 @@ class ApiCheckToken
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, bool $exception = false)
|
||||
{
|
||||
$request->appType(AppTypeEnum::API);
|
||||
$request->appType(AppTypeDict::API);
|
||||
//检测站点
|
||||
( new AuthService() )->checkSite($request);
|
||||
//通过配置来设置系统header参数
|
||||
try {
|
||||
$token = $request->apiToken();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
namespace app\api\route\dispatch;
|
||||
|
||||
use app\enum\member\MemberLoginTypeEnum;
|
||||
use app\dict\member\MemberLoginTypeDict;
|
||||
use think\App;
|
||||
use think\route\dispatch\Controller;
|
||||
|
||||
@ -24,11 +24,11 @@ class BindDispatch extends Controller
|
||||
}
|
||||
|
||||
switch ($channel) {
|
||||
case MemberLoginTypeEnum::WECHAT:
|
||||
case MemberLoginTypeDict::WECHAT:
|
||||
$controller = 'wechat.Wechat';
|
||||
$action = 'register';
|
||||
break;
|
||||
case MemberLoginTypeEnum::WEAPP:
|
||||
case MemberLoginTypeDict::WEAPP:
|
||||
$controller = 'weapp.Weapp';
|
||||
$action = 'register';
|
||||
break;
|
||||
|
||||
@ -70,11 +70,12 @@ Route::group(function () {
|
||||
Route::get('wechat/jssdkconfig', 'wechat.Wechat/jssdkConfig');
|
||||
/***************************************************** 版权相关设置**************************************************/
|
||||
Route::get('copyright', 'sys.Config/getCopyright');
|
||||
|
||||
// 站点信息
|
||||
Route::get('site', 'sys.Config/site');
|
||||
//场景域名
|
||||
Route::get('scene_domain', 'sys.Config/getSceneDomain');
|
||||
})->middleware(ApiChannel::class)
|
||||
->middleware(ApiCheckToken::class)
|
||||
->middleware(ApiLog::class);
|
||||
//加载插件路由
|
||||
(new \core\addon\AddonLoader("Route"))->load(['app_type' => 'api']);
|
||||
(new \core\dict\DictLoader("Route"))->load(['app_type' => 'api']);
|
||||
35
niucloud/app/command/Addon/Install.php
Normal file
35
niucloud/app/command/Addon/Install.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\command\Addon;
|
||||
|
||||
use app\service\core\addon\CoreAddonInstallService;
|
||||
use think\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\Output;
|
||||
use think\console\input\Option;
|
||||
|
||||
class Install extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
// 指令配置
|
||||
$this->setName('addon:install')
|
||||
->addArgument('addon', Option::VALUE_REQUIRED)
|
||||
->addOption('step', 's', Option::VALUE_REQUIRED)
|
||||
->setDescription('the addon install command');
|
||||
}
|
||||
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
$instance = CoreAddonInstallService::instance($input->getArgument('addon'));
|
||||
$step = $input->getOption('step');
|
||||
|
||||
try {
|
||||
$instance->$step();
|
||||
$output->writeln("Command executed successfully");
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln("Command failed " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
24
niucloud/app/command/Addon/Uninstall.php
Normal file
24
niucloud/app/command/Addon/Uninstall.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\command\Addon;
|
||||
|
||||
use think\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\Output;
|
||||
|
||||
class Uninstall extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
// 指令配置
|
||||
$this->setName('addon')
|
||||
->setDescription('the addon uninstall command');
|
||||
}
|
||||
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
// 指令输出
|
||||
$output->writeln('uninstall');
|
||||
}
|
||||
}
|
||||
94
niucloud/app/command/Schedule.php
Normal file
94
niucloud/app/command/Schedule.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace app\command;
|
||||
|
||||
use app\job\schedule\OrderClose;
|
||||
use app\service\core\schedule\CoreScheduleService;
|
||||
use schedule\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\Output;
|
||||
use think\facade\Log;
|
||||
use think\helper\Str;
|
||||
use DateTimeZone;
|
||||
use Workerman\Crontab\Crontab;
|
||||
|
||||
class Schedule extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
$this->setName('schedule:run');
|
||||
}
|
||||
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
//写入计划任务最后一次执行事件,用于环境监测
|
||||
$file = root_path('runtime').'.schedule';
|
||||
file_put_contents($file, time());
|
||||
$schedules = (new CoreScheduleService())->getList();
|
||||
foreach($schedules as $v){
|
||||
$class = $v['class'] ?: 'app\\job\\schedule\\'.Str::studly($v['key']);
|
||||
$function = $v['function'] ?: 'doJob';
|
||||
$call_back = [
|
||||
$class,
|
||||
$function
|
||||
];
|
||||
|
||||
$event = $this->call($call_back);
|
||||
switch($v['time']['type']){
|
||||
case 'min':
|
||||
$event->everyMinute();
|
||||
break;
|
||||
case 'hour':
|
||||
$event->hourly();
|
||||
break;
|
||||
case 'day':
|
||||
$event->daily();
|
||||
break;
|
||||
case 'week':
|
||||
$event->weekly();
|
||||
break;
|
||||
case 'month':
|
||||
$event->monthly();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
parent::execute($input, $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取计划事件默认使用的时区
|
||||
*/
|
||||
protected function scheduleTimezone(): DateTimeZone|string|null
|
||||
{
|
||||
return 'Asia/Shanghai';
|
||||
}
|
||||
|
||||
// protected function getCrontab($data): string
|
||||
// {
|
||||
// $crontab = '';
|
||||
// switch ($data['type']) {
|
||||
// case 'sec':// 每隔几秒
|
||||
// $crontab = '*/' . $data['sec'] . ' * * * * *';
|
||||
// break;
|
||||
// case 'min':// 每隔几分
|
||||
// $crontab = '0 */' . $data['min'] . ' * * * *';
|
||||
// break;
|
||||
// case 'hour':// 每隔几时第几分钟执行
|
||||
// $crontab = '0 ' . $data['min'] . ' * * * *';
|
||||
// break;
|
||||
// case 'day':// 每日几时几分几秒
|
||||
// $crontab = $data['sec'] . ' ' . $data['min'] . ' ' . $data['hour'] . ' * * *';
|
||||
// break;
|
||||
// case 'week':// 每周一次,周几具体时间执行
|
||||
// $crontab = $data['sec'] . ' ' . $data['min'] . ' ' . $data['hour'] . ' * * ' . $data['week'];
|
||||
// break;
|
||||
// case 'month':// 每月一次,某日具体时间执行
|
||||
// $crontab = $data['sec'] . ' ' . $data['min'] . ' ' . $data['hour'] . ' ' . $data['day'] . ' * *';
|
||||
// break;
|
||||
// }
|
||||
// return $crontab;
|
||||
// }
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use think\Container;
|
||||
use think\Response;
|
||||
use think\facade\Lang;
|
||||
use think\facade\Queue;
|
||||
@ -12,7 +13,7 @@ use think\facade\Cache;
|
||||
* @param int $msg
|
||||
* @param array $
|
||||
*/
|
||||
function success($msg = 'SUCCESS', array|string|null $data = [], int $code = 1, int $http_code = 200): Response
|
||||
function success($msg = 'SUCCESS', array|string|bool|null $data = [], int $code = 1, int $http_code = 200): Response
|
||||
{
|
||||
if (is_array($msg)) {
|
||||
$data = $msg;
|
||||
@ -388,6 +389,26 @@ function mkdirs($dir, $mode = 0777)
|
||||
return @mkdir($dir, $mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除缓存文件使用
|
||||
* @param $dir
|
||||
*/
|
||||
function rmdirs($dir)
|
||||
{
|
||||
$dh = opendir($dir);
|
||||
while ($file = readdir($dh)) {
|
||||
if ($file != "." && $file != "..") {
|
||||
$fullpath = $dir . "/" . $file;
|
||||
if (is_dir($fullpath)) {
|
||||
rmdirs($fullpath);
|
||||
} else {
|
||||
unlink($fullpath);
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dh);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取唯一随机字符串
|
||||
* @param int $len
|
||||
@ -613,7 +634,7 @@ function search_dir($path, &$data, $search = '')
|
||||
$fp = dir($path);
|
||||
while ($file = $fp->read()) {
|
||||
if ($file != '.' && $file != '..') {
|
||||
search_dir($path . '/' . $file, $data, $search);
|
||||
search_dir($path . $file, $data, $search);
|
||||
}
|
||||
}
|
||||
$fp->close();
|
||||
@ -652,4 +673,36 @@ function getFileMap($path, $arr = [])
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 如果不存在则写入缓存
|
||||
* @param string|null $name
|
||||
* @param $value
|
||||
* @param $options
|
||||
* @param $tag
|
||||
* @return mixed|string
|
||||
*/
|
||||
function cache_remember(string $name = null, $value = '', $tag = null, $options = null){
|
||||
if(!empty($hit = Cache::get($name)))//可以用has
|
||||
return $hit;
|
||||
if ($value instanceof Closure) {
|
||||
// 获取缓存数据
|
||||
$value = Container::getInstance()->invokeFunction($value);
|
||||
}
|
||||
if (is_null($tag)) {
|
||||
Cache::set($name, $value, $options['expire'] ?? null);
|
||||
} else {
|
||||
Cache::tag($tag)->set($name, $value, $options['expire'] ?? null);
|
||||
}
|
||||
return $value;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目目录
|
||||
* @return void
|
||||
*/
|
||||
function project_path() {
|
||||
return dirname(root_path()) . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
@ -9,9 +9,9 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\addon;
|
||||
namespace app\dict\addon;
|
||||
|
||||
class AddonEnum
|
||||
class AddonDict
|
||||
{
|
||||
/************************************************* 证书 *****************************************/
|
||||
|
||||
@ -25,6 +25,14 @@ class AddonEnum
|
||||
const ON = 1;
|
||||
const OFF = 2;
|
||||
|
||||
// 未执行
|
||||
const INSTALL_UNEXECUTED = 'unexecuted';
|
||||
// 执行中
|
||||
const INPROGRESS = 'inprogress';
|
||||
// 执行成功
|
||||
const INSTALL_SUCCESS = 'success';
|
||||
// 执行失败
|
||||
CONST INSTALL_FAIL = 'fail';
|
||||
|
||||
/**
|
||||
* 插件操作方式
|
||||
@ -32,9 +40,9 @@ class AddonEnum
|
||||
*/
|
||||
public static function getActionType(){
|
||||
return [
|
||||
self::INSTALL => get_lang('enum_addon.install'),
|
||||
self::UNINSTALL => get_lang('enum_addon.uninstall'),
|
||||
self::UPDATE => get_lang('enum_addon.update'),
|
||||
self::INSTALL => get_lang('dict_addon.install'),
|
||||
self::UNINSTALL => get_lang('dict_addon.uninstall'),
|
||||
self::UPDATE => get_lang('dict_addon.update'),
|
||||
];
|
||||
}
|
||||
|
||||
@ -44,8 +52,8 @@ class AddonEnum
|
||||
*/
|
||||
public static function getStatus(){
|
||||
return [
|
||||
self::ON => get_lang('enum_addon.status_on'),//展示
|
||||
self::OFF => get_lang('enum_addon.status_off'),//隐藏
|
||||
self::ON => get_lang('dict_addon.status_on'),//展示
|
||||
self::OFF => get_lang('dict_addon.status_off'),//隐藏
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -9,13 +9,13 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\cash_out;
|
||||
namespace app\dict\cash_out;
|
||||
|
||||
|
||||
/**
|
||||
* 提现类型
|
||||
*/
|
||||
class CashOutTypeEnum
|
||||
class CashOutTypeDict
|
||||
{
|
||||
//会员零钱提现
|
||||
const MEMBER_CASH_OUT = 'member_cash_out';
|
||||
@ -9,9 +9,9 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\channel;
|
||||
namespace app\dict\channel;
|
||||
|
||||
class CertEnum
|
||||
class CertDict
|
||||
{
|
||||
/************************************************* 证书 *****************************************/
|
||||
|
||||
@ -9,9 +9,9 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\channel;
|
||||
namespace app\dict\channel;
|
||||
|
||||
class ReplyEnum
|
||||
class ReplyDict
|
||||
{
|
||||
/************************************************* 请求消息的属性 *****************************************/
|
||||
|
||||
@ -35,8 +35,8 @@ class ReplyEnum
|
||||
|
||||
public static function getStatus(){
|
||||
return [
|
||||
self::STATUS_ON => get_lang('enum_wechat_reply.status_on'),//启用
|
||||
self::STATUS_OFF => get_lang('enum_wechat_reply.status_off'),//关闭
|
||||
self::STATUS_ON => get_lang('dict_wechat_reply.status_on'),//启用
|
||||
self::STATUS_OFF => get_lang('dict_wechat_reply.status_off'),//关闭
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -9,9 +9,9 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\channel;
|
||||
namespace app\dict\channel;
|
||||
|
||||
class WechatEnum
|
||||
class WechatDict
|
||||
{
|
||||
/************************************************* 请求消息的属性 *****************************************/
|
||||
|
||||
@ -54,9 +54,9 @@ class WechatEnum
|
||||
*/
|
||||
public static function getEncryptionType(){
|
||||
return [
|
||||
self::NOT_ENCRYPT => get_lang('enum_wechat_config.not_encrypt'),//明文
|
||||
self::COMPATIBLE => get_lang('enum_wechat_config.compatible'),//兼容
|
||||
self::SAFE => get_lang('enum_wechat_config.safe'),//安全
|
||||
self::NOT_ENCRYPT => get_lang('dict_wechat_config.not_encrypt'),//明文
|
||||
self::COMPATIBLE => get_lang('dict_wechat_config.compatible'),//兼容
|
||||
self::SAFE => get_lang('dict_wechat_config.safe'),//安全
|
||||
];
|
||||
}
|
||||
|
||||
@ -9,17 +9,17 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\common;
|
||||
namespace app\dict\common;
|
||||
|
||||
use app\enum\pay\PayEnum;
|
||||
use app\dict\pay\PayDict;
|
||||
use core\exception\PayException;
|
||||
|
||||
/**
|
||||
* 渠道枚举类
|
||||
* Class ChannelEnum
|
||||
* @package app\enum\member
|
||||
* Class ChannelDict
|
||||
* @package app\dict\common
|
||||
*/
|
||||
class ChannelEnum
|
||||
class ChannelDict
|
||||
{
|
||||
//微信小程序
|
||||
const WEAPP = 'weapp';
|
||||
@ -35,11 +35,11 @@ class ChannelEnum
|
||||
|
||||
public static function getType($type = ''){
|
||||
$data = [
|
||||
self::WEAPP => get_lang('enum_channel.channel_weapp'),//微信小程序
|
||||
self::WECHAT => get_lang('enum_channel.channel_wechat'),//'微信公众号',
|
||||
self::H5 => get_lang('enum_channel.channel_h5'),//'手机H5',
|
||||
self::PC => get_lang('enum_channel.channel_pc'),//'电脑PC',
|
||||
self::APP => get_lang('enum_channel.channel_app'),//'手机app',
|
||||
self::WEAPP => get_lang('dict_channel.channel_weapp'),//微信小程序
|
||||
self::WECHAT => get_lang('dict_channel.channel_wechat'),//'微信公众号',
|
||||
self::H5 => get_lang('dict_channel.channel_h5'),//'手机H5',
|
||||
self::PC => get_lang('dict_channel.channel_pc'),//'电脑PC',
|
||||
self::APP => get_lang('dict_channel.channel_app'),//'手机app',
|
||||
];
|
||||
if(empty($type)){
|
||||
return $data;
|
||||
28
niucloud/app/dict/common/CommonDict.php
Normal file
28
niucloud/app/dict/common/CommonDict.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace app\dict\common;
|
||||
|
||||
/**
|
||||
* admin管理菜单
|
||||
* Class CommonDict
|
||||
* @package app\dict\common
|
||||
*/
|
||||
class CommonDict
|
||||
{
|
||||
const UNKNOWN = 0;
|
||||
const MAN = 1;
|
||||
const WOMAN = 2;
|
||||
|
||||
|
||||
/**
|
||||
* 性别
|
||||
* @return array
|
||||
*/
|
||||
public static function getSexType(){
|
||||
return [
|
||||
self::UNKNOWN => get_lang('dict_sex.unknown'),//未知
|
||||
self::MAN => get_lang('dict_sex.man'),//男
|
||||
self::WOMAN => get_lang('dict_sex.woman'),//女
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -9,34 +9,34 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\diy;
|
||||
namespace app\dict\diy;
|
||||
|
||||
use core\addon\AddonLoader;
|
||||
use core\dict\DictLoader;
|
||||
|
||||
/**
|
||||
* 基础组件
|
||||
* Class Page
|
||||
* @package app\enum\sys
|
||||
* Class ComponentDict
|
||||
* @package app\dict\diy
|
||||
*/
|
||||
class ComponentEnum
|
||||
class ComponentDict
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取页面类型
|
||||
* @return array
|
||||
* 获取组件
|
||||
* @return array|null
|
||||
*/
|
||||
public static function getComponent()
|
||||
{
|
||||
$system_components = [
|
||||
'BASICS' => [
|
||||
'title' => get_lang('enum_diy.component_type_basics'),
|
||||
'BASIC' => [
|
||||
'title' => get_lang('dict_diy.component_type_basic'),
|
||||
'list' => [
|
||||
'Text' => [
|
||||
'title' => '标题',
|
||||
'icon' => 'iconfont-iconbiaoti',
|
||||
'path' => 'edit-text', // 编辑组件属性
|
||||
'path' => 'edit-text', // 编辑组件属性名称
|
||||
'support_page' => [], // 支持页面
|
||||
'max_count' => 0, // 最大添加数量
|
||||
'uses' => 0, // 最大添加数量
|
||||
'sort' => 10001,
|
||||
'value' => [
|
||||
"style" => "style-1",
|
||||
@ -72,7 +72,7 @@ class ComponentEnum
|
||||
'icon' => 'iconfont-icontupianguanggao1',
|
||||
'path' => 'edit-image-ads', // 编辑组件属性
|
||||
'support_page' => [], // 支持页面
|
||||
'max_count' => 0, // 最大添加数量
|
||||
'uses' => 0, // 最大添加数量
|
||||
'sort' => 10002,
|
||||
'value' => [
|
||||
"list" => [
|
||||
@ -92,7 +92,7 @@ class ComponentEnum
|
||||
'icon' => 'iconfont-icontuwendaohang2',
|
||||
'path' => 'edit-graphic-nav',
|
||||
'support_page' => [],
|
||||
'max_count' => 0,
|
||||
'uses' => 0,
|
||||
'sort' => 10003,
|
||||
'value' => [
|
||||
"layout" => "horizontal",
|
||||
@ -178,7 +178,7 @@ class ComponentEnum
|
||||
'icon' => 'iconfont-iconwenzhang',
|
||||
'path' => 'edit-article',
|
||||
'support_page' => [],
|
||||
'max_count' => 0,
|
||||
'uses' => 0,
|
||||
'sort' => 10004,
|
||||
'value' => [
|
||||
'sources' => 'initial',
|
||||
@ -191,7 +191,7 @@ class ComponentEnum
|
||||
'icon' => 'iconfont-iconfuzhukongbai1',
|
||||
'path' => 'edit-horz-blank',
|
||||
'support_page' => [],
|
||||
'max_count' => 0,
|
||||
'uses' => 0,
|
||||
'sort' => 10005,
|
||||
'value' => [
|
||||
'height' => 20
|
||||
@ -202,16 +202,20 @@ class ComponentEnum
|
||||
'icon' => 'iconfont-iconhuiyuanzhongxin',
|
||||
'path' => 'edit-member-info',
|
||||
'support_page' => [ 'DIY_MEMBER_INDEX' ],
|
||||
'max_count' => 0,
|
||||
'uses' => 1,
|
||||
'sort' => 10006,
|
||||
'value' => [
|
||||
'height' => 20
|
||||
"style" => "style-1",
|
||||
"styleName" => "风格1",
|
||||
'bgUrl' => '',
|
||||
'bgColorStart' => '',
|
||||
'bgColorEnd' => ''
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
return (new AddonLoader("UniappComponent"))->load($system_components);
|
||||
return ( new DictLoader("UniappComponent") )->load($system_components);
|
||||
}
|
||||
|
||||
}
|
||||
@ -9,93 +9,86 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\diy;
|
||||
namespace app\dict\diy;
|
||||
|
||||
use core\addon\AddonLoader;
|
||||
use core\dict\DictLoader;
|
||||
|
||||
/**
|
||||
* 自定义链接
|
||||
* Class PageEnum
|
||||
* @package app\enum\sys
|
||||
* Class LinkDict
|
||||
* @package app\dict\diy
|
||||
*/
|
||||
class LinkEnum
|
||||
class LinkDict
|
||||
{
|
||||
/**
|
||||
* 获取页面类型
|
||||
* 获取链接
|
||||
* @return array
|
||||
*/
|
||||
public static function getLink()
|
||||
{
|
||||
$system_links = [
|
||||
[
|
||||
'name' => 'SYSTEM_LINK',
|
||||
'title' => get_lang('enum_diy.system_link'),
|
||||
'url' => '',
|
||||
'SYSTEM_LINK' => [
|
||||
'title' => get_lang('dict_diy.system_link'),
|
||||
'child_list' => [
|
||||
[
|
||||
'name' => 'INDEX',
|
||||
'title' => get_lang('enum_diy.system_link_index'),
|
||||
'title' => get_lang('dict_diy.system_link_index'),
|
||||
'url' => '/pages/index/index',
|
||||
'is_share' => 1
|
||||
],
|
||||
[
|
||||
'name' => 'ARTICLE_LIST',
|
||||
'title' => get_lang('enum_diy.system_link_article_list'),
|
||||
'title' => get_lang('dict_diy.system_link_article_list'),
|
||||
'url' => '/pages/article/list',
|
||||
'is_share' => 1
|
||||
],
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => 'MEMBER_LINK',
|
||||
'title' => get_lang('enum_diy.member_link'),
|
||||
'MEMBER_LINK' => [
|
||||
'title' => get_lang('dict_diy.member_link'),
|
||||
'child_list' => [
|
||||
[
|
||||
'name' => 'MEMBER_CENTER',
|
||||
'title' => get_lang('enum_diy.member_index'),
|
||||
'title' => get_lang('dict_diy.member_index'),
|
||||
'url' => '/pages/member/index',
|
||||
'is_share' => 0
|
||||
],
|
||||
[
|
||||
'name' => 'MEMBER_PERSONAL',
|
||||
'title' => get_lang('enum_diy.member_my_personal'),
|
||||
'title' => get_lang('dict_diy.member_my_personal'),
|
||||
'url' => '/pages/member/personal',
|
||||
'is_share' => 0
|
||||
],
|
||||
[
|
||||
'name' => 'MEMBER_BALANCE',
|
||||
'title' => get_lang('enum_diy.member_my_balance'),
|
||||
'title' => get_lang('dict_diy.member_my_balance'),
|
||||
'url' => '/pages/member/balance',
|
||||
'is_share' => 0
|
||||
],
|
||||
[
|
||||
'name' => 'MEMBER_POINT',
|
||||
'title' => get_lang('enum_diy.member_my_point'),
|
||||
'title' => get_lang('dict_diy.member_my_point'),
|
||||
'url' => '/pages/member/point',
|
||||
'is_share' => 0
|
||||
],
|
||||
[
|
||||
'name' => 'MEMBER_COMMISSION',
|
||||
'title' => get_lang('enum_diy.member_my_commission'),
|
||||
'title' => get_lang('dict_diy.member_my_commission'),
|
||||
'url' => '/pages/member/commission',
|
||||
'is_share' => 0
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => 'DIY_PAGE',
|
||||
'title' => get_lang('enum_diy.diy_page'),
|
||||
'url' => '',
|
||||
'DIY_PAGE' => [
|
||||
'title' => get_lang('dict_diy.diy_page'),
|
||||
'child_list' => []
|
||||
],
|
||||
[
|
||||
'name' => 'DIY_LINK',
|
||||
'title' => get_lang('enum_diy.diy_link'),
|
||||
'url' => '',
|
||||
'DIY_LINK' => [
|
||||
'title' => get_lang('dict_diy.diy_link'),
|
||||
'child_list' => []
|
||||
]
|
||||
];
|
||||
return (new AddonLoader("UniappLink"))->load($system_links);;
|
||||
return ( new DictLoader("UniappLink") )->load($system_links);
|
||||
}
|
||||
|
||||
}
|
||||
898
niucloud/app/dict/diy/PagesDict.php
Normal file
898
niucloud/app/dict/diy/PagesDict.php
Normal file
@ -0,0 +1,898 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud-admin.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dict\diy;
|
||||
|
||||
use core\dict\DictLoader;
|
||||
|
||||
/**
|
||||
* 页面数据
|
||||
* Class TemplateDict
|
||||
* @package app\dict\diy
|
||||
*/
|
||||
class PagesDict
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取页面数据
|
||||
* @param string $type
|
||||
* @return array|string|null
|
||||
*/
|
||||
public static function getPages($type = '')
|
||||
{
|
||||
$system_pages = [
|
||||
'DIY_INDEX' => [
|
||||
'default_index' => [ // 页面标识
|
||||
"title" => "首页", // 页面名称
|
||||
'cover' => '', // 页面封面图
|
||||
'preview' => '', // 页面预览图
|
||||
'desc' => '', // 页面描述
|
||||
// 页面数据源
|
||||
"data" => [
|
||||
"global" => [
|
||||
"title" => "首页",
|
||||
"pageBgColor" => "#F8F8F8",
|
||||
'bgUrl' => '',
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
"bottomTabBarSwitch" => true,
|
||||
"template" => [
|
||||
'textColor' => "#303133",
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
]
|
||||
],
|
||||
'topStatusBar' => [
|
||||
'bgColor' => "#ffffff",
|
||||
'isTransparent' => false,
|
||||
'isShow' => true,
|
||||
'style' => 'style-1',
|
||||
'textColor' => "#333333",
|
||||
'textAlign' => 'center',
|
||||
],
|
||||
'popWindow' => [
|
||||
'imgUrl' => "",
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
'count' => -1,
|
||||
'show' => 0,
|
||||
'link' => [
|
||||
'name' => ""
|
||||
],
|
||||
]
|
||||
],
|
||||
"value" => [
|
||||
[
|
||||
"path" => "edit-image-ads",
|
||||
"id" => "4640ld4k1pu0",
|
||||
"componentName" => "ImageAds",
|
||||
"componentTitle" => "图片广告",
|
||||
"uses" => 0,
|
||||
"list" => [
|
||||
[
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/banner.png",
|
||||
"imgWidth" => 750,
|
||||
"imgHeight" => 320,
|
||||
"id" => "2xuytp7622w0"
|
||||
]
|
||||
],
|
||||
"ignore" => [],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
]
|
||||
],
|
||||
[
|
||||
"path" => "edit-graphic-nav",
|
||||
"id" => "282cpxba4534",
|
||||
"componentName" => "GraphicNav",
|
||||
"componentTitle" => "图文导航",
|
||||
"uses" => 0,
|
||||
"layout" => "horizontal",
|
||||
"navTitle" => "",
|
||||
"mode" => "graphic",
|
||||
"showStyle" => "fixed",
|
||||
"rowCount" => 4,
|
||||
"pageCount" => 2,
|
||||
"carousel" => [
|
||||
"type" => "circle",
|
||||
"color" => "#FFFFFF"
|
||||
],
|
||||
"imageSize" => 40,
|
||||
"aroundRadius" => 25,
|
||||
"font" => [
|
||||
"size" => 14,
|
||||
"weight" => "normal",
|
||||
"color" => "#303133"
|
||||
],
|
||||
"ignore" => [],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "rgba(255, 255, 255, 1)",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
],
|
||||
"list" => [
|
||||
[
|
||||
"title" => "文章资讯",
|
||||
"link" => [
|
||||
"parent" => "SYSTEM_LINK",
|
||||
"name" => "ARTICLE_LIST",
|
||||
"title" => "文章资讯",
|
||||
"url" => "/pages/article/list"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/article_list.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "66rwqy8vxog0",
|
||||
"imgWidth" => 176,
|
||||
"imgHeight" => 176
|
||||
],
|
||||
[
|
||||
"title" => "个人资料",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_PERSONAL",
|
||||
"title" => "个人资料",
|
||||
"url" => "/pages/member/personal"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/my_personal.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "30cdezm3f6e0",
|
||||
"imgWidth" => 176,
|
||||
"imgHeight" => 176
|
||||
],
|
||||
[
|
||||
"title" => "我的余额",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_BALANCE",
|
||||
"title" => "我的余额",
|
||||
"url" => "/pages/member/balance"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/my_balance.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "20l5hypbzvfk",
|
||||
"imgWidth" => 176,
|
||||
"imgHeight" => 176
|
||||
],
|
||||
[
|
||||
"title" => "我的积分",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_POINT",
|
||||
"title" => "我的积分",
|
||||
"url" => "/pages/member/point"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/my_point.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "7bdb8wyt3g00",
|
||||
"imgWidth" => 176,
|
||||
"imgHeight" => 176
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
"path" => "edit-article",
|
||||
"id" => "524jcssmp8c0",
|
||||
"componentName" => "Article",
|
||||
"componentTitle" => "文章",
|
||||
"uses" => 0,
|
||||
"sources" => "initial",
|
||||
"count" => 8,
|
||||
"articleIds" => [],
|
||||
"ignore" => [],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "rgba(255, 255, 255, 1)",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
'DIY_MEMBER_INDEX' => [
|
||||
'default_member_index_one' => [
|
||||
"title" => "个人中心(风格一)", // 页面名称
|
||||
'cover' => '', // 页面封面图
|
||||
'preview' => '', // 页面预览图
|
||||
'desc' => '', // 页面描述
|
||||
// 页面数据源
|
||||
"data" => [
|
||||
"global" => [
|
||||
"title" => "个人中心(风格一)",
|
||||
"pageBgColor" => "#F8F8F8",
|
||||
'bgUrl' => '',
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
"bottomTabBarSwitch" => true,
|
||||
"template" => [
|
||||
'textColor' => "#303133",
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 12
|
||||
]
|
||||
],
|
||||
'topStatusBar' => [
|
||||
'bgColor' => "#ffffff",
|
||||
'isTransparent' => false,
|
||||
'isShow' => true,
|
||||
'style' => 'style-1',
|
||||
'textColor' => "#333333",
|
||||
'textAlign' => 'center',
|
||||
],
|
||||
'popWindow' => [
|
||||
'imgUrl' => "",
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
'count' => -1,
|
||||
'show' => 0,
|
||||
'link' => [
|
||||
'name' => ""
|
||||
],
|
||||
]
|
||||
],
|
||||
"value" => [
|
||||
[
|
||||
"path" => "edit-member-info",
|
||||
"id" => "67qv49qgxp00",
|
||||
"componentName" => "MemberInfo",
|
||||
"componentTitle" => "会员信息",
|
||||
"uses" => 0,
|
||||
"ignore" => [],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 9,
|
||||
"bottomRounded" => 9,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 12,
|
||||
"bottom" => 6,
|
||||
"both" => 16
|
||||
],
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgUrl" => "static/resource/images/diy/member_style1_bg.png"
|
||||
],
|
||||
[
|
||||
"path" => "edit-graphic-nav",
|
||||
"id" => "62b7d7hl4ok",
|
||||
"componentName" => "GraphicNav",
|
||||
"componentTitle" => "图文导航",
|
||||
"uses" => 0,
|
||||
"layout" => "horizontal",
|
||||
"navTitle" => "我的服务",
|
||||
"mode" => "graphic",
|
||||
"showStyle" => "fixed",
|
||||
"rowCount" => 4,
|
||||
"pageCount" => 2,
|
||||
"carousel" => [
|
||||
"type" => "circle",
|
||||
"color" => "#FFFFFF"
|
||||
],
|
||||
"imageSize" => 25,
|
||||
"aroundRadius" => 25,
|
||||
"font" => [
|
||||
"size" => 12,
|
||||
"weight" => "bold",
|
||||
"color" => "#303133"
|
||||
],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "rgba(255, 255, 255, 1)",
|
||||
"topRounded" => 9,
|
||||
"bottomRounded" => 9,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 6,
|
||||
"bottom" => 6,
|
||||
"both" => 16
|
||||
],
|
||||
"ignore" => [],
|
||||
"list" => [
|
||||
[
|
||||
"title" => "个人资料",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_PERSONAL",
|
||||
"title" => "个人资料",
|
||||
"url" => "/pages/member/personal"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_personal.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "xvlauaflc6o",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
],
|
||||
[
|
||||
"title" => "我的余额",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_BALANCE",
|
||||
"title" => "我的余额",
|
||||
"url" => "/pages/member/balance"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_balance.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "63bjscck5n40",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
],
|
||||
[
|
||||
"title" => "我的积分",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_POINT",
|
||||
"title" => "我的积分",
|
||||
"url" => "/pages/member/point"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_point.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "4qiczw54t8g0",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
],
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_service.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "2eqwfkdphpgk",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
"path" => "edit-graphic-nav",
|
||||
"uses" => 0,
|
||||
"id" => "33yn28534fs0",
|
||||
"componentName" => "GraphicNav",
|
||||
"componentTitle" => "图文导航",
|
||||
"ignore" => [],
|
||||
"layout" => "vertical",
|
||||
"navTitle" => "",
|
||||
"mode" => "graphic",
|
||||
"showStyle" => "fixed",
|
||||
"rowCount" => 4,
|
||||
"pageCount" => 2,
|
||||
"carousel" => [
|
||||
"type" => "circle",
|
||||
"color" => "#FFFFFF"
|
||||
],
|
||||
"imageSize" => 25,
|
||||
"aroundRadius" => 25,
|
||||
"font" => [
|
||||
"size" => 13,
|
||||
"weight" => "normal",
|
||||
"color" => "rgba(0, 0, 0, 1)"
|
||||
],
|
||||
"list" => [
|
||||
[
|
||||
"title" => "个人资料",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_personal.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "4xc4kw9xlqu0",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"title" => "我的余额",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_balance.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "4555rq0cc1q0",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"title" => "我的积分",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_point.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "1gq3uxox0fk0",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_service.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "6gqbh1tvyr00",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"id" => "6xhwid2el5c0",
|
||||
"title" => "开发者联盟",
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_develop.png",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88,
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
]
|
||||
]
|
||||
],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "rgba(255, 255, 255, 1)",
|
||||
"topRounded" => 9,
|
||||
"bottomRounded" => 9,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 6,
|
||||
"bottom" => 12,
|
||||
"both" => 16
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
'default_member_index_two' => [
|
||||
"title" => "个人中心(风格二)", // 页面名称
|
||||
'cover' => '', // 页面封面图
|
||||
'preview' => '', // 页面预览图
|
||||
'desc' => '', // 页面描述
|
||||
// 页面数据源
|
||||
"data" => [
|
||||
"global" => [
|
||||
"title" => "个人中心(风格二)",
|
||||
"pageBgColor" => "#F8F8F8",
|
||||
"bgUrl" => "static/resource/images/diy/member_style2_bg.png",
|
||||
'imgWidth' => 750,
|
||||
'imgHeight' => 403,
|
||||
"bottomTabBarSwitch" => true,
|
||||
"template" => [
|
||||
'textColor' => "#303133",
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 12
|
||||
]
|
||||
],
|
||||
'topStatusBar' => [
|
||||
'bgColor' => "#ffffff",
|
||||
'isTransparent' => false,
|
||||
'isShow' => true,
|
||||
'style' => 'style-1',
|
||||
'textColor' => "#333333",
|
||||
'textAlign' => 'center',
|
||||
],
|
||||
'popWindow' => [
|
||||
'imgUrl' => "",
|
||||
'imgWidth' => '',
|
||||
'imgHeight' => '',
|
||||
'count' => -1,
|
||||
'show' => 0,
|
||||
'link' => [
|
||||
'name' => ""
|
||||
],
|
||||
]
|
||||
],
|
||||
"value" => [
|
||||
[
|
||||
"path" => "edit-member-info",
|
||||
"id" => "67qv49qgxp00",
|
||||
"componentName" => "MemberInfo",
|
||||
"componentTitle" => "会员信息",
|
||||
"uses" => 0,
|
||||
"ignore" => [],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "",
|
||||
"topRounded" => 0,
|
||||
"bottomRounded" => 0,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 0
|
||||
],
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgUrl" => ""
|
||||
],
|
||||
[
|
||||
"path" => "edit-graphic-nav",
|
||||
"id" => "62b7d7hl4ok",
|
||||
"componentName" => "GraphicNav",
|
||||
"componentTitle" => "图文导航",
|
||||
"uses" => 0,
|
||||
"layout" => "horizontal",
|
||||
"navTitle" => "我的服务",
|
||||
"mode" => "graphic",
|
||||
"showStyle" => "fixed",
|
||||
"rowCount" => 4,
|
||||
"pageCount" => 2,
|
||||
"carousel" => [
|
||||
"type" => "circle",
|
||||
"color" => "#FFFFFF"
|
||||
],
|
||||
"imageSize" => 25,
|
||||
"aroundRadius" => 25,
|
||||
"font" => [
|
||||
"size" => 12,
|
||||
"weight" => "bold",
|
||||
"color" => "#303133"
|
||||
],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "rgba(255, 255, 255, 1)",
|
||||
"topRounded" => 9,
|
||||
"bottomRounded" => 9,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 6,
|
||||
"both" => 16
|
||||
],
|
||||
"ignore" => [],
|
||||
"list" => [
|
||||
[
|
||||
"title" => "个人资料",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_PERSONAL",
|
||||
"title" => "个人资料",
|
||||
"url" => "/pages/member/personal"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_personal.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "xvlauaflc6o",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
],
|
||||
[
|
||||
"title" => "我的余额",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_BALANCE",
|
||||
"title" => "我的余额",
|
||||
"url" => "/pages/member/balance"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_balance.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "63bjscck5n40",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
],
|
||||
[
|
||||
"title" => "我的积分",
|
||||
"link" => [
|
||||
"parent" => "MEMBER_LINK",
|
||||
"name" => "MEMBER_POINT",
|
||||
"title" => "我的积分",
|
||||
"url" => "/pages/member/point"
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_point.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "4qiczw54t8g0",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
],
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_service.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "2eqwfkdphpgk",
|
||||
"imgWidth" => 100,
|
||||
"imgHeight" => 100
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
"path" => "edit-graphic-nav",
|
||||
"uses" => 0,
|
||||
"id" => "33yn28534fs0",
|
||||
"componentName" => "GraphicNav",
|
||||
"componentTitle" => "图文导航",
|
||||
"ignore" => [],
|
||||
"layout" => "vertical",
|
||||
"navTitle" => "",
|
||||
"mode" => "graphic",
|
||||
"showStyle" => "fixed",
|
||||
"rowCount" => 4,
|
||||
"pageCount" => 2,
|
||||
"carousel" => [
|
||||
"type" => "circle",
|
||||
"color" => "#FFFFFF"
|
||||
],
|
||||
"imageSize" => 25,
|
||||
"aroundRadius" => 25,
|
||||
"font" => [
|
||||
"size" => 13,
|
||||
"weight" => "normal",
|
||||
"color" => "rgba(0, 0, 0, 1)"
|
||||
],
|
||||
"list" => [
|
||||
[
|
||||
"title" => "个人资料",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_personal.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "4xc4kw9xlqu0",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"title" => "我的余额",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_balance.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "4555rq0cc1q0",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"title" => "我的积分",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_point.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "1gq3uxox0fk0",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_service.png",
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
],
|
||||
"id" => "6gqbh1tvyr00",
|
||||
"imgWidth" => 88,
|
||||
"imgHeight" => 88
|
||||
],
|
||||
[
|
||||
"id" => "777g7jxbtfc0",
|
||||
"title" => "开发者联盟",
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_develop.png",
|
||||
"imgWidth" => 96,
|
||||
"imgHeight" => 96,
|
||||
"link" => [
|
||||
"name" => ""
|
||||
],
|
||||
"label" => [
|
||||
"control" => false,
|
||||
"text" => "热门",
|
||||
"textColor" => "#FFFFFF",
|
||||
"bgColorStart" => "#F83287",
|
||||
"bgColorEnd" => "#FE3423"
|
||||
]
|
||||
]
|
||||
],
|
||||
"pageBgColor" => "",
|
||||
"componentBgColor" => "rgba(255, 255, 255, 1)",
|
||||
"topRounded" => 9,
|
||||
"bottomRounded" => 9,
|
||||
"elementBgColor" => "",
|
||||
"topElementRounded" => 0,
|
||||
"bottomElementRounded" => 0,
|
||||
"margin" => [
|
||||
"top" => 6,
|
||||
"bottom" => 12,
|
||||
"both" => 16
|
||||
]
|
||||
]
|
||||
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
$pages = ( new DictLoader("UniappPages") )->load($system_pages);
|
||||
if (empty($type)) {
|
||||
return $pages;
|
||||
}
|
||||
return $pages[ $type ] ?? '';
|
||||
}
|
||||
|
||||
}
|
||||
@ -9,40 +9,40 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\diy;
|
||||
namespace app\dict\diy;
|
||||
|
||||
use core\addon\AddonLoader;
|
||||
use core\dict\DictLoader;
|
||||
|
||||
/**
|
||||
* 自定义页面类型
|
||||
* Class PageEnum
|
||||
* @package app\enum\sys
|
||||
* 页面模板
|
||||
* Class TemplateDict
|
||||
* @package app\dict\diy
|
||||
*/
|
||||
class PageEnum
|
||||
class TemplateDict
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取页面类型
|
||||
* 获取页面模板
|
||||
* @param string $type
|
||||
* @return array|string
|
||||
*/
|
||||
public static function getPageType($type = '')
|
||||
public static function getTemplate($type = '')
|
||||
{
|
||||
$system_pages = [
|
||||
'DIY_INDEX' => [
|
||||
'title' => get_lang('enum_diy.page_index'),
|
||||
'title' => get_lang('dict_diy.page_index'),
|
||||
'page' => 'pages/index/index',
|
||||
],
|
||||
'DIY_MEMBER_INDEX' => [
|
||||
'title' => get_lang('enum_diy.page_member_index'),
|
||||
'title' => get_lang('dict_diy.page_member_index'),
|
||||
'page' => 'pages/member/index',
|
||||
],
|
||||
'DIY_PAGE' => [
|
||||
'title' => get_lang('enum_diy.page_diy'),
|
||||
'title' => get_lang('dict_diy.page_diy'),
|
||||
'page' => 'pages/index/diy',
|
||||
]
|
||||
];
|
||||
$pages = (new AddonLoader("UniappPages"))->load($system_pages);
|
||||
$pages = (new DictLoader("UniappTemplate"))->load($system_pages);
|
||||
if (empty($type)) {
|
||||
return $pages;
|
||||
}
|
||||
38
niucloud/app/dict/member/MemberAccountChangeTypeDict.php
Normal file
38
niucloud/app/dict/member/MemberAccountChangeTypeDict.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud-admin.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dict\member;
|
||||
|
||||
use core\dict\DictLoader;
|
||||
|
||||
/**
|
||||
* 会员账户变动类型
|
||||
* Class MemberAccountTypeDict
|
||||
* @package app\dict\member
|
||||
*/
|
||||
class MemberAccountChangeTypeDict
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取账户变动方式
|
||||
* @param string $type
|
||||
* @return array|mixed|string
|
||||
*/
|
||||
public static function getType($type = '')
|
||||
{
|
||||
$account_change_type = (new DictLoader("MemberAccountChangeType"))->load();
|
||||
if (empty($type)) {
|
||||
return $account_change_type;
|
||||
}
|
||||
return $account_change_type[ $type ] ?? '';
|
||||
}
|
||||
|
||||
}
|
||||
48
niucloud/app/dict/member/MemberAccountTypeDict.php
Normal file
48
niucloud/app/dict/member/MemberAccountTypeDict.php
Normal file
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud-admin.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dict\member;
|
||||
|
||||
|
||||
/**
|
||||
* 会员账户类型
|
||||
* Class MemberAccountTypeDict
|
||||
* @package app\dict\member
|
||||
*/
|
||||
class MemberAccountTypeDict
|
||||
{
|
||||
//会员积分
|
||||
const POINT = 'point';
|
||||
//会员余额
|
||||
const BALANCE = 'balance';
|
||||
|
||||
//会员可提现余额
|
||||
const MONEY = 'money';
|
||||
|
||||
//会员佣金
|
||||
const COMMISSION = 'commission';
|
||||
|
||||
|
||||
public static function getType($type = '')
|
||||
{
|
||||
$data = [
|
||||
self::POINT => get_lang('dict_member.account_point'),
|
||||
self::BALANCE => get_lang('dict_member.account_balance'),
|
||||
self::MONEY => get_lang('dict_member.account_money'),
|
||||
self::COMMISSION => get_lang('dict_member.account_commission'),
|
||||
];
|
||||
if (empty($type)) {
|
||||
return $data;
|
||||
}
|
||||
return $data[ $type ] ?? '';
|
||||
}
|
||||
|
||||
}
|
||||
@ -9,14 +9,14 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\member;
|
||||
namespace app\dict\member;
|
||||
|
||||
/**
|
||||
* 会员提现
|
||||
* Class MemberAccountEnum
|
||||
* @package app\enum\member
|
||||
* Class MemberCashOutDict
|
||||
* @package app\dict\member
|
||||
*/
|
||||
class MemberCashOutEnum
|
||||
class MemberCashOutDict
|
||||
{
|
||||
const WAIT_AUDIT = 1;//待审核
|
||||
const WAIT_TRANSFER = 2;//待转账
|
||||
@ -30,11 +30,11 @@ class MemberCashOutEnum
|
||||
*/
|
||||
public static function getStatus(){
|
||||
return [
|
||||
self::WAIT_AUDIT => get_lang('enum_member_cash_out.status_wait_audit'),//待审核
|
||||
self::WAIT_TRANSFER => get_lang('enum_member_cash_out.status_wait_transfer'),//待转账
|
||||
self::TRANSFERED => get_lang('enum_member_cash_out.status_transfered'),//已转账
|
||||
self::REFUSE => get_lang('enum_member_cash_out.status_refuse'),//已拒绝
|
||||
self::CANCEL => get_lang('enum_member_cash_out.status_cancel'),//已取消
|
||||
self::WAIT_AUDIT => get_lang('dict_member_cash_out.status_wait_audit'),//待审核
|
||||
self::WAIT_TRANSFER => get_lang('dict_member_cash_out.status_wait_transfer'),//待转账
|
||||
self::TRANSFERED => get_lang('dict_member_cash_out.status_transfered'),//已转账
|
||||
self::REFUSE => get_lang('dict_member_cash_out.status_refuse'),//已拒绝
|
||||
self::CANCEL => get_lang('dict_member_cash_out.status_cancel'),//已取消
|
||||
];
|
||||
}
|
||||
|
||||
@ -9,15 +9,15 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\member;
|
||||
namespace app\dict\member;
|
||||
|
||||
use app\enum\common\ChannelEnum;
|
||||
use app\dict\common\ChannelDict;
|
||||
|
||||
/**
|
||||
* 会员信息枚举类
|
||||
* Class MemberEnum
|
||||
* Class MemberDict
|
||||
*/
|
||||
class MemberEnum extends ChannelEnum
|
||||
class MemberDict extends ChannelDict
|
||||
{
|
||||
|
||||
const ON = 1;
|
||||
@ -29,8 +29,8 @@ class MemberEnum extends ChannelEnum
|
||||
*/
|
||||
public static function getStatus(){
|
||||
return [
|
||||
self::ON => get_lang('enum_member.status_on'),//正常
|
||||
self::OFF => get_lang('enum_member.status_off'),//无效
|
||||
self::ON => get_lang('dict_member.status_on'),//正常
|
||||
self::OFF => get_lang('dict_member.status_off'),//无效
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -9,14 +9,14 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\member;
|
||||
namespace app\dict\member;
|
||||
|
||||
/**
|
||||
* 会员登录方式
|
||||
* Class MemberLoginTypeEnum
|
||||
* @package app\enum\member
|
||||
* Class MemberLoginTypeDict
|
||||
* @package app\dict\member
|
||||
*/
|
||||
class MemberLoginTypeEnum
|
||||
class MemberLoginTypeDict
|
||||
{
|
||||
//用户名密码注册登录
|
||||
const USERNAME = 'username';
|
||||
@ -29,10 +29,10 @@ class MemberLoginTypeEnum
|
||||
|
||||
public static function getType($type = ''){
|
||||
$data = [
|
||||
self::USERNAME => get_lang('enum_member.login_username'),//用户名密码登录
|
||||
self::MOBILE => get_lang('enum_member.login_mobile'),//手机号验证码登录,
|
||||
self::WECHAT => get_lang('enum_member.login_wechat'),//'微信公众号授权登录',
|
||||
self::WEAPP => get_lang('enum_member.login_weapp'),//'微信小程序授权登录',
|
||||
self::USERNAME => get_lang('dict_member.login_username'),//用户名密码登录
|
||||
self::MOBILE => get_lang('dict_member.login_mobile'),//手机号验证码登录,
|
||||
self::WECHAT => get_lang('dict_member.login_wechat'),//'微信公众号授权登录',
|
||||
self::WEAPP => get_lang('dict_member.login_weapp'),//'微信小程序授权登录',
|
||||
];
|
||||
if(empty($type)){
|
||||
return $data;
|
||||
@ -9,23 +9,23 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\member;
|
||||
namespace app\dict\member;
|
||||
|
||||
use app\enum\common\ChannelEnum;
|
||||
use app\dict\common\ChannelDict;
|
||||
|
||||
/**
|
||||
* 会员注册渠道枚举类
|
||||
* Class MemberRegisterChannelEnum
|
||||
* Class MemberRegisterChannelDict
|
||||
*/
|
||||
class MemberRegisterChannelEnum extends ChannelEnum
|
||||
class MemberRegisterChannelDict extends ChannelDict
|
||||
{
|
||||
//手动添加
|
||||
const MANUAL = 'manual';
|
||||
|
||||
public static function getType($type = ''){
|
||||
|
||||
$data = ChannelEnum::getType($type);
|
||||
$data[self::MANUAL] = get_lang('enum_member.register_manual');//手动添加
|
||||
$data = ChannelDict::getType($type);
|
||||
$data[self::MANUAL] = get_lang('dict_member.register_manual');//手动添加
|
||||
if(empty($type)){
|
||||
return $data;
|
||||
}
|
||||
@ -9,14 +9,14 @@
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\enum\member;
|
||||
namespace app\dict\member;
|
||||
|
||||
/**
|
||||
* 会员端口枚举类
|
||||
* Class MemberRegisterTypeEnum
|
||||
* @package app\enum\member
|
||||
* Class MemberRegisterTypeDict
|
||||
* @package app\dict\member
|
||||
*/
|
||||
class MemberRegisterTypeEnum
|
||||
class MemberRegisterTypeDict
|
||||
{
|
||||
//微信小程序
|
||||
const WEAPP = 'weapp';
|
||||
@ -32,11 +32,11 @@ class MemberRegisterTypeEnum
|
||||
|
||||
public static function getType($type = ''){
|
||||
$data = [
|
||||
self::WEAPP => get_lang('enum_member.register_weapp'),//微信小程序
|
||||
self::WECHAT => get_lang('enum_member.register_wechat'),//'微信公众号',
|
||||
self::MANUAL => get_lang('enum_member.register_manual'),//'手动添加',
|
||||
self::USERNAME => get_lang('enum_member.register_username'),//用户名密码登录
|
||||
self::MOBILE => get_lang('enum_member.register_mobile'),//手机号验证码登录,
|
||||
self::WEAPP => get_lang('dict_member.register_weapp'),//微信小程序
|
||||
self::WECHAT => get_lang('dict_member.register_wechat'),//'微信公众号',
|
||||
self::MANUAL => get_lang('dict_member.register_manual'),//'手动添加',
|
||||
self::USERNAME => get_lang('dict_member.register_username'),//用户名密码登录
|
||||
self::MOBILE => get_lang('dict_member.register_mobile'),//手机号验证码登录,
|
||||
];
|
||||
if(empty($type)){
|
||||
return $data;
|
||||
116
niucloud/app/dict/member/account_change_type.php
Normal file
116
niucloud/app/dict/member/account_change_type.php
Normal file
@ -0,0 +1,116 @@
|
||||
<?php
|
||||
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
|
||||
return [
|
||||
MemberAccountTypeDict::POINT => [
|
||||
//调整
|
||||
'adjust' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_point_adjust'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
//充值赠送
|
||||
'recharge_give' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_point_recharge_give'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 0,
|
||||
],
|
||||
|
||||
],
|
||||
MemberAccountTypeDict::BALANCE => [
|
||||
//调整
|
||||
'adjust' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_balance_adjust'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
//充值
|
||||
'recharge' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_balance_recharge'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 0,
|
||||
],
|
||||
'recharge_refund' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_balance_recharge_refund'),
|
||||
//是否增加
|
||||
'inc' => 0,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
//订单消费扣除余额
|
||||
'order' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_balance_order'),
|
||||
//是否增加
|
||||
'inc' => 0,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
//订单退款返还余额
|
||||
'order_refund' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_balance_order_refund'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 0,
|
||||
],
|
||||
],
|
||||
MemberAccountTypeDict::MONEY => [
|
||||
|
||||
//活动奖励
|
||||
'award' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_money_award'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 0,
|
||||
],
|
||||
//提现
|
||||
'cash_out' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_money_cash_out'),
|
||||
//是否增加
|
||||
'inc' => 0,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
],
|
||||
//会员佣金
|
||||
MemberAccountTypeDict::COMMISSION => [
|
||||
|
||||
//活动奖励
|
||||
'award' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_commission_award'),
|
||||
//是否增加
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 0,
|
||||
],
|
||||
//提现
|
||||
'cash_out' => [
|
||||
//名称
|
||||
'name' => get_lang('dict_member.account_commission_cash_out'),
|
||||
//是否增加
|
||||
'inc' => 0,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
],
|
||||
]
|
||||
];
|
||||
@ -14,7 +14,6 @@
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '站点管理',
|
||||
@ -28,7 +27,6 @@
|
||||
'sort' => 50,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '站点列表',
|
||||
@ -42,7 +40,6 @@
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '站点详情',
|
||||
@ -56,7 +53,6 @@
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '站点套餐',
|
||||
@ -70,7 +66,6 @@
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '站点用户',
|
||||
@ -84,7 +79,6 @@
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -100,7 +94,6 @@
|
||||
'sort' => 40,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '菜单管理',
|
||||
@ -114,7 +107,6 @@
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '平台菜单',
|
||||
@ -128,7 +120,6 @@
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '新增',
|
||||
@ -142,7 +133,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑',
|
||||
@ -156,7 +146,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '删除',
|
||||
@ -170,7 +159,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '详情',
|
||||
@ -184,7 +172,6 @@
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -200,7 +187,6 @@
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '新增',
|
||||
@ -214,7 +200,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑',
|
||||
@ -228,7 +213,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '删除',
|
||||
@ -242,7 +226,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '详情',
|
||||
@ -256,7 +239,6 @@
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
],
|
||||
]
|
||||
@ -275,7 +257,6 @@
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '新增',
|
||||
@ -289,7 +270,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑',
|
||||
@ -303,7 +283,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '删除',
|
||||
@ -317,7 +296,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '详情',
|
||||
@ -331,7 +309,6 @@
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -347,7 +324,6 @@
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '新增',
|
||||
@ -361,7 +337,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑',
|
||||
@ -375,7 +350,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '删除',
|
||||
@ -389,7 +363,6 @@
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -405,7 +378,6 @@
|
||||
'sort' => 60,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -422,7 +394,6 @@
|
||||
'sort' => 20,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '网站设置',
|
||||
@ -436,7 +407,6 @@
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '版权设置',
|
||||
@ -450,7 +420,6 @@
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '登录设置',
|
||||
@ -464,7 +433,6 @@
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '存储设置',
|
||||
@ -478,7 +446,19 @@
|
||||
'sort' => 30,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '微信开放平台',
|
||||
'menu_key' => 'setting_oplatform',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconweixin',
|
||||
'api_url' => 'sys/wxoplatform',
|
||||
'router_path' => 'oplatform',
|
||||
'view_path' => 'setting/wxoplatform',
|
||||
'methods' => 'get',
|
||||
'sort' => 20,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -494,7 +474,6 @@
|
||||
'sort' => 10,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '代码生成',
|
||||
@ -508,21 +487,6 @@
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '应用市场',
|
||||
'menu_key' => 'app_store',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconyingyongshichang',
|
||||
'api_url' => 'addon/local',
|
||||
'router_path' => 'app_store',
|
||||
'view_path' => 'tools/app/index',
|
||||
'methods' => 'get',
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '数据表编辑',
|
||||
@ -536,21 +500,6 @@
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '定时任务',
|
||||
'menu_key' => 'system_cron',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'element-SetUp',
|
||||
'api_url' => 'sys/cron',
|
||||
'router_path' => 'cron',
|
||||
'view_path' => 'tools/cron',
|
||||
'methods' => 'get',
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '更新缓存',
|
||||
@ -564,7 +513,6 @@
|
||||
'sort' => 60,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '环境检测',
|
||||
@ -578,8 +526,20 @@
|
||||
'sort' => 50,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'menu_name' => '应用市场',
|
||||
'menu_key' => 'app_store',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'element-ShoppingBag',
|
||||
'api_url' => 'addon/local',
|
||||
'router_path' => 'app_store',
|
||||
'view_path' => 'app/store',
|
||||
'methods' => 'get',
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
],
|
||||
];
|
||||
@ -13,7 +13,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '装修管理',
|
||||
@ -27,7 +26,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '首页装修',
|
||||
@ -41,7 +39,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '个人中心',
|
||||
@ -55,7 +52,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '保存',
|
||||
@ -69,7 +65,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '页面管理',
|
||||
@ -83,7 +78,6 @@ return
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '底部导航',
|
||||
@ -97,7 +91,6 @@ return
|
||||
'sort' => 60,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' =>
|
||||
[
|
||||
[
|
||||
@ -112,7 +105,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -128,7 +120,6 @@ return
|
||||
'sort' => 50,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -144,7 +135,6 @@ return
|
||||
'sort' => 21,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '装修',
|
||||
@ -158,7 +148,6 @@ return
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -175,7 +164,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '文章列表',
|
||||
@ -189,7 +177,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '文章添加/编辑',
|
||||
@ -203,7 +190,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '文章栏目',
|
||||
@ -217,7 +203,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -233,7 +218,6 @@ return
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' =>
|
||||
[
|
||||
[
|
||||
@ -248,7 +232,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
|
||||
@ -263,7 +246,6 @@ return
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -279,7 +261,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '会员标签',
|
||||
@ -293,7 +274,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
|
||||
@ -308,7 +288,6 @@ return
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
|
||||
@ -323,12 +302,11 @@ return
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
|
||||
'menu_name' => '删除标签',
|
||||
'menu_key' => 'member_label_add',
|
||||
'menu_key' => 'member_label_delete',
|
||||
'menu_type' => 2,
|
||||
'icon' => '',
|
||||
'api_url' => 'member/label/<id>',
|
||||
@ -338,7 +316,6 @@ return
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -354,7 +331,6 @@ return
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '会员余额',
|
||||
@ -368,7 +344,6 @@ return
|
||||
'sort' => 60,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '会员佣金',
|
||||
@ -382,7 +357,6 @@ return
|
||||
'sort' => 59,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -398,7 +372,6 @@ return
|
||||
'sort' => 60,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '会员充值',
|
||||
@ -412,7 +385,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '退款',
|
||||
@ -426,7 +398,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -442,7 +413,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '会员提现',
|
||||
@ -456,7 +426,6 @@ return
|
||||
'sort' => 99,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '退款记录',
|
||||
@ -470,11 +439,10 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '退款详情',
|
||||
'menu_key' => 'refund',
|
||||
'menu_key' => 'refund_detail',
|
||||
'menu_type' => 2,
|
||||
'icon' => '',
|
||||
'api_url' => 'order/refund/<id>',
|
||||
@ -484,7 +452,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
|
||||
]
|
||||
@ -495,17 +462,30 @@ return
|
||||
|
||||
'menu_name' => '应用管理',
|
||||
'menu_key' => 'addon',
|
||||
'menu_type' => 1,
|
||||
'menu_type' => 0,
|
||||
'icon' => 'iconfont-iconmanage-apply',
|
||||
'api_url' => 'addon/list',
|
||||
'api_url' => '',
|
||||
'router_path' => 'app',
|
||||
'view_path' => 'app/index',
|
||||
'methods' => 'get',
|
||||
'view_path' => '',
|
||||
'methods' => '',
|
||||
'sort' => 55,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => []
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '应用管理',
|
||||
'menu_key' => 'addon_list',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconmanage-apply',
|
||||
'api_url' => 'addon/list',
|
||||
'router_path' => 'index',
|
||||
'view_path' => 'app/index',
|
||||
'methods' => 'get',
|
||||
'sort' => 50,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
|
||||
@ -520,7 +500,6 @@ return
|
||||
'sort' => 50,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '电脑端',
|
||||
@ -534,7 +513,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '电脑端配置',
|
||||
@ -548,7 +526,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -564,7 +541,6 @@ return
|
||||
'sort' => 110,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => 'H5端配置',
|
||||
@ -578,7 +554,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -594,7 +569,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '公众号配置',
|
||||
@ -608,7 +582,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '自定义菜单',
|
||||
@ -622,7 +595,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '模板消息',
|
||||
@ -636,7 +608,6 @@ return
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -652,7 +623,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '小程序配置',
|
||||
@ -666,7 +636,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '订阅消息',
|
||||
@ -680,7 +649,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -696,7 +664,6 @@ return
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '支付宝配置',
|
||||
@ -710,7 +677,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -728,7 +694,6 @@ return
|
||||
'sort' => 40,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
|
||||
@ -743,7 +708,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '新增',
|
||||
@ -757,7 +721,6 @@ return
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑',
|
||||
@ -771,7 +734,6 @@ return
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '删除',
|
||||
@ -785,7 +747,6 @@ return
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '详情',
|
||||
@ -799,7 +760,6 @@ return
|
||||
'sort' => 0,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -815,7 +775,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '新增',
|
||||
@ -829,7 +788,6 @@ return
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑',
|
||||
@ -843,7 +801,6 @@ return
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '删除',
|
||||
@ -857,7 +814,6 @@ return
|
||||
'sort' => 1,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -873,7 +829,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -890,7 +845,6 @@ return
|
||||
'sort' => 30,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '网站设置',
|
||||
@ -904,7 +858,7 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
|
||||
],
|
||||
[
|
||||
'menu_name' => '协议管理',
|
||||
@ -918,7 +872,6 @@ return
|
||||
'sort' => 80,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
|
||||
]
|
||||
@ -935,7 +888,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 0,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '注册登录',
|
||||
@ -949,7 +901,19 @@ return
|
||||
'sort' => 70,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '会员设置',
|
||||
'menu_key' => 'setting_member',
|
||||
'menu_type' => 1,
|
||||
'icon' => 'iconfont-iconjiaoseyonghu',
|
||||
'api_url' => 'member/config/member',
|
||||
'router_path' => 'member',
|
||||
'view_path' => 'setting/member',
|
||||
'methods' => 'get',
|
||||
'sort' => 71,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
],
|
||||
[
|
||||
'menu_name' => '支付管理',
|
||||
@ -963,7 +927,6 @@ return
|
||||
'sort' => 60,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '支付设置',
|
||||
@ -977,7 +940,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '设置',
|
||||
@ -991,7 +953,6 @@ return
|
||||
'sort' => 100,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -1007,7 +968,6 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '设置',
|
||||
@ -1021,7 +981,7 @@ return
|
||||
'sort' => 90,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
|
||||
],
|
||||
]
|
||||
],
|
||||
@ -1037,7 +997,7 @@ return
|
||||
// 'sort' => 0,
|
||||
// 'status' => 1,
|
||||
// 'is_show' => 0,
|
||||
// 'en_menu_name' => '',
|
||||
//
|
||||
// ],
|
||||
// [
|
||||
// 'menu_name' => '支付宝支付',
|
||||
@ -1051,7 +1011,7 @@ return
|
||||
// 'sort' => 0,
|
||||
// 'status' => 1,
|
||||
// 'is_show' => 0,
|
||||
// 'en_menu_name' => '',
|
||||
//
|
||||
// ],
|
||||
// [
|
||||
// 'menu_name' => '获取支付配置',
|
||||
@ -1065,7 +1025,7 @@ return
|
||||
// 'sort' => 0,
|
||||
// 'status' => 1,
|
||||
// 'is_show' => 0,
|
||||
// 'en_menu_name' => '',
|
||||
//
|
||||
// ],
|
||||
// [
|
||||
// 'menu_name' => '配置支付',
|
||||
@ -1079,7 +1039,7 @@ return
|
||||
// 'sort' => 0,
|
||||
// 'status' => 1,
|
||||
// 'is_show' => 0,
|
||||
// 'en_menu_name' => '',
|
||||
//
|
||||
// ],
|
||||
]
|
||||
],
|
||||
@ -1095,7 +1055,6 @@ return
|
||||
'sort' => 59,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '消息管理',
|
||||
@ -1109,7 +1068,6 @@ return
|
||||
'sort' => 50,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '消息模板',
|
||||
@ -1123,7 +1081,6 @@ return
|
||||
'sort' => 10,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
],
|
||||
[
|
||||
'menu_name' => '发送记录',
|
||||
@ -1137,7 +1094,6 @@ return
|
||||
'sort' => 9,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
]
|
||||
]
|
||||
],
|
||||
@ -1153,7 +1109,6 @@ return
|
||||
'sort' => 40,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '短信设置',
|
||||
@ -1167,7 +1122,7 @@ return
|
||||
'sort' => 12,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
|
||||
],
|
||||
[
|
||||
'menu_name' => '发送记录',
|
||||
@ -1181,7 +1136,7 @@ return
|
||||
'sort' => 11,
|
||||
'status' => 1,
|
||||
'is_show' => 1,
|
||||
'en_menu_name' => '',
|
||||
|
||||
]
|
||||
]
|
||||
],
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user