3 Komitmen bd1f8a8e25 ... 21f02711e2

Pembuat SHA1 Pesan Tanggal
  wenjie 21f02711e2 数据分离,权限控制 6 bulan lalu
  wenjie eed7b89988 权限 6 bulan lalu
  wenjie 909cd979b5 订单等数据分离 6 bulan lalu
42 mengubah file dengan 2278 tambahan dan 3887 penghapusan
  1. 1 0
      package.json
  2. 138 2
      src/api/auth.js
  3. 4 4
      src/layout/components/Sidebar/index.vue
  4. 7 1
      src/main.js
  5. 23 24
      src/permission.js
  6. 1325 1495
      src/router/index.js
  7. 1 0
      src/store/getters.js
  8. 92 24
      src/store/modules/user.js
  9. 2 3
      src/utils/request.js
  10. 174 56
      src/views/authorityManage/menuList.vue
  11. 130 64
      src/views/authorityManage/roleList.vue
  12. 157 100
      src/views/authorityManage/userList.vue
  13. 20 6
      src/views/home/index.vue
  14. 6 5
      src/views/operationManage/activityManage/index.vue
  15. 3 3
      src/views/operationManage/advertisingManage/index.vue
  16. 3 3
      src/views/operationManage/appMenuManage/index.vue
  17. 3 3
      src/views/operationManage/bannerManage/index.vue
  18. 5 4
      src/views/operationManage/comboManage/index.vue
  19. 2 2
      src/views/operationManage/comboManage/logList.vue
  20. 2 2
      src/views/operationManage/comboManage/vipActivation.vue
  21. 5 2
      src/views/operationManage/couponManage/index.vue
  22. 1 1
      src/views/operationManage/financeManage/withdraw.vue
  23. 0 406
      src/views/operationManage/goodsAudit/auditDetail.vue
  24. 0 915
      src/views/operationManage/goodsAudit/auditGoods.vue
  25. 0 429
      src/views/operationManage/goodsAudit/auditGoods1.vue
  26. 0 240
      src/views/operationManage/goodsAudit/index.vue
  27. 22 8
      src/views/operationManage/goodsManage/goodsDetail.vue
  28. 4 4
      src/views/operationManage/goodsManage/homeGoodsSet.vue
  29. 7 6
      src/views/operationManage/goodsManage/index.vue
  30. 12 12
      src/views/operationManage/goodsManage/labelList.vue
  31. 2 2
      src/views/operationManage/goodsManage/productLibrary.vue
  32. 3 3
      src/views/operationManage/goodsType/index.vue
  33. 5 4
      src/views/operationManage/luckyDrawManage/index.vue
  34. 3 3
      src/views/operationManage/marketingManage/index.vue
  35. 3 3
      src/views/operationManage/marketingManage/invitePromotion/index.vue
  36. 2 2
      src/views/operationManage/orderManage/index.vue
  37. 2 2
      src/views/operationManage/orderManage/list.vue
  38. 2 2
      src/views/operationManage/orderManage/orderDetail.vue
  39. 21 2
      src/views/operationManage/shopManage/index.vue
  40. 80 35
      src/views/operationManage/shopManage/shopAdd.vue
  41. 5 4
      src/views/operationManage/templateManage/index.vue
  42. 1 1
      yarn.lock

+ 1 - 0
package.json

@@ -35,6 +35,7 @@
     "xlsx": "^0.16.0"
   },
   "devDependencies": {
+    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
     "@vue/cli-plugin-babel": "4.4.4",
     "@vue/cli-plugin-eslint": "4.4.4",
     "@vue/cli-plugin-unit-jest": "4.4.4",

+ 138 - 2
src/api/auth.js

@@ -1,8 +1,8 @@
 /*
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2021-07-15 12:26:02
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2023-12-18 10:56:42
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-11-22 14:41:47
  * @FilePath: \admin-manage\src\api\auth.js
  * @Description: 
  * 
@@ -46,5 +46,141 @@ export function superadminList(params) {
   })
 }
 
+// 菜单管理
+export function getMenuList(params) {
+  return request({
+      url: '/zswl-cloud-shop/authMenu/search',
+      method: 'get',
+      params
+  })
+}
+
+// 添加编辑菜单
+export function addOrUpdateMenu(data) {
+  return request({
+      url: '/zswl-cloud-shop/authMenu/addOrUpdate',
+      method: 'post',
+      data
+  })
+}
+
+// 菜单层级数据
+export function getMenuData(params) {
+  return request({
+      url: '/zswl-cloud-shop/authMenu/search',
+      method: 'get',
+      params
+  })
+}
+
+// 菜单详情
+export function menuDetail(params) {
+  return request({
+      url: '/zswl-cloud-shop/authMenu/get',
+      method: 'get',
+      params
+  })
+}
+
+// 菜单删除
+export function delMenu(params) {
+  return request({
+      url: '/zswl-cloud-shop/authMenu/del',
+      method: 'get',
+      params
+  })
+}
+
+// 获取权限菜单
+export function getMenuAuth(params) {
+  return request({
+      url: '/zswl-cloud-shop/authRoleEmployee/getAuth',
+      method: 'get',
+      params
+  })
+}
+
+// 获取权限按钮
+export function getAuthButton(params) {
+  return request({
+      url: '/zswl-cloud-shop/authRoleEmployee/getAuthButton',
+      method: 'get',
+      params
+  })
+}
+
+
+// 角色列表
+export function authRoleList(params) {
+  return request({
+      url: '/zswl-cloud-shop/authRole/search',
+      method: 'get',
+      params
+  })
+}
 
+// 角色启用禁用
+export function authRoleEnable(params) {
+  return request({
+      url: '/zswl-cloud-shop/authRole/enable',
+      method: 'get',
+      params
+  })
+}
 
+// 添加编辑角色
+export function addOrUpdateAuthRole(data) {
+  return request({
+      url: '/zswl-cloud-shop/authRole/addOrUpdate',
+      method: 'post',
+      data
+  })
+}
+
+// 获取全部角色
+export function getAllRole(params) {
+  return request({
+      url: '/zswl-cloud-shop/authRole/data',
+      method: 'get',
+      params
+  })
+}
+
+
+
+// 用户列表
+export function getUserList(params) {
+  return request({
+      url: '/zswl-cloud-shop/authRoleEmployee/search',
+      method: 'get',
+      params
+  })
+}
+
+// 添加用户
+export function addUser(data) {
+  return request({
+      url: '/zswl-cloud-shop/authRoleEmployee/add',
+      method: 'post',
+      data
+  })
+}
+
+// 编辑用户
+export function updateUser(data) {
+  return request({
+      url: '/zswl-cloud-shop/authRoleEmployee/update',
+      method: 'post',
+      data
+  })
+}
+
+// 启用用户
+export function enableUser(params) {
+  console.log(params);
+  return request({
+      url: '/zswl-cloud-shop/authRoleEmployee/enable',
+      method: 'get',
+      params
+  })
+}

+ 4 - 4
src/layout/components/Sidebar/index.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-09-18 10:57:47
- * @LastEditors: wj 1454560336@qq.com
- * @LastEditTime: 2023-11-03 09:40:23
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-11-13 16:28:31
  * @FilePath: \admin-manage\src\layout\components\Sidebar\index.vue
  * @Description: 
  * 
@@ -22,7 +22,7 @@
         :collapse-transition="false"
         mode="vertical"
       >
-        <sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path" />
+        <sidebar-item v-for="route in menus" :key="route.path" :item="route" :base-path="route.path" />
       </el-menu>
     </el-scrollbar>
   </div>
@@ -41,7 +41,7 @@ export default {
       'sidebar','menus'
     ]),
     routes() {
-      return this.$router.options.routes
+      return  this.$router.options.routes
     },
     activeMenu() {
       const route = this.$route

+ 7 - 1
src/main.js

@@ -2,7 +2,7 @@
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2022-06-29 15:28:34
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-10-25 14:21:05
+ * @LastEditTime: 2024-11-22 15:13:40
  * @FilePath: \admin-manage\src\main.js
  * @Description: 
  * 
@@ -55,8 +55,14 @@ Vue.use(Title)
 Vue.use(ElementUI)
 
 Vue.config.productionTip = false
+import { mapGetters } from 'vuex'
 
 Vue.mixin({
+  computed: {
+    ...mapGetters([
+      'btnAuthObj'
+    ]),
+  },
   data() {
     return {
       masterShopOptions:[

+ 23 - 24
src/permission.js

@@ -2,7 +2,7 @@
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2022-08-02 18:10:30
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-11-07 10:05:27
+ * @LastEditTime: 2024-12-02 09:25:45
  * @FilePath: \admin-manage\src\permission.js
  * @Description: 
  * 
@@ -45,32 +45,31 @@ router.beforeEach((to, from, next) => {
       next({ path: '/' })
       NProgress.done()
     } else {
-      next()
-      NProgress.done()
-      // const hasGetUserInfo = store.getters.menu
-      // if (store.getters.menus) {
-      //   next()
-      // } else {
-      //   try {
-      //     // 获取用户信息
-      //     store.dispatch('user/getMenu').then(res=>{
-      //       // res.push({ path: '*', redirect: '/404', hidden: true })
+      // next()
+      // NProgress.done()
+      const hasGetUserInfo = store.getters.menu
+      if (store.getters.menus) {
+        next()
+      } else {
+        try {
+          // 获取用户信息
+          store.dispatch('user/getMenu').then(res=>{
+            router.addRoutes(res)
+            next({ ...to, replace: true })
+            NProgress.done()
 
-      //       router.addRoutes(res)
-            
-      //       next({ ...to, replace: true })
-      //     })
-      //     // let asyncRouterMap = asyncRouter
+          })
+          // let asyncRouterMap = asyncRouter
 
 
-      //   } catch (error) {
-      //     // remove token and go to login page to re-login
-      //     // await store.dispatch('user/resetToken')
-      //     // Message.error(error || 'Has Error')
-      //     // next(`/login?redirect=${to.path}`)
-      //     // NProgress.done()
-      //   }
-      // }
+        } catch (error) {
+          // remove token and go to login page to re-login
+          // await store.dispatch('user/resetToken')
+          // Message.error(error || 'Has Error')
+          // next(`/login?redirect=${to.path}`)
+          // NProgress.done()
+        }
+      }
 
     }
   } else {

+ 1325 - 1495
src/router/index.js

@@ -2,7 +2,7 @@
  * @Author: wenjie 1454560336@qq.com
  * @Date: 2024-03-05 11:36:07
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-11-07 10:01:35
+ * @LastEditTime: 2024-11-25 14:54:13
  * @FilePath: \admin-manage\src\router\index.js
  * @Description:
  *
@@ -67,1549 +67,1379 @@ export let constantRoutes = [{
 
   //   ]
   // },
-  {
-    id: 0,
-    path: '/',
-    component: Layout,
-    redirect: '/home',
-    meta: {
-      title: '首页',
-      icon: 'icon-shouyefill'
-    },
-    children: [{
-        id: 1,
-        path: '/home',
-        name: '/home',
-        component: () => import('@/views/home/index.vue'),
-        meta: {
-          title: '首页',
-          icon: ''
-        },
-      },
-      {
-        id: 2,
-        path: '/updatePassword',
-        name: '/updatePassword',
-        component: () => import('@/views/updatePassword/index.vue'),
-        meta: {
-          title: '修改密码',
-          icon: ''
-        },
-      },
-    ]
-  },
-  {
-    id: 0,
-    path: '/authorityManage',
-    component: Layout,
-    meta: {
-      title: '权限管理',
-      icon: 'icon-shouyefill'
-    },
-    children: [
-      {
-        id: 1,
-        path: '/authorityManage/menuList',
-        name: '/authorityManage/menuList',
-        component: () => import('@/views/authorityManage/menuList.vue'),
-        meta: {
-          title: '菜单列表',
-          icon: ''
-        },
-      },
-      {
-        id: 2,
-        path: '/authorityManage/roleList',
-        name: '/authorityManage/roleList',
-        component: () => import('@/views/authorityManage/roleList.vue'),
-        meta: {
-          title: '角色列表',
-          icon: ''
-        },
-      },
-      {
-        id: 2,
-        path: '/authorityManage/userList',
-        name: '/authorityManage/userList',
-        component: () => import('@/views/authorityManage/userList.vue'),
-        meta: {
-          title: '用户列表',
-          icon: ''
-        },
-      },
-    ]
-  },
   // {
-  //   id: 36,
-  //   path: '/adminManage',
+  //   id: 0,
+  //   path: '/',
   //   component: Layout,
-  //   meta: { title: '账号管理', icon: 'el-icon-user-solid' },
-  //   alwaysShow: true,
+  //   redirect: '/home',
+  //   meta: {
+  //     title: '首页',
+  //     icon: 'icon-shouyefill'
+  //   },
+  //   children: [{
+  //       id: 1,
+  //       path: '/home',
+  //       name: '/home',
+  //       component: () => import('@/views/home/index.vue'),
+  //       meta: {
+  //         title: '首页',
+  //         icon: ''
+  //       },
+  //     },
+  //     {
+  //       id: 2,
+  //       path: '/updatePassword',
+  //       name: '/updatePassword',
+  //       component: () => import('@/views/updatePassword/index.vue'),
+  //       meta: {
+  //         title: '修改密码',
+  //         icon: ''
+  //       },
+  //     },
+  //   ]
+  // },
+  // {
+  //   id: 0,
+  //   path: '/authorityManage',
+  //   component: Layout,
+  //   meta: {
+  //     title: '权限管理',
+  //     icon: 'icon-shouyefill'
+  //   },
   //   children: [
   //     {
-  //       id: 37,
-  //       path: '/adminManage/adminList',
-  //       name: '/adminManage/adminList',
-  //       component: () => import('@/views/adminManage/adminList.vue'),
-  //       meta: { title: '账号列表', icon: '' },
+  //       id: 1,
+  //       path: '/authorityManage/menuList',
+  //       name: '/authorityManage/menuList',
+  //       component: () => import('@/views/authorityManage/menuList.vue'),
+  //       meta: {
+  //         title: '菜单列表',
+  //         icon: ''
+  //       },
   //     },
   //     {
-  //       id: 37,
-  //       path: '/adminManage/adminDetail',
-  //       name: '/adminManage/adminDetail',
-  //       hidden: true ,
-  //       component: () => import('@/views/adminManage/adminDetail.vue'),
-  //       meta: { title: '账号详情', icon: '',activeMenu:'/adminManage/adminList' },
+  //       id: 2,
+  //       path: '/authorityManage/roleList',
+  //       name: '/authorityManage/roleList',
+  //       component: () => import('@/views/authorityManage/roleList.vue'),
+  //       meta: {
+  //         title: '角色列表',
+  //         icon: ''
+  //       },
   //     },
   //     {
-  //       id: 37,
-  //       path: '/adminManage/adminAdd',
-  //       name: '/adminManage/adminAdd',
-  //       hidden: true ,
-  //       component: () => import('@/views/adminManage/adminAdd.vue'),
-  //       meta: { title: '人员添加', icon: '',activeMenu:'/adminManage/adminList' },
+  //       id: 2,
+  //       path: '/authorityManage/userList',
+  //       name: '/authorityManage/userList',
+  //       component: () => import('@/views/authorityManage/userList.vue'),
+  //       meta: {
+  //         title: '用户列表',
+  //         icon: ''
+  //       },
   //     },
   //   ]
   // },
 
-  {
-    id: 0,
-    path: '/operationManage/index',
-    component: Layout,
-    meta: {
-      title: '运营管理',
-      icon: 'el-icon-s-shop'
-    },
-    alwaysShow: true,
-    children: [{
-        id: 0,
-        path: '/operationManage/shopManage/index',
-        component: operationLayout,
-        meta: {
-          title: '商铺管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopType',
-            name: '/operationManage/shopManage/shopType',
-            component: () => import('@/views/operationManage/shopManage/shopType.vue'),
-            hidden:true,
-            meta: {
-              title: '店铺类型',
-              icon: ''
-            },
-          },{
-            id: 1,
-            path: '/operationManage/shopManage/index',
-            name: '/operationManage/shopManage/index',
-            component: () => import('@/views/operationManage/shopManage/index.vue'),
-            meta: {
-              title: '店铺列表',
-              icon: ''
-            },
-          },
+  // {
+  //   id: 0,
+  //   path: '/operationManage/index',
+  //   component: Layout,
+  //   meta: {
+  //     title: '运营管理',
+  //     icon: 'el-icon-s-shop'
+  //   },
+  //   alwaysShow: true,
+  //   children: [{
+  //       id: 0,
+  //       path: '/operationManage/shopManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '商铺管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/shopManage/shopType',
+  //           name: '/operationManage/shopManage/shopType',
+  //           component: () => import('@/views/operationManage/shopManage/shopType.vue'),
+  //           hidden:true,
+  //           meta: {
+  //             title: '店铺类型',
+  //             icon: ''
+  //           },
+  //         },{
+  //           id: 1,
+  //           path: '/operationManage/shopManage/index',
+  //           name: '/operationManage/shopManage/index',
+  //           component: () => import('@/views/operationManage/shopManage/index.vue'),
+  //           meta: {
+  //             title: '店铺列表',
+  //             icon: ''
+  //           },
+  //         },
 
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopAdd',
-            name: '/operationManage/shopManage/shopAdd',
-            component: () => import('@/views/operationManage/shopManage/shopAdd.vue'),
-            meta: {
-              title: '店铺添加'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopAdd1',
-            name: '/operationManage/shopManage/shopAdd1',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopAdd1.vue'),
-            meta: {
-              title: '银联认证',
-              activeMenu: '/operationManage/shopManage/index'
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/shopManage/shopAdd',
+  //           name: '/operationManage/shopManage/shopAdd',
+  //           component: () => import('@/views/operationManage/shopManage/shopAdd.vue'),
+  //           meta: {
+  //             title: '店铺添加'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/shopManage/shopAdd1',
+  //           name: '/operationManage/shopManage/shopAdd1',
+  //           hidden: true,
+  //           component: () => import('@/views/operationManage/shopManage/shopAdd1.vue'),
+  //           meta: {
+  //             title: '银联认证',
+  //             activeMenu: '/operationManage/shopManage/index'
 
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopAdd2',
-            name: '/operationManage/shopManage/shopAdd2',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopAdd2.vue'),
-            meta: {
-              title: '银联认证',
-              activeMenu: '/operationManage/shopManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/shopManage/shopAdd2',
+  //           name: '/operationManage/shopManage/shopAdd2',
+  //           hidden: true,
+  //           component: () => import('@/views/operationManage/shopManage/shopAdd2.vue'),
+  //           meta: {
+  //             title: '银联认证',
+  //             activeMenu: '/operationManage/shopManage/index'
 
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopAdd3',
-            name: '/operationManage/shopManage/shopAdd3',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopAdd3.vue'),
-            meta: {
-              title: '银联认证',
-              activeMenu: '/operationManage/shopManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/shopManage/shopAdd3',
+  //           name: '/operationManage/shopManage/shopAdd3',
+  //           hidden: true,
+  //           component: () => import('@/views/operationManage/shopManage/shopAdd3.vue'),
+  //           meta: {
+  //             title: '银联认证',
+  //             activeMenu: '/operationManage/shopManage/index'
 
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/shopManage/shopAdd4',
-            name: '/operationManage/shopManage/shopAdd4',
-            hidden: true,
-            component: () => import('@/views/operationManage/shopManage/shopAdd4.vue'),
-            meta: {
-              title: '银联认证',
-              activeMenu: '/operationManage/shopManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/shopManage/shopAdd4',
+  //           name: '/operationManage/shopManage/shopAdd4',
+  //           hidden: true,
+  //           component: () => import('@/views/operationManage/shopManage/shopAdd4.vue'),
+  //           meta: {
+  //             title: '银联认证',
+  //             activeMenu: '/operationManage/shopManage/index'
 
-            },
-          }
-        ]
-      },
-      // {
-      //   id: 0,
-      //   path: '/operationManage/shopAudit/index',
-      //   component: operationLayout,
-      //   meta: {
-      //     title: '店铺审核',
-      //     icon: ''
-      //   },
-      //   alwaysShow: true,
-      //   children: [{
-      //       id: 1,
-      //       path: '/operationManage/shopAudit/index',
-      //       name: '/operationManage/shopAudit/index',
-      //       component: () => import('@/views/operationManage/shopAudit/index.vue'),
-      //       meta: {
-      //         title: '审核列表',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/operationManage/shopAudit/audit',
-      //       name: '/operationManage/shopAudit/audit',
-      //       hidden:true,
-      //       component: () => import('@/views/operationManage/shopAudit/audit.vue'),
-      //       meta: {
-      //         title: '店铺审核',
-      //         icon: '',
-      //         activeMenu: '/operationManage/shopAudit/index'
-      //       },
-      //     },
-      //   ]
-      // },
-      // {
-      //   id: 0,
-      //   path: '/operationManage/goodsTemplate/index',
-      //   component: operationLayout,
-      //   meta: {
-      //     title: '规格模板',
-      //     icon: ''
-      //   },
-      //   alwaysShow: true,
-      //   children: [{
-      //       id: 1,
-      //       path: '/operationManage/goodsTemplate/index',
-      //       name: '/operationManage/goodsTemplate/index',
-      //       component: () => import('@/views/operationManage/goodsTemplate/index.vue'),
-      //       meta: {
-      //         title: '商品规格',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/operationManage/goodsTemplate/addGoodsTemplate',
-      //       name: '/operationManage/goodsTemplate/addGoodsTemplate',
-      //       hidden:true,
-      //       component: () => import('@/views/operationManage/goodsTemplate/addGoodsTemplate.vue'),
-      //       meta: {
-      //         title: '添加规格',
-      //         icon: '',
-      //         activeMenu: '/operationManage/goodsTemplate/index'
-      //       },
-      //     },
-      //   ]
-      // },
-      {
-        id: 0,
-        path: '/operationManage/goodsType/index',
-        component: operationLayout,
-        meta: {
-          title: '商品分类',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/goodsType/index',
-            name: '/operationManage/goodsType/index',
-            component: () => import('@/views/operationManage/goodsType/index.vue'),
-            meta: {
-              title: '分类列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/goodsType/addGoodsType',
-            name: '/operationManage/goodsType/addGoodsType',
-            hidden:true,
-            component: () => import('@/views/operationManage/goodsType/addGoodsType.vue'),
-            meta: {
-              title: '添加分类',
-              icon: '',
-              activeMenu: '/operationManage/goodsType/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/goodsManage/index',
-        component: operationLayout,
-        meta: {
-          title: '商品管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/goodsManage/index',
-            name: '/operationManage/goodsManage/index',
-            component: () => import('@/views/operationManage/goodsManage/index.vue'),
-            meta: {
-              title: '商品列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/goodsManage/goodsDetail',
-            name: '/operationManage/goodsManage/goodsDetail',
-            hidden:true,
-            component: () => import('@/views/operationManage/goodsManage/goodsDetail.vue'),
-            meta: {
-              title: '商品配置',
-              icon: '',
-              activeMenu: '/operationManage/goodsManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/goodsManage/labelList',
-            name: '/operationManage/goodsManage/labelList',
-            component: () => import('@/views/operationManage/goodsManage/labelList.vue'),
-            meta: {
-              title: '标签列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/goodsManage/productLibrary',
-            name: '/operationManage/goodsManage/productLibrary',
-            component: () => import('@/views/operationManage/goodsManage/productLibrary.vue'),
-            meta: {
-              title: '产品库',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/goodsManage/homeGoodsSet',
-            name: '/operationManage/goodsManage/homeGoodsSet',
-            component: () => import('@/views/operationManage/goodsManage/homeGoodsSet.vue'),
-            meta: {
-              title: '首页设置',
-              icon: ''
-            },
-          },
-        ]
-      },
-      // {
-      //   id: 0,
-      //   path: '/operationManage/goodsAudit/index',
-      //   component: operationLayout,
-      //   meta: {
-      //     title: '商品审核',
-      //     icon: ''
-      //   },
-      //   alwaysShow: true,
-      //   children: [{
-      //       id: 1,
-      //       path: '/operationManage/goodsAudit/index',
-      //       name: '/operationManage/goodsAudit/index',
-      //       component: () => import('@/views/operationManage/goodsAudit/index.vue'),
-      //       meta: {
-      //         title: '审核列表',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/operationManage/goodsAudit/auditGoods',
-      //       name: '/operationManage/goodsAudit/auditGoods',
-      //       hidden:true,
-      //       component: () => import('@/views/operationManage/goodsAudit/auditGoods.vue'),
-      //       meta: {
-      //         title: '商品审核',
-      //         icon: '',
-      //         activeMenu: '/operationManage/goodsAudit/index'
-      //       },
-      //     },
-      //     // {
-      //     //   id: 1,
-      //     //   path: '/operationManage/goodsAudit/auditDetail',
-      //     //   name: '/operationManage/goodsAudit/auditDetail',
-      //     //   component: () => import('@/views/operationManage/goodsAudit/auditDetail.vue'),
-      //     //   meta: {
-      //     //     title: '审核详情',
-      //     //     icon: ''
-      //     //   },
-      //     // },
-      //   ]
-      // },
-      {
-        id: 0,
-        path: '/operationManage/orderManage/index',
-        component: operationLayout,
-        meta: {
-          title: '订单管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-          id: 1,
-          path: '/operationManage/orderManage/index',
-          name: '/operationManage/orderManage/index',
-          component: () => import('@/views/operationManage/orderManage/index.vue'),
-          meta: {
-            title: '支付订单',
-            icon: ''
-          },
-        },
-        {
-          id: 1,
-          path: '/operationManage/orderManage/payDetail',
-          name: '/operationManage/orderManage/payDetail',
-          hidden:true,
-          component: () => import('@/views/operationManage/orderManage/payDetail.vue'),
-          meta: {
-            title: '订单详情',
-            icon: '',
-            activeMenu: '/operationManage/orderManage/index'
-          },
-        },
-        {
-          id: 1,
-          path: '/operationManage/orderManage/list',
-          name: '/operationManage/orderManage/list',
-          component: () => import('@/views/operationManage/orderManage/list.vue'),
-          meta: {
-            title: '商品订单',
-            icon: ''
-          },
-        },
-        {
-          id: 1,
-          path: '/operationManage/orderManage/orderDetail',
-          name: '/operationManage/orderManage/orderDetail',
-          hidden:true,
-          component: () => import('@/views/operationManage/orderManage/orderDetail.vue'),
-          meta: {
-            title: '订单详情',
-            icon: '',
-            activeMenu: '/operationManage/orderManage/list'
-          },
-        },
+  //           },
+  //         }
+  //       ]
+  //     },
+     
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/goodsType/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '商品分类',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/goodsType/index',
+  //           name: '/operationManage/goodsType/index',
+  //           component: () => import('@/views/operationManage/goodsType/index.vue'),
+  //           meta: {
+  //             title: '分类列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/goodsType/addGoodsType',
+  //           name: '/operationManage/goodsType/addGoodsType',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/goodsType/addGoodsType.vue'),
+  //           meta: {
+  //             title: '添加分类',
+  //             icon: '',
+  //             activeMenu: '/operationManage/goodsType/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/goodsManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '商品管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/goodsManage/index',
+  //           name: '/operationManage/goodsManage/index',
+  //           component: () => import('@/views/operationManage/goodsManage/index.vue'),
+  //           meta: {
+  //             title: '商品列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/goodsManage/goodsDetail',
+  //           name: '/operationManage/goodsManage/goodsDetail',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/goodsManage/goodsDetail.vue'),
+  //           meta: {
+  //             title: '商品配置',
+  //             icon: '',
+  //             activeMenu: '/operationManage/goodsManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/goodsManage/labelList',
+  //           name: '/operationManage/goodsManage/labelList',
+  //           component: () => import('@/views/operationManage/goodsManage/labelList.vue'),
+  //           meta: {
+  //             title: '标签列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/goodsManage/productLibrary',
+  //           name: '/operationManage/goodsManage/productLibrary',
+  //           component: () => import('@/views/operationManage/goodsManage/productLibrary.vue'),
+  //           meta: {
+  //             title: '产品库',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/goodsManage/homeGoodsSet',
+  //           name: '/operationManage/goodsManage/homeGoodsSet',
+  //           component: () => import('@/views/operationManage/goodsManage/homeGoodsSet.vue'),
+  //           meta: {
+  //             title: '首页设置',
+  //             icon: ''
+  //           },
+  //         },
+  //       ]
+  //     },
+   
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/orderManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '订单管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //         id: 1,
+  //         path: '/operationManage/orderManage/index',
+  //         name: '/operationManage/orderManage/index',
+  //         component: () => import('@/views/operationManage/orderManage/index.vue'),
+  //         meta: {
+  //           title: '支付订单',
+  //           icon: ''
+  //         },
+  //       },
+  //       {
+  //         id: 1,
+  //         path: '/operationManage/orderManage/payDetail',
+  //         name: '/operationManage/orderManage/payDetail',
+  //         hidden:true,
+  //         component: () => import('@/views/operationManage/orderManage/payDetail.vue'),
+  //         meta: {
+  //           title: '订单详情',
+  //           icon: '',
+  //           activeMenu: '/operationManage/orderManage/index'
+  //         },
+  //       },
+  //       {
+  //         id: 1,
+  //         path: '/operationManage/orderManage/list',
+  //         name: '/operationManage/orderManage/list',
+  //         component: () => import('@/views/operationManage/orderManage/list.vue'),
+  //         meta: {
+  //           title: '商品订单',
+  //           icon: ''
+  //         },
+  //       },
+  //       {
+  //         id: 1,
+  //         path: '/operationManage/orderManage/orderDetail',
+  //         name: '/operationManage/orderManage/orderDetail',
+  //         hidden:true,
+  //         component: () => import('@/views/operationManage/orderManage/orderDetail.vue'),
+  //         meta: {
+  //           title: '订单详情',
+  //           icon: '',
+  //           activeMenu: '/operationManage/orderManage/list'
+  //         },
+  //       },
 
-       ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/marketingManage/index',
-        component: operationLayout,
-        meta: {
-          title: '营销管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-          id: 1,
-          path: '/operationManage/marketingManage/index',
-          name: '/operationManage/marketingManage/index',
-          component: () => import('@/views/operationManage/marketingManage/index.vue'),
-          meta: {
-            title: '小桔活动',
-            icon: ''
-          },
-        },
-        {
-          id: 0,
-          path: '/operationManage/marketingManage/invitePromotion/index',
-          component: operationLayout,
-          meta: {
-            title: '推广邀请规则',
-            icon: ''
-          },
-          alwaysShow: true,
-          children: [
-            {
-              id: 1,
-              path: '/operationManage/marketingManage/invitePromotion/index',
-              name: '/operationManage/marketingManage/invitePromotion/index',
-              component: () => import('@/views/operationManage/marketingManage/invitePromotion/index.vue'),
-              meta: {
-                title: '规则管理',
-                icon: ''
-              },
-            },
-            {
-              id: 1,
-              path: '/operationManage/marketingManage/invitePromotion/add',
-              name: '/operationManage/marketingManage/invitePromotion/add',
-              component: () => import('@/views/operationManage/marketingManage/invitePromotion/add.vue'),
-              meta: {
-                title: '规则添加',
-                icon: ''
-              },
-            }
-          ]
-        }
-      ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/comboManage/index',
-        component: operationLayout,
-        meta: {
-          title: '套餐管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/comboManage/index',
-            name: '/operationManage/comboManage/index',
-            component: () => import('@/views/operationManage/comboManage/index.vue'),
-            meta: {
-              title: '套餐列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/comboManage/logList',
-            name: '/operationManage/comboManage/logList',
-            component: () => import('@/views/operationManage/comboManage/logList.vue'),
-            meta: {
-              title: '权益记录',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/comboManage/vipActivation',
-            name: '/operationManage/comboManage/vipActivation',
-            component: () => import('@/views/operationManage/comboManage/vipActivation.vue'),
-            meta: {
-              title: '会员激活码',
-              icon: ''
-            },
-          },
-          // {
-          //   id: 1,
-          //   path: '/operationManage/comboManage/addCombo',
-          //   name: '/operationManage/comboManage/addCombo',
-          //   component: () => import('@/views/operationManage/comboManage/addCombo.vue'),
-          //   meta: {
-          //     title: '添加套餐',
-          //     icon: ''
-          //   },
-          // },
-          {
-            id: 1,
-            path: '/operationManage/comboManage/editCombo',
-            name: '/operationManage/comboManage/editCombo',
-            hidden:true,
-            component: () => import('@/views/operationManage/comboManage/editCombo.vue'),
-            meta: {
-              title: '编辑套餐',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/equitiesManage/index',
-            name: '/operationManage/equitiesManage/index',
-            component: () => import('@/views/operationManage/equitiesManage/index.vue'),
-            hidden:true,
-            meta: {
-              title: '权益列表',
-              icon: '',
-              activeMenu: '/operationManage/comboManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/equitiesManage/addEquities',
-            name: '/operationManage/equitiesManage/addEquities',
-            hidden:true,
-            component: () => import('@/views/operationManage/equitiesManage/addEquities.vue'),
-            meta: {
-              title: '添加权益',
-              icon: '',
-              activeMenu: '/operationManage/comboManage/index'
+  //      ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/marketingManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '营销管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //         id: 1,
+  //         path: '/operationManage/marketingManage/index',
+  //         name: '/operationManage/marketingManage/index',
+  //         component: () => import('@/views/operationManage/marketingManage/index.vue'),
+  //         meta: {
+  //           title: '小桔活动',
+  //           icon: ''
+  //         },
+  //       },
+  //       {
+  //         id: 0,
+  //         path: '/operationManage/marketingManage/invitePromotion/index',
+  //         component: operationLayout,
+  //         meta: {
+  //           title: '推广邀请规则',
+  //           icon: ''
+  //         },
+  //         alwaysShow: true,
+  //         children: [
+  //           {
+  //             id: 1,
+  //             path: '/operationManage/marketingManage/invitePromotion/index',
+  //             name: '/operationManage/marketingManage/invitePromotion/index',
+  //             component: () => import('@/views/operationManage/marketingManage/invitePromotion/index.vue'),
+  //             meta: {
+  //               title: '规则管理',
+  //               icon: ''
+  //             },
+  //           },
+  //           {
+  //             id: 1,
+  //             path: '/operationManage/marketingManage/invitePromotion/add',
+  //             name: '/operationManage/marketingManage/invitePromotion/add',
+  //             component: () => import('@/views/operationManage/marketingManage/invitePromotion/add.vue'),
+  //             meta: {
+  //               title: '规则添加',
+  //               icon: ''
+  //             },
+  //           }
+  //         ]
+  //       }
+  //     ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/comboManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '套餐管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/comboManage/index',
+  //           name: '/operationManage/comboManage/index',
+  //           component: () => import('@/views/operationManage/comboManage/index.vue'),
+  //           meta: {
+  //             title: '套餐列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/comboManage/logList',
+  //           name: '/operationManage/comboManage/logList',
+  //           component: () => import('@/views/operationManage/comboManage/logList.vue'),
+  //           meta: {
+  //             title: '权益记录',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/comboManage/vipActivation',
+  //           name: '/operationManage/comboManage/vipActivation',
+  //           component: () => import('@/views/operationManage/comboManage/vipActivation.vue'),
+  //           meta: {
+  //             title: '会员激活码',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/comboManage/editCombo',
+  //           name: '/operationManage/comboManage/editCombo',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/comboManage/editCombo.vue'),
+  //           meta: {
+  //             title: '编辑套餐',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/equitiesManage/index',
+  //           name: '/operationManage/equitiesManage/index',
+  //           component: () => import('@/views/operationManage/equitiesManage/index.vue'),
+  //           hidden:true,
+  //           meta: {
+  //             title: '权益列表',
+  //             icon: '',
+  //             activeMenu: '/operationManage/comboManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/equitiesManage/addEquities',
+  //           name: '/operationManage/equitiesManage/addEquities',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/equitiesManage/addEquities.vue'),
+  //           meta: {
+  //             title: '添加权益',
+  //             icon: '',
+  //             activeMenu: '/operationManage/comboManage/index'
 
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/comboManage/checkoutCode',
-            name: '/operationManage/comboManage/checkoutCode',
-            component: () => import('@/views/operationManage/comboManage/checkoutCode.vue'),
-            hidden:true,
-            meta: {
-              title: '查看激活码',
-              icon: '',
-              activeMenu: '/operationManage/comboManage/vipActivation'
-            },
-          },
-        ]
-      },
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/comboManage/checkoutCode',
+  //           name: '/operationManage/comboManage/checkoutCode',
+  //           component: () => import('@/views/operationManage/comboManage/checkoutCode.vue'),
+  //           hidden:true,
+  //           meta: {
+  //             title: '查看激活码',
+  //             icon: '',
+  //             activeMenu: '/operationManage/comboManage/vipActivation'
+  //           },
+  //         },
+  //       ]
+  //     },
 
-      {
-        id: 0,
-        path: '/operationManage/financeManage/index',
-        component: operationLayout,
-        meta: {
-          title: '财务管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-          id: 1,
-          path: '/operationManage/financeManage/index',
-          name: '/operationManage/financeManage/index',
-          component: () => import('@/views/operationManage/financeManage/index.vue'),
-          meta: {
-            title: '分账列表',
-            icon: ''
-          },
-        },
-        {
-          id: 1,
-          path: '/operationManage/financeManage/withdraw',
-          name: '/operationManage/financeManage/withdraw',
-          component: () => import('@/views/operationManage/financeManage/withdraw.vue'),
-          meta: {
-            title: '账户余额',
-            icon: ''
-          },
-        },
-      ]
-      },
-      // {
-      //   id: 0,
-      //   path: '/operationManage/ticketManage/index',
-      //   component: operationLayout,
-      //   meta: {
-      //     title: '核销管理',
-      //     icon: ''
-      //   },
-      //   alwaysShow: true,
-      //   children: [{
-      //     id: 1,
-      //     path: '/operationManage/ticketManage/index',
-      //     name: '/operationManage/ticketManage/index',
-      //     component: () => import('@/views/operationManage/ticketManage/index.vue'),
-      //     meta: {
-      //       title: '核销列表',
-      //       icon: ''
-      //     },
-      //   }, ]
-      // },
-      {
-        id: 0,
-        path: '/operationManage/appMenuManage/index',
-        component: operationLayout,
-        meta: {
-          title: '小程序菜单',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/appMenuManage/index',
-            name: '/operationManage/appMenuManage/index',
-            component: () => import('@/views/operationManage/appMenuManage/index.vue'),
-            meta: {
-              title: '菜单列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/appMenuManage/addMenu',
-            name: '/operationManage/appMenuManage/addMenu',
-            hidden:true,
-            component: () => import('@/views/operationManage/appMenuManage/addMenu.vue'),
-            meta: {
-              title: '添加菜单',
-              icon: '',
-              activeMenu: '/operationManage/appMenuManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/appMenuManage/editMenu',
-            name: '/operationManage/appMenuManage/editMenu',
-            hidden:true,
-            component: () => import('@/views/operationManage/appMenuManage/editMenu.vue'),
-            meta: {
-              title: '编辑菜单',
-              icon: '',
-              activeMenu: '/operationManage/appMenuManage/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/bannerManage/index',
-        component: operationLayout,
-        meta: {
-          title: 'banner管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/bannerManage/index',
-            name: '/operationManage/bannerManage/index',
-            component: () => import('@/views/operationManage/bannerManage/index.vue'),
-            meta: {
-              title: 'banner列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/bannerManage/addBanner',
-            name: '/operationManage/bannerManage/addBanner',
-            hidden:true,
-            component: () => import('@/views/operationManage/bannerManage/addBanner.vue'),
-            meta: {
-              title: '添加banner',
-              icon: '',
-              activeMenu: '/operationManage/bannerManage/index'
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/financeManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '财务管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //         id: 1,
+  //         path: '/operationManage/financeManage/index',
+  //         name: '/operationManage/financeManage/index',
+  //         component: () => import('@/views/operationManage/financeManage/index.vue'),
+  //         meta: {
+  //           title: '分账列表',
+  //           icon: ''
+  //         },
+  //       },
+  //       {
+  //         id: 1,
+  //         path: '/operationManage/financeManage/withdraw',
+  //         name: '/operationManage/financeManage/withdraw',
+  //         component: () => import('@/views/operationManage/financeManage/withdraw.vue'),
+  //         meta: {
+  //           title: '账户余额',
+  //           icon: ''
+  //         },
+  //       },
+  //     ]
+  //     },
+  
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/appMenuManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '小程序菜单',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/appMenuManage/index',
+  //           name: '/operationManage/appMenuManage/index',
+  //           component: () => import('@/views/operationManage/appMenuManage/index.vue'),
+  //           meta: {
+  //             title: '菜单列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/appMenuManage/addMenu',
+  //           name: '/operationManage/appMenuManage/addMenu',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/appMenuManage/addMenu.vue'),
+  //           meta: {
+  //             title: '添加菜单',
+  //             icon: '',
+  //             activeMenu: '/operationManage/appMenuManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/appMenuManage/editMenu',
+  //           name: '/operationManage/appMenuManage/editMenu',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/appMenuManage/editMenu.vue'),
+  //           meta: {
+  //             title: '编辑菜单',
+  //             icon: '',
+  //             activeMenu: '/operationManage/appMenuManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/bannerManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: 'banner管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/bannerManage/index',
+  //           name: '/operationManage/bannerManage/index',
+  //           component: () => import('@/views/operationManage/bannerManage/index.vue'),
+  //           meta: {
+  //             title: 'banner列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/bannerManage/addBanner',
+  //           name: '/operationManage/bannerManage/addBanner',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/bannerManage/addBanner.vue'),
+  //           meta: {
+  //             title: '添加banner',
+  //             icon: '',
+  //             activeMenu: '/operationManage/bannerManage/index'
 
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/bannerManage/editBanner',
-            name: '/operationManage/bannerManage/editBanner',
-            hidden:true,
-            component: () => import('@/views/operationManage/bannerManage/editBanner.vue'),
-            meta: {
-              title: '编辑banner',
-              icon: '',
-              activeMenu: '/operationManage/bannerManage/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/advertisingManage/index',
-        component: operationLayout,
-        meta: {
-          title: '广告位管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/advertisingManage/index',
-            name: '/operationManage/advertisingManage/index',
-            component: () => import('@/views/operationManage/advertisingManage/index.vue'),
-            meta: {
-              title: '广告位列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/advertisingManage/addAdv',
-            name: '/operationManage/advertisingManage/addAdv',
-            hidden:true,
-            component: () => import('@/views/operationManage/advertisingManage/addAdv.vue'),
-            meta: {
-              title: '添加广告位',
-              icon: '',
-              activeMenu: '/operationManage/advertisingManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/bannerManage/editBanner',
+  //           name: '/operationManage/bannerManage/editBanner',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/bannerManage/editBanner.vue'),
+  //           meta: {
+  //             title: '编辑banner',
+  //             icon: '',
+  //             activeMenu: '/operationManage/bannerManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/advertisingManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '广告位管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/advertisingManage/index',
+  //           name: '/operationManage/advertisingManage/index',
+  //           component: () => import('@/views/operationManage/advertisingManage/index.vue'),
+  //           meta: {
+  //             title: '广告位列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/advertisingManage/addAdv',
+  //           name: '/operationManage/advertisingManage/addAdv',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/advertisingManage/addAdv.vue'),
+  //           meta: {
+  //             title: '添加广告位',
+  //             icon: '',
+  //             activeMenu: '/operationManage/advertisingManage/index'
 
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/advertisingManage/editAdv',
-            name: '/operationManage/advertisingManage/editAdv',
-            hidden:true,
-            component: () => import('@/views/operationManage/advertisingManage/editAdv.vue'),
-            meta: {
-              title: '编辑广告位',
-              icon: '',
-              activeMenu: '/operationManage/advertisingManage/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/couponManage/index',
-        component: operationLayout,
-        meta: {
-          title: '优惠券管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/couponManage/index',
-            name: '/operationManage/couponManage/index',
-            component: () => import('@/views/operationManage/couponManage/index.vue'),
-            meta: {
-              title: '优惠券列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/couponManage/fullDiscountCoupon',
-            name: '/operationManage/couponManage/fullDiscountCoupon',
-            component: () => import('@/views/operationManage/couponManage/fullDiscountCoupon.vue'),
-            hidden:true,
-            meta: {
-              title: '满减优惠券',
-              icon: '',
-              activeMenu: '/operationManage/couponManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/couponManage/discountCoupon',
-            name: '/operationManage/couponManage/discountCoupon',
-            component: () => import('@/views/operationManage/couponManage/discountCoupon.vue'),
-            hidden:true,
-            meta: {
-              title: '折扣优惠券',
-              icon: '',
-              activeMenu: '/operationManage/couponManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/couponManage/refuelCoupon',
-            name: '/operationManage/couponManage/refuelCoupon',
-            component: () => import('@/views/operationManage/couponManage/refuelCoupon.vue'),
-            hidden:true,
-            meta: {
-              title: '加油优惠券',
-              icon: '',
-              activeMenu: '/operationManage/couponManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/advertisingManage/editAdv',
+  //           name: '/operationManage/advertisingManage/editAdv',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/advertisingManage/editAdv.vue'),
+  //           meta: {
+  //             title: '编辑广告位',
+  //             icon: '',
+  //             activeMenu: '/operationManage/advertisingManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/couponManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '优惠券管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/couponManage/index',
+  //           name: '/operationManage/couponManage/index',
+  //           component: () => import('@/views/operationManage/couponManage/index.vue'),
+  //           meta: {
+  //             title: '优惠券列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/couponManage/fullDiscountCoupon',
+  //           name: '/operationManage/couponManage/fullDiscountCoupon',
+  //           component: () => import('@/views/operationManage/couponManage/fullDiscountCoupon.vue'),
+  //           hidden:true,
+  //           meta: {
+  //             title: '满减优惠券',
+  //             icon: '',
+  //             activeMenu: '/operationManage/couponManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/couponManage/discountCoupon',
+  //           name: '/operationManage/couponManage/discountCoupon',
+  //           component: () => import('@/views/operationManage/couponManage/discountCoupon.vue'),
+  //           hidden:true,
+  //           meta: {
+  //             title: '折扣优惠券',
+  //             icon: '',
+  //             activeMenu: '/operationManage/couponManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/couponManage/refuelCoupon',
+  //           name: '/operationManage/couponManage/refuelCoupon',
+  //           component: () => import('@/views/operationManage/couponManage/refuelCoupon.vue'),
+  //           hidden:true,
+  //           meta: {
+  //             title: '加油优惠券',
+  //             icon: '',
+  //             activeMenu: '/operationManage/couponManage/index'
 
-            },
-          },
+  //           },
+  //         },
 
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/luckyDrawManage/index',
-        component: operationLayout,
-        meta: {
-          title: '抽奖管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/luckyDrawManage/index',
-            name: '/operationManage/luckyDrawManage/index',
-            component: () => import('@/views/operationManage/luckyDrawManage/index.vue'),
-            meta: {
-              title: '抽奖列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/luckyDrawManage/addLuckyDraw',
-            name: '/operationManage/luckyDrawManage/addLuckyDraw',
-            hidden:true,
-            component: () => import('@/views/operationManage/luckyDrawManage/addLuckyDraw.vue'),
-            meta: {
-              title: '添加抽奖',
-              icon: '',
-              activeMenu: '/operationManage/luckyDrawManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/luckyDrawManage/dataList',
-            name: '/operationManage/luckyDrawManage/dataList',
-            hidden:true,
-            component: () => import('@/views/operationManage/luckyDrawManage/dataList.vue'),
-            meta: {
-              title: '中奖数据',
-              icon: '',
-              activeMenu: '/operationManage/luckyDrawManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/luckyDrawManage/luckyDrawRule',
-            name: '/operationManage/luckyDrawManage/luckyDrawRule',
-            hidden:true,
-            component: () => import('@/views/operationManage/luckyDrawManage/luckyDrawRule.vue'),
-            meta: {
-              title: '活动规则',
-              icon: '',
-              activeMenu: '/operationManage/luckyDrawManage/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/activityManage/index',
-        component: operationLayout,
-        meta: {
-          title: '活动管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/activityManage/index',
-            name: '/operationManage/activityManage/index',
-            component: () => import('@/views/operationManage/activityManage/index.vue'),
-            meta: {
-              title: '活动列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/activityManage/addActivity',
-            name: '/operationManage/activityManage/addActivity',
-            hidden:true,
-            component: () => import('@/views/operationManage/activityManage/addActivity.vue'),
-            meta: {
-              title: '添加活动',
-              icon: '',
-              activeMenu: '/operationManage/activityManage/index'
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/activityManage/dataList',
-            name: '/operationManage/activityManage/dataList',
-            hidden:true,
-            component: () => import('@/views/operationManage/activityManage/dataList.vue'),
-            meta: {
-              title: '报名详情',
-              icon: '',
-              activeMenu: '/operationManage/activityManage/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/operationManage/templateManage/index',
-        component: operationLayout,
-        meta: {
-          title: '数据采集模板',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [{
-            id: 1,
-            path: '/operationManage/templateManage/index',
-            name: '/operationManage/templateManage/index',
-            component: () => import('@/views/operationManage/templateManage/index.vue'),
-            meta: {
-              title: '模板列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/operationManage/templateManage/addTemplate',
-            name: '/operationManage/templateManage/addTemplate',
-            hidden:true,
-            component: () => import('@/views/operationManage/templateManage/addTemplate.vue'),
-            meta: {
-              title: '添加模板',
-              icon: '',
-              activeMenu: '/operationManage/templateManage/index'
-            },
-          },
-        ]
-      },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/luckyDrawManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '抽奖管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/luckyDrawManage/index',
+  //           name: '/operationManage/luckyDrawManage/index',
+  //           component: () => import('@/views/operationManage/luckyDrawManage/index.vue'),
+  //           meta: {
+  //             title: '抽奖列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/luckyDrawManage/addLuckyDraw',
+  //           name: '/operationManage/luckyDrawManage/addLuckyDraw',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/luckyDrawManage/addLuckyDraw.vue'),
+  //           meta: {
+  //             title: '添加抽奖',
+  //             icon: '',
+  //             activeMenu: '/operationManage/luckyDrawManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/luckyDrawManage/dataList',
+  //           name: '/operationManage/luckyDrawManage/dataList',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/luckyDrawManage/dataList.vue'),
+  //           meta: {
+  //             title: '中奖数据',
+  //             icon: '',
+  //             activeMenu: '/operationManage/luckyDrawManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/luckyDrawManage/luckyDrawRule',
+  //           name: '/operationManage/luckyDrawManage/luckyDrawRule',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/luckyDrawManage/luckyDrawRule.vue'),
+  //           meta: {
+  //             title: '活动规则',
+  //             icon: '',
+  //             activeMenu: '/operationManage/luckyDrawManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/activityManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '活动管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/activityManage/index',
+  //           name: '/operationManage/activityManage/index',
+  //           component: () => import('@/views/operationManage/activityManage/index.vue'),
+  //           meta: {
+  //             title: '活动列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/activityManage/addActivity',
+  //           name: '/operationManage/activityManage/addActivity',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/activityManage/addActivity.vue'),
+  //           meta: {
+  //             title: '添加活动',
+  //             icon: '',
+  //             activeMenu: '/operationManage/activityManage/index'
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/activityManage/dataList',
+  //           name: '/operationManage/activityManage/dataList',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/activityManage/dataList.vue'),
+  //           meta: {
+  //             title: '报名详情',
+  //             icon: '',
+  //             activeMenu: '/operationManage/activityManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/operationManage/templateManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '数据采集模板',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [{
+  //           id: 1,
+  //           path: '/operationManage/templateManage/index',
+  //           name: '/operationManage/templateManage/index',
+  //           component: () => import('@/views/operationManage/templateManage/index.vue'),
+  //           meta: {
+  //             title: '模板列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/operationManage/templateManage/addTemplate',
+  //           name: '/operationManage/templateManage/addTemplate',
+  //           hidden:true,
+  //           component: () => import('@/views/operationManage/templateManage/addTemplate.vue'),
+  //           meta: {
+  //             title: '添加模板',
+  //             icon: '',
+  //             activeMenu: '/operationManage/templateManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //   ]
+  // },
+  // {
+  //   id: 0,
+  //   path: '/studyManage/index',
+  //   component: Layout,
+  //   meta: {
+  //     title: '研学管理',
+  //     icon: 'el-icon-s-shop'
+  //   },
+  //   alwaysShow: true,
+  //   children: [
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/bannerManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: 'banner管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/bannerManage/index',
+  //           name: '/studyManage/bannerManage/index',
+  //           component: () => import('@/views/studyManage/bannerManage/index.vue'),
+  //           meta: {
+  //             title: 'banner列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/bannerManage/addBanner',
+  //           name: '/studyManage/bannerManage/addBanner',
+  //           hidden:true,
+  //           component: () => import('@/views/studyManage/bannerManage/addBanner.vue'),
+  //           meta: {
+  //             title: '添加banner',
+  //             icon: '',
+  //             activeMenu: '/studyManage/bannerManage/index'
+  //           },
+  //         }
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/menuManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '栏目管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/menuManage/index',
+  //           name: '/studyManage/menuManage/index',
+  //           component: () => import('@/views/studyManage/menuManage/index.vue'),
+  //           meta: {
+  //             title: '栏目列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/menuManage/addMenu',
+  //           name: '/studyManage/menuManage/addMenu',
+  //           hidden:true,
+  //           component: () => import('@/views/studyManage/menuManage/addMenu.vue'),
+  //           meta: {
+  //             title: '添加栏目',
+  //             icon: '',
+  //             activeMenu: '/studyManage/menuManage/index'
+  //           },
+  //         }
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/courseManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '课程管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/courseManage/index',
+  //           name: '/studyManage/courseManage/index',
+  //           component: () => import('@/views/studyManage/courseManage/index.vue'),
+  //           meta: {
+  //             title: '课程列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/courseManage/addCourse',
+  //           name: '/studyManage/courseManage/addCourse',
+  //           hidden:true,
+  //           component: () => import('@/views/studyManage/courseManage/addCourse.vue'),
+  //           meta: {
+  //             title: '添加课程',
+  //             icon: '',
+  //             activeMenu: '/studyManage/courseManage/index'
+  //           },
+  //         }
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/tabManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '社区标签',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/tabManage/index',
+  //           name: '/studyManage/tabManage/index',
+  //           component: () => import('@/views/studyManage/tabManage/index.vue'),
+  //           meta: {
+  //             title: '标签列表',
+  //             icon: ''
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/communityManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '社区管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/communityManage/index',
+  //           name: '/studyManage/communityManage/index',
+  //           component: () => import('@/views/studyManage/communityManage/index.vue'),
+  //           meta: {
+  //             title: '文章列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/communityManage/addArticle',
+  //           name: '/studyManage/communityManage/addArticle',
+  //           hidden:true,
+  //           component: () => import('@/views/studyManage/communityManage/addArticle.vue'),
+  //           meta: {
+  //             title: '添加文章',
+  //             icon: '',
+  //             activeMenu: '/studyManage/communityManage/index'
+  //           },
+  //         }
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/questionBankManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '试题管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/questionBankManage/index',
+  //           name: '/studyManage/questionBankManage/index',
+  //           component: () => import('@/views/studyManage/questionBankManage/index.vue'),
+  //           meta: {
+  //             title: '题库列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/questionBankManage/editQuestions',
+  //           name: '/studyManage/questionBankManage/editQuestions',
+  //           hidden:true,
+  //           component: () => import('@/views/studyManage/questionBankManage/editQuestions.vue'),
+  //           meta: {
+  //             title: '编辑试卷',
+  //             icon: '',
+  //             activeMenu: '/studyManage/questionBankManage/index'
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/studyManage/subscribeManage/index',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '预约管理',
+  //         icon: ''
+  //       },
+  //       alwaysShow: true,
+  //       children: [
+  //         {
+  //           id: 1,
+  //           path: '/studyManage/subscribeManage/index',
+  //           name: '/studyManage/subscribeManage/index',
+  //           component: () => import('@/views/studyManage/subscribeManage/index.vue'),
+  //           meta: {
+  //             title: '预约列表',
+  //             icon: ''
+  //           },
+  //         },
+  //       ]
+  //     },
+  //   ]
+  //   },
 
-      // {
-      //   id: 0,
-      //   path: '/operationManage/noticeManage/index',
-      //   component: operationLayout,
-      //   meta: {
-      //     title: '通知管理',
-      //     icon: ''
-      //   },
-      //   alwaysShow: true,
-      //   children: [{
-      //       id: 1,
-      //       path: '/operationManage/noticeManage/index',
-      //       name: '/operationManage/noticeManage/index',
-      //       component: () => import('@/views/operationManage/noticeManage/index.vue'),
-      //       meta: {
-      //         title: '通知列表',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/operationManage/noticeManage/addBanner',
-      //       name: '/operationManage/noticeManage/addBanner',
-      //       component: () => import('@/views/operationManage/noticeManage/addNotice.vue'),
-      //       meta: {
-      //         title: '添加通知',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/operationManage/noticeManage/editBanner',
-      //       name: '/operationManage/noticeManage/editBanner',
-      //       component: () => import('@/views/operationManage/noticeManage/editNotice.vue'),
-      //       meta: {
-      //         title: '编辑通知',
-      //         icon: ''
-      //       },
-      //     },
-      //   ]
-      // },
-    ]
-  },
-  {
-    id: 0,
-    path: '/studyManage/index',
-    component: Layout,
-    meta: {
-      title: '研学管理',
-      icon: 'el-icon-s-shop'
-    },
-    alwaysShow: true,
-    children: [
-      {
-        id: 0,
-        path: '/studyManage/bannerManage/index',
-        component: operationLayout,
-        meta: {
-          title: 'banner管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/bannerManage/index',
-            name: '/studyManage/bannerManage/index',
-            component: () => import('@/views/studyManage/bannerManage/index.vue'),
-            meta: {
-              title: 'banner列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/studyManage/bannerManage/addBanner',
-            name: '/studyManage/bannerManage/addBanner',
-            hidden:true,
-            component: () => import('@/views/studyManage/bannerManage/addBanner.vue'),
-            meta: {
-              title: '添加banner',
-              icon: '',
-              activeMenu: '/studyManage/bannerManage/index'
-            },
-          }
-        ]
-      },
-      {
-        id: 0,
-        path: '/studyManage/menuManage/index',
-        component: operationLayout,
-        meta: {
-          title: '栏目管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/menuManage/index',
-            name: '/studyManage/menuManage/index',
-            component: () => import('@/views/studyManage/menuManage/index.vue'),
-            meta: {
-              title: '栏目列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/studyManage/menuManage/addMenu',
-            name: '/studyManage/menuManage/addMenu',
-            hidden:true,
-            component: () => import('@/views/studyManage/menuManage/addMenu.vue'),
-            meta: {
-              title: '添加栏目',
-              icon: '',
-              activeMenu: '/studyManage/menuManage/index'
-            },
-          }
-        ]
-      },
-      {
-        id: 0,
-        path: '/studyManage/courseManage/index',
-        component: operationLayout,
-        meta: {
-          title: '课程管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/courseManage/index',
-            name: '/studyManage/courseManage/index',
-            component: () => import('@/views/studyManage/courseManage/index.vue'),
-            meta: {
-              title: '课程列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/studyManage/courseManage/addCourse',
-            name: '/studyManage/courseManage/addCourse',
-            hidden:true,
-            component: () => import('@/views/studyManage/courseManage/addCourse.vue'),
-            meta: {
-              title: '添加课程',
-              icon: '',
-              activeMenu: '/studyManage/courseManage/index'
-            },
-          }
-        ]
-      },
-      {
-        id: 0,
-        path: '/studyManage/tabManage/index',
-        component: operationLayout,
-        meta: {
-          title: '社区标签',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/tabManage/index',
-            name: '/studyManage/tabManage/index',
-            component: () => import('@/views/studyManage/tabManage/index.vue'),
-            meta: {
-              title: '标签列表',
-              icon: ''
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/studyManage/communityManage/index',
-        component: operationLayout,
-        meta: {
-          title: '社区管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/communityManage/index',
-            name: '/studyManage/communityManage/index',
-            component: () => import('@/views/studyManage/communityManage/index.vue'),
-            meta: {
-              title: '文章列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/studyManage/communityManage/addArticle',
-            name: '/studyManage/communityManage/addArticle',
-            hidden:true,
-            component: () => import('@/views/studyManage/communityManage/addArticle.vue'),
-            meta: {
-              title: '添加文章',
-              icon: '',
-              activeMenu: '/studyManage/communityManage/index'
-            },
-          }
-        ]
-      },
-      {
-        id: 0,
-        path: '/studyManage/questionBankManage/index',
-        component: operationLayout,
-        meta: {
-          title: '试题管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/questionBankManage/index',
-            name: '/studyManage/questionBankManage/index',
-            component: () => import('@/views/studyManage/questionBankManage/index.vue'),
-            meta: {
-              title: '题库列表',
-              icon: ''
-            },
-          },
-          {
-            id: 1,
-            path: '/studyManage/questionBankManage/editQuestions',
-            name: '/studyManage/questionBankManage/editQuestions',
-            hidden:true,
-            component: () => import('@/views/studyManage/questionBankManage/editQuestions.vue'),
-            meta: {
-              title: '编辑试卷',
-              icon: '',
-              activeMenu: '/studyManage/questionBankManage/index'
-            },
-          },
-        ]
-      },
-      {
-        id: 0,
-        path: '/studyManage/subscribeManage/index',
-        component: operationLayout,
-        meta: {
-          title: '预约管理',
-          icon: ''
-        },
-        alwaysShow: true,
-        children: [
-          {
-            id: 1,
-            path: '/studyManage/subscribeManage/index',
-            name: '/studyManage/subscribeManage/index',
-            component: () => import('@/views/studyManage/subscribeManage/index.vue'),
-            meta: {
-              title: '预约列表',
-              icon: ''
-            },
-          },
-        ]
-      },
-    ]
-    },
+  //   {
+  //     id: 0,
+  //     path: '/merchantManage/index',
+  //     component: Layout,
+  //     redirect: '/merchantManage/index',
+  //     meta: {
+  //       title: '商户管理',
+  //       icon: 'el-icon-s-shop'
+  //     },
+  //     children: [{
+  //         id: 1,
+  //         path: '/merchantManage/index',
+  //         name: '/merchantManage/index',
+  //         component: () => import('@/views/merchantManage/index.vue'),
+  //         meta: {
+  //           title: '商户列表',
+  //           icon: ''
+  //         },
+  //       },
+  //       {
+  //         id: 1,
+  //         path: '/merchantManage/shopDetail',
+  //         name: '/merchantManage/shopDetail',
+  //         component: () => import('@/views/merchantManage/shopDetail.vue'),
+  //         hidden:true,
+  //         meta: {
+  //           title: '商户详情',
+  //           icon: '',
+  //           activeMenu:'/merchantManage/index'
+  //         },
+  //       },
+  //       {
+  //         id: 1,
+  //         hidden:true,
+  //         path: '/merchantManage/addUser',
+  //         name: '/merchantManage/addUser',
+  //         component: () => import('@/views/merchantManage/addUser.vue'),
+  //         meta: {
+  //           title: '添加商户',
+  //           icon: ''
+  //         },
+  //       },
+  //     ]
+  //   },
+  // // 用户管理
+  // {
+  //   id: 0,
+  //   path: '/userManage/index',
+  //   component: Layout,
+  //   meta: {
+  //     title: '用户管理',
+  //     icon: 'el-icon-s-shop'
+  //   },
+  //   alwaysShow: true,
+  //   children:[
+  //     // {
+  //     //   id: 0,
+  //     //   path: '/userManage/agentManage',
+  //     //   component: operationLayout,
+  //     //   redirect: '/userManage/agentManage',
+  //     //   meta: {
+  //     //     title: '渠道商',
+  //     //     icon: ''
+  //     //   },
+  //     //   children: [{
+  //     //       id: 1,
+  //     //       path: '/userManage/agentManage/index',
+  //     //       name: '/userManage/agentManage/index',
+  //     //       component: () => import('@/views/userManage/agentManage/index.vue'),
+  //     //       meta: {
+  //     //         title: '渠道商列表',
+  //     //         icon: ''
+  //     //       },
+  //     //     },
+  //     //     {
+  //     //       id: 1,
+  //     //       path: '/userManage/agentManage/addAgent',
+  //     //       name: '/userManage/agentManage/addAgent',
+  //     //       hidden:true,
+  //     //       component: () => import('@/views/userManage/agentManage/addAgent.vue'),
+  //     //       meta: {
+  //     //         title: '添加渠道商',
+  //     //         icon: ''
+  //     //       },
+  //     //     },
+  //     //     {
+  //     //       id: 1,
+  //     //       path: '/userManage/agentManage/editAgent',
+  //     //       name: '/userManage/agentManage/editAgent',
+  //     //       hidden:true,
+  //     //       component: () => import('@/views/userManage/agentManage/editAgent.vue'),
+  //     //       meta: {
+  //     //         title: '编辑渠道商',
+  //     //         icon: ''
+  //     //       },
+  //     //     },
+  //     //   ]
+  //     // },
+  //     {
+  //       id: 0,
+  //       path: '/userManage/memberManage',
+  //       component: operationLayout,
+  //       redirect: '/userManage/memberManage',
+  //       meta: {
+  //         title: '会员管理',
+  //         icon: ''
+  //       },
+  //       children: [{
+  //           id: 1,
+  //           path: '/userManage/memberManage/index',
+  //           name: '/userManage/memberManage/index',
+  //           component: () => import('@/views/userManage/memberManage/index.vue'),
+  //           meta: {
+  //             title: '会员列表',
+  //             icon: ''
+  //           },
+  //         },
+  //         // {
+  //         //   id: 1,
+  //         //   path: '/userManage/memberManage/memberDetail',
+  //         //   name: '/userManage/memberManage/memberDetail',
+  //         //   component: () => import('@/views/userManage/memberManage/memberDetail.vue'),
+  //         //   meta: {
+  //         //     title: '会员详情',
+  //         //     icon: ''
+  //         //   },
+  //         // },
+  //       ]
+  //     },
+  //     // {
+  //     //   id: 0,
+  //     //   path: '/userManage/userList',
+  //     //   component: operationLayout,
+  //     //   redirect: '/userManage/userList',
+  //     //   meta: {
+  //     //     title: '会员管理',
+  //     //     icon: ''
+  //     //   },
+  //     //   children: [{
+  //     //       id: 1,
+  //     //       path: '/userManage/userList/index',
+  //     //       name: '/userManage/userList/index',
+  //     //       component: () => import('@/views/userManage/userList/index.vue'),
+  //     //       meta: {
+  //     //         title: '用户列表',
+  //     //         icon: ''
+  //     //       },
+  //     //     },
+  //     //   ]
+  //     // },
+  //   ]
+  // },
 
-    {
-      id: 0,
-      path: '/merchantManage/index',
-      component: Layout,
-      redirect: '/merchantManage/index',
-      meta: {
-        title: '商户管理',
-        icon: 'el-icon-s-shop'
-      },
-      children: [{
-          id: 1,
-          path: '/merchantManage/index',
-          name: '/merchantManage/index',
-          component: () => import('@/views/merchantManage/index.vue'),
-          meta: {
-            title: '商户列表',
-            icon: ''
-          },
-        },
-        {
-          id: 1,
-          path: '/merchantManage/shopDetail',
-          name: '/merchantManage/shopDetail',
-          component: () => import('@/views/merchantManage/shopDetail.vue'),
-          hidden:true,
-          meta: {
-            title: '商户详情',
-            icon: '',
-            activeMenu:'/merchantManage/index'
-          },
-        },
-        {
-          id: 1,
-          hidden:true,
-          path: '/merchantManage/addUser',
-          name: '/merchantManage/addUser',
-          component: () => import('@/views/merchantManage/addUser.vue'),
-          meta: {
-            title: '添加商户',
-            icon: ''
-          },
-        },
-      ]
-    },
-  // 用户管理
-  {
-    id: 0,
-    path: '/userManage/index',
-    component: Layout,
-    meta: {
-      title: '用户管理',
-      icon: 'el-icon-s-shop'
-    },
-    alwaysShow: true,
-    children:[
-      // {
-      //   id: 0,
-      //   path: '/userManage/agentManage',
-      //   component: operationLayout,
-      //   redirect: '/userManage/agentManage',
-      //   meta: {
-      //     title: '渠道商',
-      //     icon: ''
-      //   },
-      //   children: [{
-      //       id: 1,
-      //       path: '/userManage/agentManage/index',
-      //       name: '/userManage/agentManage/index',
-      //       component: () => import('@/views/userManage/agentManage/index.vue'),
-      //       meta: {
-      //         title: '渠道商列表',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/userManage/agentManage/addAgent',
-      //       name: '/userManage/agentManage/addAgent',
-      //       hidden:true,
-      //       component: () => import('@/views/userManage/agentManage/addAgent.vue'),
-      //       meta: {
-      //         title: '添加渠道商',
-      //         icon: ''
-      //       },
-      //     },
-      //     {
-      //       id: 1,
-      //       path: '/userManage/agentManage/editAgent',
-      //       name: '/userManage/agentManage/editAgent',
-      //       hidden:true,
-      //       component: () => import('@/views/userManage/agentManage/editAgent.vue'),
-      //       meta: {
-      //         title: '编辑渠道商',
-      //         icon: ''
-      //       },
-      //     },
-      //   ]
-      // },
-      {
-        id: 0,
-        path: '/userManage/memberManage',
-        component: operationLayout,
-        redirect: '/userManage/memberManage',
-        meta: {
-          title: '会员管理',
-          icon: ''
-        },
-        children: [{
-            id: 1,
-            path: '/userManage/memberManage/index',
-            name: '/userManage/memberManage/index',
-            component: () => import('@/views/userManage/memberManage/index.vue'),
-            meta: {
-              title: '会员列表',
-              icon: ''
-            },
-          },
-          // {
-          //   id: 1,
-          //   path: '/userManage/memberManage/memberDetail',
-          //   name: '/userManage/memberManage/memberDetail',
-          //   component: () => import('@/views/userManage/memberManage/memberDetail.vue'),
-          //   meta: {
-          //     title: '会员详情',
-          //     icon: ''
-          //   },
-          // },
-        ]
-      },
-      // {
-      //   id: 0,
-      //   path: '/userManage/userList',
-      //   component: operationLayout,
-      //   redirect: '/userManage/userList',
-      //   meta: {
-      //     title: '会员管理',
-      //     icon: ''
-      //   },
-      //   children: [{
-      //       id: 1,
-      //       path: '/userManage/userList/index',
-      //       name: '/userManage/userList/index',
-      //       component: () => import('@/views/userManage/userList/index.vue'),
-      //       meta: {
-      //         title: '用户列表',
-      //         icon: ''
-      //       },
-      //     },
-      //   ]
-      // },
-    ]
-  },
+  // {
+  //   id: 0,
+  //   path: '/setting/index',
+  //   component: Layout,
+  //   meta: {
+  //     title: '系统设置',
+  //     icon: 'el-icon-s-shop'
+  //   },
+  //   alwaysShow: true,
+  //   children:[
+  //     {
+  //             id: 0,
+  //             path: '/setting/rulesManage',
+  //             component: operationLayout,
+  //             meta: {
+  //               title: '分账规则',
+  //               icon: ''
+  //             },
+  //             children: [{
+  //                 id: 1,
+  //                 path: '/setting/rulesManage',
+  //                 name: '/setting/rulesManage',
+  //                 component: () => import('@/views//setting/rulesManage/index.vue'),
+  //                 meta: {
+  //                   title: '规则列表',
+  //                   icon: ''
+  //                 },
+  //               },
+  //             ]
+  //     },
+  //     {
+  //       id: 1,
+  //       path: '/setting/synchronization',
+  //       name: '/setting/synchronization',
+  //       component: () => import('@/views/setting/synchronization.vue'),
+  //       meta: {
+  //         title: '同步管理',
+  //         icon: ''
+  //       },
+  //     },
+  //     {
+  //       id: 1,
+  //       path: '/setting/cityList',
+  //       name: '/setting/cityList',
+  //       component: () => import('@/views/setting/cityList.vue'),
+  //       meta: {
+  //         title: '城市列表',
+  //         icon: ''
+  //       },
+  //     },
+  //     // {
+  //     //   id: 0,
+  //     //   path: '/setting/commissionManage',
+  //     //   component: operationLayout,
+  //     //   meta: {
+  //     //     title: '渠道佣金',
+  //     //     icon: ''
+  //     //   },
+  //     //   children: [{
+  //     //       id: 1,
+  //     //       path: '/setting/commissionManage',
+  //     //       name: '/setting/commissionManage',
+  //     //       component: () => import('@/views//setting/commissionManage/index.vue'),
+  //     //       meta: {
+  //     //         title: '渠道佣金',
+  //     //         icon: ''
+  //     //       },
+  //     //     },
+  //     //   ]
+  //     // },
+  //     {
+  //       id: 0,
+  //       path: '/setting/setting',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '账号设置',
+  //         icon: ''
+  //       },
+  //       children: [{
+  //           id: 1,
+  //           path: '/setting/setting',
+  //           name: '/setting/setting',
+  //           component: () => import('@/views//setting/setting.vue'),
+  //           meta: {
+  //             title: '账号设置',
+  //             icon: ''
+  //           },
+  //         },
+  //       ]
+  //     },
+  //     {
+  //       id: 0,
+  //       path: '/setting/base',
+  //       component: operationLayout,
+  //       meta: {
+  //         title: '通用设置',
+  //         icon: ''
+  //       },
+  //       children: [{
+  //           id: 0,
+  //           path: '/setting/base',
+  //           name: '/setting/base',
+  //           component: () => import('@/views/setting/base.vue'),
+  //           meta: {
+  //             title: '通用设置',
+  //             icon: ''
+  //           },
+  //         },
+  //       ]
+  //     }
+  //   ]
+  // }
+
+  // 404 page must be placed at the end !!!
+  // { path: '*', redirect: '/404', hidden: true }
+]
 
+export const asyncRouter = [
   {
     id: 0,
-    path: '/setting/index',
+    path: '/authorityManage',
     component: Layout,
     meta: {
-      title: '系统设置',
-      icon: 'el-icon-s-shop'
+      title: '权限管理',
+      icon: 'icon-shouyefill'
     },
-    alwaysShow: true,
-    children:[
-      {
-              id: 0,
-              path: '/setting/rulesManage',
-              component: operationLayout,
-              meta: {
-                title: '分账规则',
-                icon: ''
-              },
-              children: [{
-                  id: 1,
-                  path: '/setting/rulesManage',
-                  name: '/setting/rulesManage',
-                  component: () => import('@/views//setting/rulesManage/index.vue'),
-                  meta: {
-                    title: '规则列表',
-                    icon: ''
-                  },
-                },
-              ]
-      },
+    children: [
       {
         id: 1,
-        path: '/setting/synchronization',
-        name: '/setting/synchronization',
-        component: () => import('@/views/setting/synchronization.vue'),
+        path: '/authorityManage/menuList',
+        name: '/authorityManage/menuList',
+        component: () => import('@/views/authorityManage/menuList.vue'),
         meta: {
-          title: '同步管理',
+          title: '菜单列表',
           icon: ''
         },
       },
       {
-        id: 1,
-        path: '/setting/cityList',
-        name: '/setting/cityList',
-        component: () => import('@/views/setting/cityList.vue'),
+        id: 2,
+        path: '/authorityManage/roleList',
+        name: '/authorityManage/roleList',
+        component: () => import('@/views/authorityManage/roleList.vue'),
         meta: {
-          title: '城市列表',
+          title: '角色列表',
           icon: ''
         },
       },
-      // {
-      //   id: 0,
-      //   path: '/setting/commissionManage',
-      //   component: operationLayout,
-      //   meta: {
-      //     title: '渠道佣金',
-      //     icon: ''
-      //   },
-      //   children: [{
-      //       id: 1,
-      //       path: '/setting/commissionManage',
-      //       name: '/setting/commissionManage',
-      //       component: () => import('@/views//setting/commissionManage/index.vue'),
-      //       meta: {
-      //         title: '渠道佣金',
-      //         icon: ''
-      //       },
-      //     },
-      //   ]
-      // },
       {
-        id: 0,
-        path: '/setting/setting',
-        component: operationLayout,
+        id: 2,
+        path: '/authorityManage/userList',
+        name: '/authorityManage/userList',
+        component: () => import('@/views/authorityManage/userList.vue'),
         meta: {
-          title: '账号设置',
+          title: '用户列表',
           icon: ''
         },
-        children: [{
-            id: 1,
-            path: '/setting/setting',
-            name: '/setting/setting',
-            component: () => import('@/views//setting/setting.vue'),
-            meta: {
-              title: '账号设置',
-              icon: ''
-            },
-          },
-        ]
       },
-      {
-        id: 0,
-        path: '/setting/base',
-        component: operationLayout,
-        meta: {
-          title: '通用设置',
-          icon: ''
-        },
-        children: [{
-            id: 0,
-            path: '/setting/base',
-            name: '/setting/base',
-            component: () => import('@/views/setting/base.vue'),
-            meta: {
-              title: '通用设置',
-              icon: ''
-            },
-          },
-        ]
-      }
     ]
-  }
-
-  // 404 page must be placed at the end !!!
-  // { path: '*', redirect: '/404', hidden: true }
-]
-
-export const asyncRouter = [
-
+  },
 
 ]
 

+ 1 - 0
src/store/getters.js

@@ -5,6 +5,7 @@ const getters = {
   refreshToken: state => state.user.refreshToken,
   avatar: state => state.user.avatar,
   menus: state => state.user.menus,
+  btnAuthObj: state => state.user.btnAuthObj,
   name: state => state.user.name
 }
 export default getters

+ 92 - 24
src/store/modules/user.js

@@ -1,6 +1,18 @@
-import { login} from '@/api/auth'
+/*
+ * @Author: wenjie 1454560336@qq.com
+ * @Date: 2024-11-14 15:02:58
+ * @LastEditors: wenjie 1454560336@qq.com
+ * @LastEditTime: 2024-11-25 17:13:07
+ * @FilePath: \admin-manage\src\store\modules\user.js
+ * @Description: 
+ * 
+ * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. 
+ */
+import { login,getMenuAuth,getAuthButton} from '@/api/auth'
 import { getToken, setToken, removeToken,setREToken } from '@/utils/auth'
 import { resetRouter, asyncRouter } from '@/router'
+import Layout from '@/layout'
+import operationLayout from '@/views/operationManage/index'
 // import { getMenu } from '@/api/menu'
 // import {login} from '@/api/home'
 const getDefaultState = () => {
@@ -9,10 +21,13 @@ const getDefaultState = () => {
     refreshToken:'',
     name: '',
     avatar: '',
-    menus:null
+    menus:null,
+    btnAuthObj:{},
   }
 }
 
+ 
+
 const state = getDefaultState()
 
 const mutations = {
@@ -33,6 +48,9 @@ const mutations = {
   },
   SET_MENU: (state, menus) => {
     state.menus = menus
+  },
+  SET_BTNAUTH: (state, btnAuthObj) => {
+    state.btnAuthObj = btnAuthObj
   }
 }
 
@@ -62,33 +80,83 @@ const actions = {
   // 获取菜单
   getMenu({ commit, state }) {
     return new Promise((resolve, reject) => {
-      getMenu().then(response => {
-        let menuList = response.data.menu
-        let list = asyncRouter
-        let menuIndex = []
-        list.map((menu,d)=>{
-            if(menu.children){
-              let ids = []
-              menu.children.map((item,index)=>{//删除不存在的页面
-                if(menuList.includes(item.id)){
-                  }else{
-                  ids.unshift(index)
+      getMenuAuth({menuSource:1,shopId:0}).then(response => {
+        if(response.state == 'Success'){
+
+        let menuList = response.content
+        let list = []
+        menuList.map(item=>{
+          let obj = {}
+          obj = {
+            path: item.requestUrl,
+            component: Layout,
+            meta: {
+              title: item.menuName,
+              icon: 'el-icon-s-shop'
+            },
+            alwaysShow: item.showStatus == 1?true:false,
+            children:[]
+          }
+          if(item.childs&&item.childs.length>0){
+            item.childs.map(subItem=>{
+              let subObj = {}
+              if(subItem.childs&&subItem.childs.some((item)=>{return item.menuType==2})){
+
+                subObj = {
+                  path: subItem.requestUrl,
+                  name: subItem.requestUrl,
+                  component:operationLayout,
+                  meta: {
+                    title: subItem.menuName,
+                    // icon: 'el-icon-s-shop'
+                  },
+                  alwaysShow: true,
+                  children:[]
                 }
-              })
-              ids.map(i=>{
-                menu.children.splice(i,1)
-              })
-            }
-          if (!menu.children||!menu.children.length){
-              menuIndex.unshift(d)
-            }
-        })
-        menuIndex.map(i=>{
-          list.splice(i,1)
+                subItem.childs.map(i=>{
+                  if(i.menuType==2){
+                    subObj.children.push({
+                      path:i.requestUrl,
+                      name:i.requestUrl,
+                      component:resolve => require([`@/views${i.requestUrl}`], resolve),
+                      hidden:i.showStatus == 1?false:true,
+                      meta: {
+                        title: i.menuName,
+                      }
+
+                    })
+                  }
+                })
+
+              }else{
+                subObj = {
+                  path: subItem.requestUrl,
+                  name: subItem.requestUrl,
+                  hidden:subItem.showStatus == 1?false:true,
+                  component:resolve => require([`@/views${subItem.requestUrl}`], resolve),
+                  meta: {
+                    title: subItem.menuName,
+                  },
+                }
+              }
+              obj.children.push(subObj)
+            })
+          }
+          list.push(obj)
+
         })
         list.push({ path: '*', redirect: '/404', hidden: true })
+        list = asyncRouter.concat(list)
         commit('SET_MENU', list)
+
+          getAuthButton({shopId:0}).then(res=>{
+            if(res.state == 'Success'){
+                commit('SET_BTNAUTH', res.content)
+            }
+          })
+
         resolve(list)
+        }
       }).catch(error => {
         reject(error)
       })

+ 2 - 3
src/utils/request.js

@@ -2,7 +2,7 @@
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2022-08-02 14:50:38
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-11-01 11:54:14
+ * @LastEditTime: 2024-11-12 15:35:43
  * @FilePath: \admin-manage\src\utils\request.js
  * @Description: 
  * 
@@ -33,7 +33,7 @@ service.interceptors.request.use(
       // ['X-Token'] is a custom headers key
       // please modify it according to the actual situation
       config.headers['Accesstoken'] = getToken()
-      config.headers['code'] = 1
+      config.headers['code'] = '520100,5201000,p-0001' //慧研学520100 中数5201000 贵大 p-0001
       config.headers['epid'] = localStorage.getItem('epid')
       // config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
     // }
@@ -59,7 +59,6 @@ service.interceptors.response.use(
    * You can also judge the status by HTTP Status Code
    */
   response => {
-    console.log(response);
     const res = response.data
     // 如果code不是 0, 这被判定为一个错误。
     if (res.state !== "Success" && res.status != 0) {

+ 174 - 56
src/views/authorityManage/menuList.vue

@@ -12,31 +12,39 @@
     style="width: 100%;margin-bottom: 20px;"
     row-key="id"
     border
-    default-expand-all
-    :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+    :tree-props="{children: 'childs', hasChildren: 'hasChildren'}">
     <el-table-column
-      prop="date"
+      prop="menuName"
       label="菜单名称"
       align="center"
       >
+    </el-table-column>
+     <el-table-column
+      prop="key"
+      label="key"
+      align="center"
+      >
     </el-table-column>
     <el-table-column
-      prop="name"
+      prop="sort"
       label="排序"
       align="center"
       >
     </el-table-column>
     <el-table-column
-      prop="address"
+      prop="requestUrl"
       label="请求地址"
       align="center"
       >
     </el-table-column>
     <el-table-column
-      prop="address"
+      prop="menuType"
       label="类型"
       align="center"
       >
+      <template slot-scope="scope">
+        <span>{{scope.row.menuType |filterType}}</span>
+      </template>
     </el-table-column>
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
@@ -45,48 +53,78 @@
         </template>
       </el-table-column>
     </el-table>
+    <!-- <div class="page-box">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        background
+        :current-page="query.currentPage"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="query.pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+      >
+      </el-pagination>
+    </div> -->
 
     <el-dialog :title="title" width="550px" :visible.sync="dialogFormVisible">
         <el-form label-width="130px" :model="setQuery"
         ref="setQuery"
         :rules="rules">
-            <el-form-item label="菜单名称:"  prop="paperName">
+            <el-form-item label="菜单名称:"  prop="menuName">
                 <el-input
-                v-model="setQuery.paperName"
+                v-model="setQuery.menuName"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
-             <el-form-item label="上级菜单:"  prop="paperName">
-                <el-select v-model="setQuery.type" class="item-width-300" placeholder="请选择">
+            <el-form-item label="按钮key:"  prop="key">
+                <el-input
+                v-model="setQuery.key"
+                class="item-width-300"
+                ></el-input>
+            </el-form-item>
+             <el-form-item label="上级菜单:" v-if="setQuery.menuType != 1"  prop="parentId">
+              <el-cascader
+              class="item-width-300"
+              v-model="setQuery.parentId"
+              :options="tableData"
+              :props="{ checkStrictly: true,emitPath:false,children: 'childs',label:'menuName',value:'id' }"
+              clearable></el-cascader>
+                <!-- <el-select v-model="setQuery.parentId" class="item-width-300" placeholder="请选择">
                     <el-option
                     v-for="item in options"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value">
                     </el-option>
-                </el-select>
+                </el-select> -->
             </el-form-item>
-            <el-form-item label="菜单类型:"  prop="questionsNum">
-               <el-radio-group v-model="setQuery.type">
+            <el-form-item label="菜单类型:"  prop="menuType">
+               <el-radio-group v-model="setQuery.menuType">
                     <el-radio :label="1">目录</el-radio>
                     <el-radio :label="2">菜单</el-radio>
                     <el-radio :label="3">按钮</el-radio>
                 </el-radio-group>
             </el-form-item>
-             <el-form-item label="请求地址:"  prop="questionsNum">
+             <el-form-item label="请求地址:" v-if="setQuery.menuType != 3" prop="requestUrl">
                 <el-input
-                type="number"
-                v-model.number="setQuery.questionsNum"
+                v-model="setQuery.requestUrl"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
-             <el-form-item label="显示排序:"  prop="questionsNum">
+             <el-form-item label="显示排序:"  prop="sort">
                 <el-input
                 type="number"
-                v-model.number="setQuery.questionsNum"
+                v-model.number="setQuery.sort"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
+            <el-form-item label="是否显示:"  prop="showStatus">
+              <el-radio-group v-model="setQuery.showStatus">
+                  <el-radio :label="1">显示</el-radio>
+                  <el-radio :label="2">隐藏</el-radio>
+              </el-radio-group>
+          </el-form-item>
         </el-form>
     <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取 消</el-button>
@@ -97,45 +135,17 @@
   </div>
 </template>
   
-  <script>
+<script>
+import { getMenuList,delMenu,addOrUpdateMenu,menuDetail } from "@/api/auth.js";
+
 export default {
   name: "menuList",
   data() {
     return {
       title:"",
+      btnLoading:false,
       dialogFormVisible:false,
-      tableData: [{
-          id: 1,
-          date: '2016-05-02',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1518 弄'
-        }, {
-          id: 2,
-          date: '2016-05-04',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1517 弄'
-        }, {
-          id: 3,
-          date: '2016-05-01',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1519 弄',
-          children: [{
-              id: 31,
-              date: '2016-05-01',
-              name: '王小虎',
-              address: '上海市普陀区金沙江路 1519 弄'
-            }, {
-              id: 32,
-              date: '2016-05-01',
-              name: '王小虎',
-              address: '上海市普陀区金沙江路 1519 弄'
-          }]
-        }, {
-          id: 4,
-          date: '2016-05-03',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1516 弄'
-        }],
+      tableData: [],
       loading: false,
       options:[
         {
@@ -149,23 +159,67 @@ export default {
           label: '蚵仔煎'
         }
       ],
+      query: {
+        menuSource: 1,
+        currentPage: 1,
+        pageSize: 999,
+      },
+      total: 0,
       setQuery: {
-       type:1
+       menuType:1
       },
-      rules:{}
+      rules:{
+        menuName: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
+        requestUrl: [{ required: true, message: "请输入请求地址", trigger: "blur" }],
+        parentId: [{ required: true, message: "请选择上级菜单", trigger: "change" }],
+        sort: [{ required: true, message: "请输入排序", trigger: "blur" }],
+      }
     };
   },
-
+  filters: {
+    filterType: function(val) {
+      if(val == 1){
+        return "目录"
+      }else if(val == 2){
+        return "菜单"
+      }else{
+        return "按钮"
+      }
+    }
+  },
   methods: {
 
     handleEdit(row){
+      console.log(row);
+      this.menuDetail(row.id)
         this.title = "编辑"
         this.dialogFormVisible = true
+        this.setQuery = {
+            "id": row.id,
+            "menuName": row.menuName,
+            "menuSource": row.menuSource,
+            "menuType": row.menuType,
+            "key": row.key,
+            "parentId": row.parentId,
+            "requestUrl": row.requestUrl,
+            "showStatus": row.showStatus,
+            "sort": row.sort
+        }
      
     },
     handleAdd(){
         this.title = "添加"
         this.dialogFormVisible = true
+        this.setQuery = {
+            "menuName": "",
+            "menuSource": 1,
+            "menuType": 1,
+            "parentId": "",
+            "key": "",
+            "requestUrl": "",
+            "showStatus": 1,
+            "sort": 0
+        }
     },
     // 点击删除
     handleDel(id) {
@@ -174,21 +228,85 @@ export default {
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-          del({menuId:id}).then(res=>{
+          delMenu({id}).then(res=>{
             if(res.state == 'Success'){
                this.$notify({
                 title: '成功',
                 message: '操作成功',
                 type: 'success'
               });
-              this.getMenu()
+              this.getMenuList()
             }
           })
         })
     },
+    handleSizeChange(val) {
+      this.query.currentPage = 1;
+      this.query.pageSize = val;
+      this.getMenuList()
+    },
+    handleCurrentChange(val) {
+      this.query.currentPage = val;
+      this.getMenuList()
+    },
+    save(){
+      this.$refs.setQuery.validate((valid) => {
+        if (valid) {
+          this.btnLoading = true
+          addOrUpdateMenu(this.setQuery).then(res=>{
+            this.btnLoading = false
+            if(res.state == 'Success'){
+              this.$notify({
+                title: '成功',
+                message: '操作成功',
+                type: 'success'
+              });
+              this.dialogFormVisible = false
+              this.getMenuList()
+            }
+
+          })
+        } 
+       });
+    },
+    getMenuList(){
+      getMenuList(this.query).then(res=>{
+        if(res.state == 'Success'){
+          this.tableData = res.content.records
+          this.total = res.content.total
+          this.options = []
+          res.content.records.forEach(item=>{
+            this.options.push({
+              value: item.id,
+              label: item.menuName
+            })
+          })
+        }
+
+      })
+    },
+    menuDetail(id){
+      menuDetail({id}).then(res=>{
+        if(res.state == 'Success'){
+           this.setQuery = {
+            "id": res.content.id,
+            "menuName": res.content.menuName,
+            "menuSource": res.content.menuSource,
+            "key": res.content.key,
+            "menuType": res.content.menuType,
+            "parentId": res.content.parentId,
+            "requestUrl": res.content.requestUrl,
+            "showStatus": res.content.showStatus,
+            "sort": res.content.sort
+        }
+
+        }
+      })
+    }
 
   },
   created() {
+    this.getMenuList()
   },
 };
 </script>

+ 130 - 64
src/views/authorityManage/roleList.vue

@@ -3,21 +3,14 @@
   <div class="roleList app-container">
     <div class="search">
         <div>
-            <el-input
-            v-model="query.name"
-            size="small"
-            clearable
-            placeholder="请输入名称"
-            class="item-width-200 "
-            ></el-input>
              <el-input
-            v-model="query.name"
+            v-model="query.roleName"
             size="small"
             clearable
-            placeholder="请输入登录账号"
+            placeholder="请输入角色名"
             class="item-width-200 ml10"
             ></el-input>
-            <el-select
+            <!-- <el-select
           v-model="query.activityType"
           size="small"
           class="item-width-200 ml10"
@@ -31,12 +24,13 @@
             :value="item.value"
           >
           </el-option>
-        </el-select>
+        </el-select> -->
 
         <el-date-picker
           v-model="date"
           size="small"
-          value-format="timestamp"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          :default-time="['00:00:00', '23:59:59']"
           class="item-width-350 ml10"
           type="datetimerange"
           range-separator="至"
@@ -73,7 +67,7 @@
       <el-table-column
         align="center"
         label="角色名称"
-        prop="activityName"
+        prop="roleName"
         show-overflow-tooltip
       >
       </el-table-column>
@@ -81,7 +75,7 @@
       <el-table-column
         align="center"
         label="备注"
-        prop="status"
+        prop="remake"
         show-overflow-tooltip
       >
       </el-table-column>
@@ -91,11 +85,14 @@
         prop="status"
         show-overflow-tooltip
       >
+        <template slot-scope="scope">
+          {{scope.row.status === 1 ? '启用' : '禁用'}}
+        </template>
       </el-table-column>
        <el-table-column
         align="center"
         label="创建时间"
-        prop="status"
+        prop="createTime"
         show-overflow-tooltip
       >
       </el-table-column>
@@ -103,8 +100,7 @@
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
           <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">权限分配</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" @click="handleDel(scope.row)">{{scope.row.status === 1 ? '禁用' : '启用'}}</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -126,25 +122,30 @@
         <el-form label-width="130px" :model="setQuery"
         ref="setQuery"
         :rules="rules">
-            <el-form-item label="角色名称:"  prop="paperName">
+            <el-form-item label="角色名称:"  prop="roleName">
                 <el-input
-                v-model="setQuery.paperName"
+                v-model="setQuery.roleName"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
-            <el-form-item label="备注:"  prop="paperName">
+            <el-form-item label="备注:"  prop="remake">
                 <el-input
-                v-model="setQuery.paperName"
+                v-model="setQuery.remake"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
+            <el-form-item label="状态:"  prop="status">
+                <el-radio-group v-model="setQuery.status">
+                    <el-radio :label="1">启用</el-radio>
+                    <el-radio :label="2">禁用</el-radio>
+                </el-radio-group>
+            </el-form-item>
              
-            <el-form-item label="权限分配:"  prop="questionsNum">
+            <el-form-item label="权限分配:"  prop="authRang">
               <el-tree
                 style="margin-top: 10px;"
                 :data="data"
                 show-checkbox
-                default-expand-all
                 node-key="id"
                 ref="tree"
                 highlight-current
@@ -163,7 +164,7 @@
 </template>
 
   <script>
-  import {activityList,activityDel,activityStop} from '@/api/activity'
+  import {authRoleList,authRoleEnable,addOrUpdateAuthRole,getMenuData} from '@/api/auth'
 export default {
   name: "roleList",
   data() {
@@ -205,8 +206,8 @@ export default {
           }]
         }],
         defaultProps: {
-          children: 'children',
-          label: 'label'
+          children: 'childs',
+          label: 'menuName'
         },
       options:[
         {
@@ -224,16 +225,35 @@ export default {
       btnLoading: false,
       dialogFormVisible: false,
       query: {
-        "activityType":null,
-        "state":'',
+        "roleName":'',
+        "roleSource":1,
+        "start":'',
+        "end":'',
         "currentPage": 1,
         "pageSize": 10,
         shopId: 0,
       },
       setQuery: {
-       type:1
+        "authRang": "",
+        "id": 0,
+        "remake": "",
+        "roleName": "",
+        "roleSource": 0,
+        "sourceId": "",
+        "status": 0
+      },
+      rules:{
+        roleName: [
+          { required: true, message: '请输入角色名称', trigger: 'blur' },
+        ],
+        remake:[
+          { required: true, message: '请输入备注', trigger: 'blur' }
+        ],
+        authRang: [
+          { required: true, message: '请选择权限', trigger: 'change' },
+        ]
+
       },
-      rules:{},
       title: "",
       total: 0,
     };
@@ -241,11 +261,11 @@ export default {
   watch: {
     date(val){
       if(val){
-        this.query.startTime = val[0]
-        this.query.endTime = val[1]
+        this.query.start = val[0]
+        this.query.end = val[1]
       }else{
-        this.query.startTime = ''
-        this.query.endTime = ''
+        this.query.start = ''
+        this.query.end = ''
       }
     }
   },
@@ -253,23 +273,55 @@ export default {
     handleEdit(row){
         this.title = "编辑"
         this.dialogFormVisible = true
+        this.setQuery = {
+          "authRang": row.authRang.split(',').map(Number),
+          "id": row.id,
+          "remake": row.remake,
+          "roleName": row.roleName,
+          "roleSource": row.roleSource,
+          "sourceId": row.sourceId,
+          "status": row.status
+        }
+        let parentIds = this.data.map(item => {
+          return item.id
+        })
+        let authRang = this.setQuery.authRang.map(item=>{
+          if(!parentIds.includes(item)){
+            return item
+          }
+        })
+        this.$nextTick(() => {
+          this.$refs.tree.setCheckedKeys(authRang)
+        })
      
     },
     handleAdd(){
         this.title = "添加"
         this.dialogFormVisible = true
+        this.setQuery = {
+          "authRang": "",
+          "remake": "",
+          "roleName": "",
+          "roleSource": 1,
+          "sourceId": localStorage.getItem('epid'),
+          "status": 1
+        }
+         this.$nextTick(() => {
+          this.$refs.tree.setCheckedKeys([])
+        })
     },
     handleSearch(){
       this.query.currentPage = 1
-      this.activityList();
+      this.authRoleList();
     },
-    handleDel(id){
-         this.$confirm(`此操作将删除该活动, 是否继续?`, "提示", {
+    handleDel(row){
+      let msg = row.status == 1 ? '禁用' : '启用'
+        this.$confirm(`此操作将${msg}该数据, 是否继续?`, "提示", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
             type: "warning",
         }).then(() => {
-          activityDel({id}).then(res=>{
+          authRoleEnable({id:row.id}).then(res=>{
             if(res.state == 'Success'){
                this.$notify({
                 title: "成功",
@@ -284,46 +336,60 @@ export default {
     handleSizeChange(val) {
       this.query.currentPage = 1;
       this.query.pageSize = val;
-      this.activityList()
+      this.authRoleList()
     },
     handleCurrentChange(val) {
       this.query.currentPage = val;
-      this.activityList()
+      this.authRoleList()
+    },
+    authRoleList(){
+      this.loading = true
+      authRoleList(this.query).then(res=>{
+        this.loading = false
+        if(res.state == 'Success'){
+          this.tableData = res.content.records
+          this.total = res.content.total
+        }
+      })
     },
-    activityList(){
-    //   this.loading = true
-    //   activityList(this.query).then(res=>{
-    //     this.loading = false
-    //     if(res.state == 'Success'){
-    //       this.tableData = res.content.records
-    //       this.total = res.content.total
-    //     }
-    //   })
+    getId(){
     },
     save(){
-        console.log(1111);
+      // let list = this.$refs.tree.getCheckedNodes(false,true).map(item=>item.id).join(',')
+
+      //  console.log(this.$refs.tree.getCheckedKeys(false,true),list);
+      //  this.setQuery.authRang = this.$refs.tree.getCheckedKeys(false,true).join(',')
+       this.setQuery.authRang = this.$refs.tree.getCheckedNodes(false,true).map(item=>item.id).join(',')
         this.$refs.setQuery.validate((v) => {
         if (v) {
-        //   this.btnLoading = true
-        //   addOrUpdatePaper(this.setQuery).then(res=>{
-        //     this.btnLoading = false
-        //     if(res.state == 'Success'){
+          this.btnLoading = true
+          addOrUpdateAuthRole(this.setQuery).then(res=>{
+            this.btnLoading = false
+            if(res.state == 'Success'){
                 this.dialogFormVisible = false
-        //       this.$notify({
-        //           title: '成功',
-        //           message: '操作成功',
-        //           type: 'success'
-        //         });
-        //         this.query.currentPage = 1
-        //         this.paperList();
-        //     }
-        //   })
+              this.$notify({
+                  title: '成功',
+                  message: '操作成功',
+                  type: 'success'
+                });
+                this.query.currentPage = 1
+                this.authRoleList();
+            }
+          })
         }
       });
+    },
+    getMenuData(){
+      getMenuData({menuSource:1}).then(res=>{
+          if(res.state == 'Success'){
+            this.data = res.content.records
+          }
+      })
     }
   },
   created() {
-    this.activityList()
+    this.authRoleList()
+    this.getMenuData()
   },
 };
 </script>

+ 157 - 100
src/views/authorityManage/userList.vue

@@ -72,16 +72,23 @@
     >
       <el-table-column
         align="center"
-        label="角色名称"
-        prop="activityName"
+        label="姓名"
+        prop="employeeName"
         show-overflow-tooltip
       >
       </el-table-column>
       
       <el-table-column
         align="center"
-        label="备注"
-        prop="status"
+        label="登录账号"
+        prop="phoneNum"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+       <el-table-column
+        align="center"
+        label="角色"
+        prop="roleName"
         show-overflow-tooltip
       >
       </el-table-column>
@@ -91,11 +98,14 @@
         prop="status"
         show-overflow-tooltip
       >
+        <template slot-scope="scope">
+          {{scope.row.status === 1 ? '启用' : '禁用'}}
+        </template>
       </el-table-column>
        <el-table-column
         align="center"
         label="创建时间"
-        prop="status"
+        prop="createTime"
         show-overflow-tooltip
       >
       </el-table-column>
@@ -103,8 +113,7 @@
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
           <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">权限分配</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" @click="handleDel(scope.row)">{{scope.row.status === 1 ? '禁用' : '启用'}}</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -126,24 +135,24 @@
         <el-form label-width="130px" :model="setQuery"
         ref="setQuery"
         :rules="rules">
-            <el-form-item label="姓名:"  prop="paperName">
+            <el-form-item label="姓名:"  prop="employeeName">
                 <el-input
-                v-model="setQuery.paperName"
+                v-model="setQuery.employeeName"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
-            <el-form-item label="登录账号:"  prop="paperName">
+            <el-form-item label="登录账号:"  prop="phoneNum">
                 <el-input
-                v-model="setQuery.paperName"
+                v-model="setQuery.phoneNum"
+                :maxlength="11"
                 class="item-width-300"
                 ></el-input>
             </el-form-item>
              
-            <el-form-item label="角色:"  prop="questionsNum">
+            <el-form-item label="角色:"  prop="roleId">
               <el-select
-                v-model="query.activityType"
-                size="small"
-                class="item-width-200 ml10"
+                v-model="setQuery.roleId"
+                class="item-width-300"
                 placeholder="请选择角色"
                 clearable
                 >
@@ -156,18 +165,18 @@
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="状态:"  prop="paperName">
-               <el-radio-group v-model="setQuery.type">
+            <el-form-item label="状态:"  prop="status">
+               <el-radio-group v-model="setQuery.status">
                     <el-radio :label="1">启用</el-radio>
                     <el-radio :label="2">禁用</el-radio>
                 </el-radio-group>
             </el-form-item>
 
-              <el-form-item label="原始密码" prop="old">
-                <el-input type="text" :maxlength="16" class="item-width-300" v-model="setQuery.old" autocomplete="off"></el-input>
+              <el-form-item label="登录密码" prop="password">
+                <el-input type="text" :maxlength="16" class="item-width-300" v-model="setQuery.password" autocomplete="off"></el-input>
             </el-form-item>
-            <el-form-item label="新的密码" prop="pwd">
-                <el-input type="text" :maxlength="16" class="item-width-300" v-model="setQuery.pwd" autocomplete="off"></el-input>
+            <el-form-item label="确认密码" prop="confirmPass">
+                <el-input type="text" :maxlength="16" class="item-width-300" v-model="setQuery.confirmPass" autocomplete="off"></el-input>
             </el-form-item>
            
         </el-form>
@@ -181,51 +190,12 @@
 </template>
 
   <script>
-  import {activityList,activityDel,activityStop} from '@/api/activity'
+  import {getUserList,enableUser,addUser,updateUser,getAllRole} from '@/api/auth'
 export default {
   name: "userList",
   data() {
     return {
         date:'',
-        data: [{
-          id: 1,
-          label: '一级 1',
-          children: [{
-            id: 4,
-            label: '二级 1-1',
-            children: [{
-              id: 9,
-              label: '三级 1-1-1'
-            }, {
-              id: 10,
-              label: '三级 1-1-2'
-            }]
-          }]
-        }, {
-          id: 2,
-          label: '一级 2',
-          children: [{
-            id: 5,
-            label: '二级 2-1'
-          }, {
-            id: 6,
-            label: '二级 2-2'
-          }]
-        }, {
-          id: 3,
-          label: '一级 3',
-          children: [{
-            id: 7,
-            label: '二级 3-1'
-          }, {
-            id: 8,
-            label: '二级 3-2'
-          }]
-        }],
-        defaultProps: {
-          children: 'children',
-          label: 'label'
-        },
       options:[
         {
           value:1,
@@ -251,19 +221,47 @@ export default {
       setQuery: {
        type:1
       },
-      rules:{
-         old:[
-            { required:true,message:'请填写旧密码', trigger: 'blur' }
-        ],
-        pwd: [
-            { required:true,message:'请填写新密码', trigger: 'blur' }
-
-        ],
-      },
       title: "",
       total: 0,
     };
   },
+  computed: {
+    rules(){
+      if(this.title == '添加'){
+        return {
+          employeeName:[
+              { required:true,message:'请填写用户名', trigger: 'blur' }
+          ],
+          phoneNum: [
+              { required:true,message:'请填写手机号', trigger: 'blur' }
+          ],
+          roleId: [
+              { required:true,message:'请选择角色', trigger: 'change' }
+          ],
+          password:[
+              { required:true,message:'请填写密码', trigger: 'blur' }
+          ],
+          confirmPass:[
+              { required:true,message:'请填写确认密码', trigger: 'blur' }
+          ],
+        }
+      }else{
+        return {
+          employeeName:[
+              { required:true,message:'请填写用户名', trigger: 'blur' }
+          ],
+          phoneNum: [
+              { required:true,message:'请填写手机号', trigger: 'blur' }
+          ],
+          roleId: [
+              { required:true,message:'请选择角色', trigger: 'change' }
+          ],
+          
+        }
+      }
+    }
+
+   },
   watch: {
     date(val){
       if(val){
@@ -279,23 +277,43 @@ export default {
     handleEdit(row){
         this.title = "编辑"
         this.dialogFormVisible = true
+        this.setQuery = {
+            "id": row.id,
+            "confirmPass": row.confirmPass,
+            "password": row.password,
+            "phoneNum": row.phoneNum,
+            "employeeName": row.employeeName,
+            "roleId": row.roleId,
+            "shopId": 0,
+            "status": row.status
+        }
      
     },
     handleAdd(){
         this.title = "添加"
         this.dialogFormVisible = true
+        this.setQuery = {
+            "confirmPass": "",
+            "employeeName": "",
+            "password": "",
+            "phoneNum": "",
+            "roleId": "",
+            "shopId": 0,
+            "status": 1
+        }
     },
     handleSearch(){
       this.query.currentPage = 1
-      this.activityList();
+      this.getUserList();
     },
-    handleDel(id){
-         this.$confirm(`此操作将删除该活动, 是否继续?`, "提示", {
+    handleDel(row){
+      let msg = row.status == 1 ? '禁用' : '启用'
+        this.$confirm(`此操作将${msg}该数据, 是否继续?`, "提示", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
             type: "warning",
         }).then(() => {
-          activityDel({id}).then(res=>{
+          enableUser({id:row.id}).then(res=>{
             if(res.state == 'Success'){
                this.$notify({
                 title: "成功",
@@ -306,49 +324,88 @@ export default {
             }
           })
         })
+       
     },
     handleSizeChange(val) {
       this.query.currentPage = 1;
       this.query.pageSize = val;
-      this.activityList()
+      this.getUserList()
     },
     handleCurrentChange(val) {
       this.query.currentPage = val;
-      this.activityList()
+      this.getUserList()
+    },
+    getUserList(){
+      this.loading = true
+      getUserList(this.query).then(res=>{
+        this.loading = false
+        if(res.state == 'Success'){
+          this.tableData = res.content.records
+          this.total = res.content.total
+        }
+      })
     },
-    activityList(){
-    //   this.loading = true
-    //   activityList(this.query).then(res=>{
-    //     this.loading = false
-    //     if(res.state == 'Success'){
-    //       this.tableData = res.content.records
-    //       this.total = res.content.total
-    //     }
-    //   })
+    getAllRole(){
+      getAllRole({roleSource:1}).then(res=>{
+        if(res.state == 'Success'){
+          this.options = []
+          for (const key in res.content) {
+            this.options.push({
+              value: Number(key),
+              label: res.content[key]
+            })
+          }
+        }
+      })
     },
+    
     save(){
         this.$refs.setQuery.validate((v) => {
         if (v) {
-        //   this.btnLoading = true
-        //   addOrUpdatePaper(this.setQuery).then(res=>{
-        //     this.btnLoading = false
-        //     if(res.state == 'Success'){
-                this.dialogFormVisible = false
-        //       this.$notify({
-        //           title: '成功',
-        //           message: '操作成功',
-        //           type: 'success'
-        //         });
-        //         this.query.currentPage = 1
-        //         this.paperList();
-        //     }
-        //   })
+          this.btnLoading = true
+          if(this.title == "添加"){
+            addUser(this.setQuery).then(res=>{
+              this.btnLoading = false
+              if(res.state == 'Success'){
+                  this.dialogFormVisible = false
+                  this.$notify({
+                    title: '成功',
+                    message: '操作成功',
+                    type: 'success'
+                  });
+                  this.handleSearch();
+              }
+            })
+          }else{
+            let setQuery = JSON.parse(JSON.stringify(this.setQuery))
+            if(!setQuery.password){
+              delete setQuery.password
+            }
+            if(!setQuery.confirmPass){
+              delete setQuery.confirmPass
+            }
+             updateUser(setQuery).then(res=>{
+              this.btnLoading = false
+              if(res.state == 'Success'){
+                  this.dialogFormVisible = false
+                  this.$notify({
+                    title: '成功',
+                    message: '操作成功',
+                    type: 'success'
+                  });
+                  this.handleSearch();
+              }
+            })
+          }
+         
         }
       });
     }
   },
   created() {
-    this.activityList()
+    this.getUserList()
+    this.getAllRole()
+    
   },
 };
 </script>

+ 20 - 6
src/views/home/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2021-07-08 12:10:55
- * @LastEditTime: 2024-11-01 16:31:42
+ * @LastEditTime: 2024-11-12 11:11:26
  * @LastEditors: wenjie 1454560336@qq.com
  * @Description: In User Settings Edit
  * @FilePath: \admin-manage\src\views\home\index.vue
@@ -32,7 +32,7 @@
     </div> -->
 
      <el-select
-          v-model="platformType"
+          v-model="query.platformType"
           size="small"
           class="item-width-200 mb10"
           placeholder="请选择所属平台"
@@ -184,6 +184,11 @@ export default {
       query:{
         platformType:1,
       },
+      platformTypeObj:{
+        1:'520100',
+        2:'p-000',
+        3:'5201000',
+      },
       userData: {
         dayRegister: 0,
         dayVip: 0,
@@ -213,7 +218,7 @@ export default {
     };
   },
   watch: {
-    platformType(val) {
+    'query.platformType'(val) {
         this.init()
       }
   },
@@ -231,7 +236,8 @@ export default {
 
         orderCount({
           startTime: thisDayStartTime,
-          endTime: thisDayEndTime
+          endTime: thisDayEndTime,
+          code:this.platformTypeObj[this.query.platformType] 
         }).then(res => {
           if (res.state == 'Success') {
             this.today = res.content;
@@ -239,15 +245,23 @@ export default {
         });
         orderCount({
           startTime: yesterdayStartTime,
-          endTime: yesterdayEndTime
+          endTime: yesterdayEndTime,
+          code:this.platformTypeObj[this.query.platformType] 
         }).then(res => {
           if (res.state == 'Success') {
             this.yesterday = res.content;
           }
         });
-        userStatistics({code:this.query.platformType}).then(res => {
+        userStatistics(this.query).then(res => {
           if (res.state == 'Success') {
             this.userData = res.content;
+            // if(this.query.platformType==2){
+            //   this.userData.totalRegister = this.userData.totalRegisterByHyx
+            //   this.userData.totalRegister = this.userData.totalRegisterByHyx
+            // }else if(this.query.platformType==3){
+            //   this.userData.totalRegister = this.userData.totalRegisterByMall
+            //   this.userData.totalRegister = this.userData.totalRegisterByMall
+            // }
           }
         })
     }

+ 6 - 5
src/views/operationManage/activityManage/index.vue

@@ -53,6 +53,7 @@
         <el-button
             type="primary"
             size="small"
+            v-if="btnAuthObj.addSignUp"
             @click="handleAdd"
         >
             添加
@@ -103,11 +104,11 @@
 
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleData(scope.row.id)">数据</el-button>
-          <el-button type="text" size="small" v-if="scope.row.status != '已结束'" @click="handleShare(scope.row)">分享</el-button>
-          <el-button type="text" size="small" @click="handleDetail(scope.row, scope.row.status != '已结束'?'edit':'detail')">{{scope.row.status != '已结束'?'编辑':'查看'}}</el-button>
-          <el-button type="text" size="small" v-if="scope.row.status != '已结束'" @click="handleStop(scope.row.id)">停止</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.signUpDataList" @click="handleData(scope.row.id)">数据</el-button>
+          <el-button type="text" size="small" v-if="scope.row.status != '已结束'&&btnAuthObj.shareSignUp" @click="handleShare(scope.row)">分享</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.signUpDetail" @click="handleDetail(scope.row, scope.row.status != '已结束'?'edit':'detail')">{{scope.row.status != '已结束'?'编辑':'查看'}}</el-button>
+          <el-button type="text" size="small" v-if="scope.row.status != '已结束'&&btnAuthObj.stopSignUp" @click="handleStop(scope.row.id)">停止</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delSignUp" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 3 - 3
src/views/operationManage/advertisingManage/index.vue

@@ -43,7 +43,7 @@
         搜索
       </el-button>
       </div>
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+      <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addAdvertising" @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -111,8 +111,8 @@
       </el-table-column>
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editAdvertising" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delAdvertising" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 3 - 3
src/views/operationManage/appMenuManage/index.vue

@@ -28,7 +28,7 @@
         搜索
       </el-button>
       </div>
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+      <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addMenu" @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -96,8 +96,8 @@
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
           <el-button type="text" size="small" v-if="$route.query.title != '二级菜单'" @click="handle(scope.row.id)">查看下级</el-button>
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editMenu" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delMenu" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 3 - 3
src/views/operationManage/bannerManage/index.vue

@@ -50,7 +50,7 @@
         搜索
       </el-button>
       </div>
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+      <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addBanner" @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -119,8 +119,8 @@
       </el-table-column>
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editBanner" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delBanner" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 5 - 4
src/views/operationManage/comboManage/index.vue

@@ -2,7 +2,7 @@
 <template>
   <div class="comboManage app-container">
     <div class="search">
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+      <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.editGoodType" @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -77,17 +77,18 @@
           <el-button
             type="text"
             size="small"
+            v-if="btnAuthObj.enableCombo"
             @click="handle(scope.row)"
             >{{ scope.row.status == 1 ? "禁用" : "启用" }}</el-button
           >
 
-          <el-button type="text" size="small" @click="handleEdit(scope.row.id)"
+          <el-button type="text" size="small" v-if="btnAuthObj.editCombo" @click="handleEdit(scope.row.id)"
             >修改</el-button
           >
-          <el-button type="text" size="small" @click="handleEditEquities(scope.row.setMealCode)"
+          <el-button type="text" size="small" v-if="btnAuthObj.configCombo" @click="handleEditEquities(scope.row.setMealCode)"
             >权益配置</el-button
           >
-          <el-button type="text" size="small" @click="handleDel(scope.row)"
+          <el-button type="text" size="small" v-if="btnAuthObj.delCombo" @click="handleDel(scope.row)"
             >删除</el-button
           >
         </template>

+ 2 - 2
src/views/operationManage/comboManage/logList.vue

@@ -2,7 +2,7 @@
  * @Author: wenjie 1454560336@qq.com
  * @Date: 2024-07-11 13:51:26
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-09-09 17:43:27
+ * @LastEditTime: 2024-11-22 15:43:14
  * @FilePath: \admin-manage\src\views\operationManage\comboManage\logList.vue
  * @Description: 
  * 
@@ -125,7 +125,7 @@
       <el-table-column align="center" label="操作">
         <template slot-scope="scope">
 
-          <el-button type="text" size="small" v-if="scope.row.status == 1" @click="handleCommit(scope.row.id)"
+          <el-button type="text" size="small" v-if="scope.row.status == 1&&btnAuthObj.send" @click="handleCommit(scope.row.id)"
             >发放</el-button
           >
           <!-- <el-button type="text" size="small" @click="handleDel(scope.row.id)"

+ 2 - 2
src/views/operationManage/comboManage/vipActivation.vue

@@ -180,14 +180,14 @@
           <el-button
             type="text"
             size="small"
-            v-if="scope.row.groupType === 2"
+            v-if="scope.row.groupType === 2&&btnAuthObj.createVipActivationl"
             @click="gotoGenerating(scope.row)"
             >生成激活码</el-button
           >
           <el-button
             type="text"
             size="small"
-            v-else
+             v-if="scope.row.groupType != 2&&btnAuthObj.vipActivationDetail"
             @click="codeDetails(scope.row)"
             >查看激活码</el-button
           >

+ 5 - 2
src/views/operationManage/couponManage/index.vue

@@ -39,6 +39,7 @@
           class="add-btn"
           type="primary"
           size="small"
+          v-if="btnAuthObj.addCoupon"
           @click="handleAdd('/operationManage/couponManage/refuelCoupon')"
         >
           立即添加
@@ -182,18 +183,20 @@
           <el-button
             type="text"
             size="small"
+            v-if="btnAuthObj.couponDetail"
             @click="handleDetail(scope.row,'detail')"
             >查看</el-button
           >
            <el-button
             type="text"
             size="small"
+            v-if="btnAuthObj.editCoupon"
             @click="handleDetail(scope.row,'edit')"
             >编辑</el-button
           >
         
-           <el-button type="text" size="small" v-if="scope.row.status == '进行中'" @click="handle(scope.row.id)">停止</el-button>
-          <el-button type="text" size="small" v-else @click="handleDel(scope.row.id)"
+           <el-button type="text" size="small" v-if="scope.row.status == '进行中'&&btnAuthObj.stopCoupon" @click="handle(scope.row.id)">停止</el-button>
+          <el-button type="text" size="small" v-if="scope.row.status != '进行中'&&btnAuthObj.delCoupon" @click="handleDel(scope.row.id)"
             >删除</el-button
           >
         </template>

+ 1 - 1
src/views/operationManage/financeManage/withdraw.vue

@@ -14,7 +14,7 @@
 
         <div class="value-box">
           <div class="text">{{money.ready}}</div>
-           <el-button class="btn" size="small" type="primary" @click="handleWithdraw">提现</el-button>
+           <el-button class="btn" size="small" type="primary" v-if="btnAuthObj.withdraw" @click="handleWithdraw">提现</el-button>
         </div>
       </div>
        <div class="item">

+ 0 - 406
src/views/operationManage/goodsAudit/auditDetail.vue

@@ -1,406 +0,0 @@
-<template>
-  <div class="auditDetail app-container">
-    <el-form
-      v-loading="loading"
-      :model="form"
-      ref="form"
-      :rules="rules"
-      label-width="130px"
-    >
-      <el-form-item label="商品名称:">
-        <el-input
-          v-model="setQuery.goodsName"
-          :maxlength="11"
-          class="item-width-300"
-          disabled
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="商品类型:">
-        <el-select
-          v-model="setQuery.goodsType"
-          disabled
-          class="item-width-300"
-          placeholder="请选择商品类型"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item v-if="setQuery.goodsType == 1" label="立减额度:">
-        <el-input
-          disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-          <template slot="append">元</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item v-else-if="setQuery.goodsType == 2" label="折扣率:">
-        <el-input
-          disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-          <template slot="append">%</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item v-else-if="setQuery.goodsType == 3" label="满减规则:">
-        <el-input
-          disabled
-          v-model.number="setQuery.condition"
-          :maxlength="18"
-          class="item-width-150"
-        >
-        </el-input>
-        减
-        <el-input
-          disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-100"
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item label="售价:">
-        <el-input
-          v-model="setQuery.realPrice"
-          :maxlength="11"
-          class="item-width-300"
-          disabled
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="库存:">
-        <el-input
-          v-model="setQuery.stockCount"
-          :maxlength="11"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="使用限制时间:">
-        <div class="tabs">
-          <div
-            class="tab"
-            v-for="(item, index) in tabs"
-            :class="[setQuery.useType == index+1 ? 'active' : '']"
-            :key="item"
-            @click="handleTab(index+1)"
-          >
-            {{ item }}
-          </div>
-        </div>
-        <el-date-picker
-          v-show="tab == 2"
-          v-model="date"
-          type="datetimerange"
-          class="item-width-400"
-          :picker-options="pickerOptions"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          align="right"
-        >
-        </el-date-picker>
-
-        <el-select
-          disabled
-          v-show="tab == 3 || tab == 4"
-          v-model="setQuery.day"
-          multiple
-          clearable
-          filterable
-          class="item-width-400"
-          placeholder="请选择"
-        >
-          <el-option
-            v-for="item in nums"
-            :key="item"
-            :label="
-              (nums == 7 ? '每周' : '每月') + item + (nums == 31 ? '号' : '')
-            "
-            :value="item"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-
-      <el-form-item label="商品说明:">
-        <el-input
-          disabled
-          type="textarea"
-          placeholder="请输入商品说明,限100字"
-          v-model="setQuery.goodsDescribe"
-          maxlength="100"
-          :rows="6"
-          class="item-width-300"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item label="商品购买设置:">
-        <el-table
-          :data="tableData"
-          tooltip-effect="dark"
-          border
-          style="width: 600px"
-        >
-          <el-table-column
-            align="center"
-            label="人员类型"
-            prop="name"
-            show-overflow-tooltip
-          >
-           <template slot-scope="scope">
-             {{scope.row.name}}
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="shopName"
-            align="center"
-            label="购买设置"
-            show-overflow-tooltip
-          >
-            <template slot-scope="scope">
-              <el-checkbox
-                :false-label="1"
-                :true-label="2"
-                v-model="scope.row.buySet"
-                >限制购买</el-checkbox
-              >
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="shopName"
-            align="center"
-            label="限购数量"
-            show-overflow-tooltip
-          >
-            <template slot-scope="scope">
-              <el-input
-                v-model="scope.row.buyPrice"
-                :maxlength="8"
-                size="small"
-                class="item-width-100"
-              >
-              </el-input>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="shopName"
-            align="center"
-            label="优惠价格"
-            show-overflow-tooltip
-          >
-            <template slot-scope="scope">
-              <el-input
-                v-model="scope.row.buyPrice"
-                :maxlength="8"
-                size="small"
-                class="item-width-100"
-              >
-              </el-input>
-            </template>
-          </el-table-column>
-        </el-table>
-      </el-form-item>
-
-      
-
-      <el-form-item label="审核意见:" prop="checkDetail">
-        <el-input
-          type="textarea"
-          placeholder="请输入审核意见"
-          v-model="setQuery.checkDetail"
-          maxlength="400"
-          :rows="6"
-          class="item-width-500"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script>
-import { getCheckDetail } from "@/api/goods";
-import { getSetMealNameAndId } from "@/api/common";
-import Upload from "@/components/Upload";
-export default {
-  components: {
-    Upload,
-  },
-  data() {
-    return {
-      nums: 7,
-      value2: "",
-      tabs: ["不限制", "自定义时间", "每周", "每月"],
-      tab: 1,
-      date: "",
-      loading: false,
-      setQuery: {
-        goodsName: "立减10元",
-        goodsType: "1",
-        goodsCode: "102",
-        condition: 0,
-        discount: 10,
-        realPrice: 0,
-        stockCount: 10,
-        useType: 0,
-        useStartTime: null,
-        useEndTime: null,
-        goodsDescribe: "商品描述",
-        goodsWeight: 99,
-        checkUser: null,
-        checkDetail: "名字不规范、不予通过",
-        checkTime: "2023-11-03 17:34:25",
-        details: null,
-      },
-      form: {
-        checkDetail: "",
-      },
-      rules: {
-        checkDetail: [
-          { required: true, message: "请输入审核意见", trigger: "blur" },
-        ],
-      },
-      mealList: null,
-      options: [
-        {
-          value: "1",
-          label: "立减券",
-        },
-        {
-          value: "2",
-          label: "折扣券",
-        },
-        {
-          value: "3",
-          label: "满减券",
-        },
-      ],
-      tableData: [
-        { setMealId: 0, buySet: 2, buyNum: 2, buyPrice: 0, name: "非会员" },
-        { setMealId: 1, buySet: 2, buyNum: 5, buyPrice: 5, name: "10元套餐" },
-        { setMealId: 2, buySet: 2, buyNum: 7, buyPrice: 7, name: "20元套餐" },
-        { setMealId: 3, buySet: 2, buyNum: 1, buyPrice: 9, name: "30元套餐" },
-      ],
-      pickerOptions: {
-        shortcuts: [
-          {
-            text: "最近一周",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近一个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-          {
-            text: "最近三个月",
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit("pick", [start, end]);
-            },
-          },
-        ],
-      },
-    };
-  },
-  watch: {
-    date(val) {
-      console.log(val);
-      if (val) {
-      } else {
-      }
-    },
-  },
-  methods: {
-    handleTab(val) {
-      // this.setQuery.useType = val
-      val == 2 ? (this.nums = 7) : (this.nums = 31);
-    },
-    // 商品详情
-    getCheckDetail() {
-      this.loading = true;
-      getCheckDetail({ goodsId: this.$route.query.id }).then((res) => {
-        this.loading = false;
-        if (res.state == "Success") {
-          this.setQuery = res.content;
-          this.tableData = res.content.details;
-          this.getSetMealNameAndId().then((r) => {
-            // 替换套餐名
-            this.tableData.map((item) => {
-              if (item.setMealId == 0) {
-                this.$set(item,'name',"非会员")
-              } else {
-                this.$set(item,'name',r[item.setMealId])
-              }
-            });
-          });
-        }
-      });
-    },
-    getSetMealNameAndId() {
-      return new Promise((resolve, reject) => {
-        getSetMealNameAndId().then((res) => {
-          if (res.state == "Success") {
-            resolve(res.content);
-          }
-        });
-      });
-    },
-  },
-  created() {
-    this.getCheckDetail();
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import "@/styles/element-variables";
-.auditDetail {
-  padding-bottom: 40px;
-  .btn-group {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .tabs {
-    display: flex;
-    border-radius: 4px;
-    margin-bottom: 10px;
-    cursor: pointer;
-    .tab {
-      width: 90px;
-      height: 30px;
-      line-height: 30px;
-      text-align: center;
-      border: 1px solid #f1f1f1;
-    }
-  }
-  .active {
-    color: $--color-primary;
-    border: 1px solid $--color-primary !important;
-    background: #d1d3fa;
-    border-radius: 4px;
-  }
-}
-</style>

+ 0 - 915
src/views/operationManage/goodsAudit/auditGoods.vue

@@ -1,915 +0,0 @@
-<template>
-  <div class="auditGoods app-container">
-    <el-form
-      :model="form"
-      ref="form"
-      :rules="rules"
-      v-loading="loading"
-      label-width="170px"
-    >
-
-    <el-form-item  label="商品名称:">
-           <Upload disabled width="100px" height="100px" type="goodsImg" :imgUrl="setQuery.goodsImg" @uploadEnd="uploadEnd"></Upload>
-      </el-form-item>
-      <el-form-item label="商品名称:" prop="goodsName">
-        <el-input
-        disabled
-          v-model="setQuery.goodsName"
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
-       <el-form-item  label="商品类型:" prop="goodsType">
-        <el-select disabled v-model="setQuery.goodsType" class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-
-       <template v-if="setQuery.goodsType == 1">
-        <el-form-item  label="优惠券类型:" prop="goodsCode">
-        <el-select disabled v-model="setQuery.goodsCode" class="item-width-300" placeholder="请选择优惠券类型">
-            <el-option
-            v-for="item in options1"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-    
-
-      <el-form-item  v-if="setQuery.goodsCode == 102 " label="立减额度:" prop="discount">
-        <el-input
-        disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">元</template>
-        </el-input>
-      </el-form-item>
-      
-      <el-form-item  v-else-if="setQuery.goodsCode == 103" label="折扣率:" prop="discount">
-        <el-input
-        disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">%</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item  v-else-if="setQuery.goodsCode == 104" label="满减规则:" prop="discount">
-        <el-input
-        disabled
-          v-model.number="setQuery.condition"
-          :maxlength="18"
-          class="item-width-150"
-        >
-        </el-input>
-        减
-         <el-input
-         disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-100"
-        >
-        </el-input>
-      </el-form-item>
-      </template>
-
-      <!-- 研学 -->
-      <template v-else-if="setQuery.goodsType == 6">
-        <el-form-item label="研学栏目:" prop="columnId">
-          <el-cascader
-            disabled
-            class="item-width-300"
-            v-model="setQuery.columnId"
-            show-all-levels
-            :options="columnOptions"
-            :props="{ value: 'id', label: 'columnName', children: 'pages' }"
-            clearable
-          ></el-cascader>
-        </el-form-item>
-      </template>
-
-     
-      <el-form-item  label="售价:" prop="realPrice">
-        <el-input
-        disabled
-          v-model.number="setQuery.realPrice"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">元</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item  label="库存:" v-if="setQuery.goodsCode == 101" prop="exchangeCodeDataCode">
-        <el-select disabled v-model="setQuery.exchangeCodeDataCode" class="item-width-300" placeholder="请选择库存">
-            <el-option
-            v-for="item in options2"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-       <el-form-item  label="库存:" v-else prop="stockCount">
-        <el-input
-        disabled
-          v-model.number="setQuery.stockCount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        </el-input>
-      </el-form-item>
-
-      <template v-if="setQuery.goodsCode == 102 || setQuery.goodsCode == 103 || setQuery.goodsCode == 104">
-          <el-form-item disabled label="有效期限制:" prop="validType">
-            <el-radio disabled v-model="setQuery.validType" :label="1">不限制</el-radio>
-            <el-radio disabled v-model="setQuery.validType" :label="2">限制</el-radio>
-            <div v-show="setQuery.validType == 2">
-              <el-date-picker
-              disabled
-              v-model="date1"
-              type="datetimerange"
-              class="item-width-400"
-              value-format="yyyy-MM-dd HH:mm:ss"
-              :picker-options="pickerOptions"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              align="right">
-              </el-date-picker>
-            </div>
-          </el-form-item>
-
-          <el-form-item disabled label="使用限制时间:" prop="shopName">
-          <div class="tabs">
-            <div class="tab" v-for="(item,index) in tabs" :class="[setQuery.useType == index+1?'active':'']" :key="item" @click="handleTab(index+1)">{{item}}</div>
-          </div>
-            <el-date-picker
-            disabled
-            v-show="setQuery.useType == 2"
-            v-model="date"
-            type="datetimerange"
-            class="item-width-400"
-            value-format="yyyy-MM-dd HH:mm:ss"
-            :picker-options="pickerOptions"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
-            align="right">
-            </el-date-picker>
-
-              <el-select
-              disabled
-                v-show="setQuery.useType == 3 || setQuery.useType == 4"
-                v-model="setQuery.day"
-                clearable
-                filterable
-                class="item-width-400"
-                placeholder="请选择">
-                <el-option
-                v-for="item in nums"
-                :key="item"
-                :label="(nums == 7 ?'每周':'每月') + item + (nums == 31 ?'号':'')"
-                :value="item">
-                </el-option>
-            </el-select>
-
-          </el-form-item>
-
-          <el-form-item  label="过期自动退:" prop="advent">
-            <el-radio disabled v-model="setQuery.advent" :label="1">是</el-radio>
-            <el-radio disabled v-model="setQuery.advent" :label="2">否</el-radio>
-          </el-form-item>
-
-          <el-form-item  label="支付抵扣限制:" prop="useMethod">
-            <el-radio disabled v-model="setQuery.useMethod" :label="1">线上和线下</el-radio>
-            <el-radio disabled v-model="setQuery.useMethod" :label="2">仅线上</el-radio>
-            <el-radio disabled v-model="setQuery.useMethod" :label="3">仅线下</el-radio>
-          </el-form-item>
-
-          <el-form-item disabled label="优惠券适用商品范围:" prop="useRangeType">
-            <el-radio disabled v-model="setQuery.useRangeType" :label="1">全部商品</el-radio>
-            <el-radio disabled v-model="setQuery.useRangeType" :label="2">指定商品</el-radio>
-          </el-form-item>
-
-          <template v-if="setQuery.useRangeType == 2 && setQuery.useMethod != 3">
-           <el-table
-          :data="tableData"
-          tooltip-effect="dark"
-          border
-          v-loading="tableLoading"
-          style="width: 100%"
-        >
-          <el-table-column
-            align="center"
-            label="商品名称"
-            prop="goodsName"
-            show-overflow-tooltip
-          >
-          </el-table-column>
-          <el-table-column
-            prop="goodsType"
-            align="center"
-            label="类型"
-            show-overflow-tooltip
-          >
-          <template slot-scope="scope">
-            {{scope.row.goodsType == 1?'优惠券':'研学'}}
-          </template>
-          </el-table-column>
-          <el-table-column
-            prop="discountContent"
-            align="center"
-            label="所属店铺"
-            show-overflow-tooltip
-          >
-          </el-table-column>
-          <el-table-column prop="address" align="center" label="操作">
-            <template slot-scope="scope">
-              <el-button type="text" size="small" @click="">查看</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <div class="page-box">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            background
-            :current-page="query.currentPage"
-            :page-sizes="[10]"
-            :page-size="query.pageSize"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="total"
-          >
-          </el-pagination>
-        </div>
-          </template>
-
-         
-      </template>
-
-
-      <!-- 研学 -->
-      <template v-if="setQuery.goodsType == 6">
-        <el-form-item label="使用限制时间:" prop="shopName">
-          <div class="tabs">
-            <div
-              class="tab"
-              v-for="(item, index) in tabs"
-              :class="[setQuery.useType == index + 1 ? 'active' : '']"
-              :key="item"
-              @click="handleTab(index + 1)"
-            >
-              {{ item }}
-            </div>
-          </div>
-          <el-date-picker
-            v-show="setQuery.useType == 2"
-            v-model="date"
-            disabled
-            type="datetimerange"
-            class="item-width-400"
-            value-format="yyyy-MM-dd HH:mm:ss"
-            :picker-options="pickerOptions"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
-            align="right"
-          >
-          </el-date-picker>
-
-          <el-select
-            v-show="setQuery.useType == 3 || setQuery.useType == 4"
-            v-model="setQuery.day"
-            clearable
-            filterable
-            class="item-width-400"
-            placeholder="请选择"
-          >
-            <el-option
-              v-for="item in nums"
-              :key="item"
-              :label="
-                (nums == 7 ? '每周' : '每月') + item + (nums == 31 ? '号' : '')
-              "
-              :value="item"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="研学商品顶部图:" prop="studyItem">
-          <div class="notice">
-            (图片支持jpg, png, bmp格式,建议上传100kb~500kb大小文件)
-          </div>
-          <Upload
-            type="studyItem"
-            id="studyItem"
-            width="300px"
-            height="200px"
-            disabled
-            uploadType="GOODS_INFO"
-            :imgUrl="setQuery.studyItem"
-            @uploadEnd="uploadEnd"
-          ></Upload>
-        </el-form-item>
-      </template>
-
-      <el-form-item label="商品详情:" prop="goodsDescribe">
-        <!-- <div style="border: 1px solid #E4E7ED; width: 500px;border-radius:4px;padding:0 15px;min-height:60px;" v-html="setQuery.goodsDescribe">
-        </div> -->
-        <div style="border: 1px solid #ccc; width: 500px">
-          <Toolbar
-            style="border-bottom: 1px solid #ccc"
-            :editor="editor"
-            :defaultConfig="toolbarConfig"
-            :mode="editorMode"
-          />
-          <Editor
-            style="height: 500px; overflow-y: hidden"
-            v-model="setQuery.goodsDescribe"
-            :defaultConfig="editorConfig"
-            :mode="editorMode"
-            @onCreated="onCreated"
-          />
-        </div>
-      </el-form-item>
-
-    <el-form-item label="商品购买设置:">
-        <el-table
-      :data="setQuery.details"
-      tooltip-effect="dark"
-      border
-      style="width: 600px"
-    >
-      <el-table-column
-        align="center"
-        label="人员类型"
-        prop="setMealId"
-        show-overflow-tooltip
-      >
-      <template slot-scope="scope">
-        {{scope.row.setMealId | filterMeal(that)}}
-      </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="购买设置"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-          <el-checkbox :true-label="2" :false-label="1" v-model="scope.row.buySet">限制购买</el-checkbox>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="限购数量"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-         <el-input
-          v-model="scope.row.buyNum"
-          :maxlength="8"
-          size="small"
-          class="item-width-100"
-        >
-        </el-input>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="优惠价格"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-         <el-input
-          v-model="scope.row.buyPrice"
-          :maxlength="8"
-          size="small"
-          class="item-width-100"
-        >
-        </el-input>
-        </template>
-      </el-table-column>
-    </el-table>
-      </el-form-item>
-
-       <el-form-item label="分账规则:" prop="shareId">
-        <el-select
-          v-model="form.shareId"
-          class="item-width-300"
-          placeholder="请选择分账规则"
-        >
-          <el-option
-            v-for="item in ruleOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-
-      <el-form-item label="审核意见:" prop="checkDetail">
-        <el-input
-          type="textarea"
-          placeholder="请输入审核意见"
-          v-model="form.checkDetail"
-          maxlength="400"
-          :rows="6"
-           class="item-width-500"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-
-    </el-form>
-
-    <div class="btn-group" v-if="mode != 'detail'">
-       <el-button  type="danger" :loading="loading"  @click="save(3)">拒 绝</el-button>
-     <el-button type="primary" :loading="loading"  @click="save(2)">通过</el-button>
-    </div>
-  </div>
-</template>
-
-<script>
-import {allCouponByShop,get,getGoodsCoupon,search,goodsCouponSet,check } from '@/api/goods'
-import {getSetMealNameAndId} from '@/api/common'
-import { getData } from "@/api/study";
-import {getRuleList } from "@/api/rule";
-import Upload from '@/components/Upload';
-import Vue from "vue";
-import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
-import OSS from "ali-oss";
-import { requestUploadImg, finishUploadImg } from "@/api/common";
-export default Vue.extend( {
-    components: {
-        Upload,
-        Editor,
-        Toolbar
-    },
-  data() {
-    return {
-      editor: null,
-      editorMode: "default", // or 'simple'
-      mode:'add',
-      that:this,
-        nums:7,
-        value2:'',
-        tabs:['不限制','自定义时间','每周','每月'],
-        tab:0,
-        date:'',
-        date1:'',
-        loading:false,
-        tableLoading:false,
-        tableData:[],
-        columnOptions: [],
-        ruleOptions:[],
-        imgList:[],
-        query:{
-          shopId:localStorage.getItem('epid'),
-          currentPage:1,
-          pageSize:10,
-        },
-        total:0,
-        toolbarConfig: {},
-      editorConfig: {
-        placeholder: "请输入内容...",
-        MENU_CONF: {
-          uploadImage: {
-            // 自定义上传
-            customUpload(file, insertFn) {
-              // file 即选中的文件
-              requestUploadImg({
-                fineName: file.name,
-                operate: "OTHER",
-              }).then((res) => {
-                if (res.state == "Success") {
-                  const client = new OSS({
-                    // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
-                    region: res.content.endPoint.split(".")[0],
-                    // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
-                    accessKeyId: res.content.token.accessKeyId,
-                    accessKeySecret: res.content.token.accessKeySecret,
-                    // 填写Bucket名称。
-                    bucket: res.content.bucket,
-                    stsToken: res.content.token.securityToken,
-                  });
-
-                  client
-                    .multipartUpload(res.content.paths[0].join("/"), file)
-                    .then((r) => {
-                      // 上传完成
-                      finishUploadImg([{ path: res.content.paths[0] }]).then(
-                        (msg) => {
-                          if (msg.state == "Success") {
-                            let url =
-                              "http://" +
-                              res.content.bucket +
-                              "." +
-                              res.content.endPoint +
-                              "/" +
-                              res.content.paths[0].join("/");
-                            insertFn(url, "", "");
-                          }
-                        }
-                      );
-                    })
-                    .catch((err) => {
-                      console.log(err); //上传失败之后
-                    });
-                }
-              });
-            },
-          },
-        },
-      },
-      setQuery: {
-        "advent": 1,
-        "condition": 0,
-        "day": 0,
-        "discount": 0,
-        "exchangeCodeDataCode": "",
-        "goodsCode": "",
-        "goodsDescribe": "",
-        "goodsId": "",
-        "goodsImg": "",
-        "goodsName": "",
-        "goodsType": "",
-        "goodsWeight": 0,
-        "realPrice": 0,
-        "shopId": localStorage.getItem('epid'),
-        "stockCount": 0,
-        "useEndTime": "",
-        "useMethod": 1,
-        "useRange": "",
-        "useRangeType": 1,
-        "useStartTime": "",
-        "useType": 1,
-        "validEndTime": "",
-        "validStartTime": "",
-        "validType": 1,
-        "shareId":0,
-      },
-      form:{
-        shareId:'',
-          checkDetail:''
-      },
-      rules: {
-        checkDetail: [{ required: true, message: "请输入审核意见", trigger: "blur" }],
-        shareId: [{ required: true, message: "请选择分账规则", trigger: "change" }],
-      },
-      options: [
-        {
-          value: "1",
-          label: "优惠券",
-        },
-        {
-          value: "6",
-          label: "研学",
-        },
-        {
-          value: "5",
-          label: "商品",
-        },
-      ],
-      options1: [
-        // {
-        //   value: "102",
-        //   label: "立减券",
-        // },
-        // {
-        //   value: "103",
-        //   label: "折扣券",
-        // },
-        // {
-        //   value: "104",
-        //   label: "满减券",
-        // },
-        // {
-        //   value: "101",
-        //   label: "兑换码",
-        // },
-      ],
-      options2: [],
-      mealOption:[],
-       pickerOptions: {
-          shortcuts: [{
-            text: '最近一周',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近一个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近三个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit('pick', [start, end]);
-            }
-          }]
-        },
-    };
-  },
-  watch: {
-    
-    // 使用限制时间
-    date(val) {
-      if(val){
-        this.setQuery.useStartTime = val[0]
-        this.setQuery.useEndTime = val[1]
-      }else{
-        this.setQuery.useStartTime = ''
-        this.setQuery.useEndTime = ''
-        
-      }
-    },
-    // 有效期时间
-    date1(val) {
-      if(val){
-        this.setQuery.validStartTime = val[0]
-        this.setQuery.validEndTime = val[1]
-      }else{
-        this.setQuery.validStartTime = ''
-        this.setQuery.validEndTime = ''
-        
-      }
-    },
-
-  },
-  filters: {
-    filterMeal: function(val,that) {
-      let msg
-      that.mealOption.map(item=>{
-        if(val == item.value){
-          msg = item.label
-        }else if(val === 0){
-          msg = '无套餐'
-        }
-      })
-      return msg
-    }
-  },
-  methods: {
-     onCreated(editor) {
-      this.editor = Object.seal(editor); // 一定要用 Object.seal() ,否则会报错
-    },
-    // 获取研学栏目
-    getData() {
-      getData().then((res) => {
-        if (res.state == "Success") {
-          this.columnOptions = res.content;
-        }
-      });
-    },
-    uploadEnd(val){
-      this.setQuery[val.type] = val.url
-    },
-    handleSizeChange(val) {
-      this.query.currentPage = 1;
-      this.query.pageSize = val;
-      this.allCouponByShop()
-
-    },
-    handleCurrentChange(val) {
-      this.query.currentPage = val;
-      this.allCouponByShop()
-    },
-    handleTab(val){
-      if(this.mode == 'detail') return
-        this.setQuery.useType = val
-        this.setQuery.day = ''
-        val == 3?this.nums =7:this.nums =31
-    },
-    save(applyState) {
-      if(applyState == 2){
-        this.form.checkDetail = this.form.checkDetail || '通过'
-        this.rules = {
-          shareId: [{ required: true, message: "请选择分账规则", trigger: "change" }],
-        }
-      }else{
-        this.rules = {
-          checkDetail: [{ required: true, message: "请输入审核意见", trigger: "blur" }],
-          shareId: [{ required: true, message: "请选择分账规则", trigger: "change" }],
-        }
-      }
-      
-      this.$refs.form.validate((v) => {
-        if (v) {
-          this.loading = true
-          this.goodsCouponSet().then(res=>{
-            this.check(applyState)
-          })
-        }
-      });
-    },
-    // 获取兑换码库存
-    getCode() {
-      search({currentPage:1,pageSize:999}).then((res) => {
-        if (res.state == "Success") {
-          res.content.records.map(item=>{
-              this.options2.push({
-                label:item.exchangeCodeDataName +`(${item.totalNum})`,
-                value:item.exchangeCodeDataId
-              })
-          })
-        }
-      });
-    },
-    // 获取优惠券类型
-    getGoodsCoupon(){
-      getGoodsCoupon().then(res=>{
-        if (res.state == "Success") {
-          for (const key in res.content) {
-            if (Object.hasOwnProperty.call(res.content, key)) {
-                this.options1.push({
-                  label:res.content[key],
-                  value:key
-                }) 
-            }
-          }
-        }
-      })
-    },
-    // 所有商品
-    allCouponByShop(){
-      this.tableLoading = true
-      allCouponByShop(this.query).then(res=>{
-        this.tableLoading = false
-        if (res.state == "Success") {
-          this.tableData = res.content
-        }
-      })
-    },
-     // 商品详情
-    get(){
-      this.loading = true
-      get({goodsId:this.$route.query.id,shopId:this.$route.query.shopId}).then(res=>{
-      this.loading = false
-          if(res.state == 'Success'){
-            this.setQuery = res.content
-            this.setQuery.shopId = localStorage.getItem('epid')
-            // 使用时间为自定义时
-            if(this.setQuery.useType == 2){
-              this.date = [this.setQuery.useStartTime,this.setQuery.useEndTime]
-            }
-            // 限制有效期
-            if(this.setQuery.validType == 2){
-              this.date1 = [this.setQuery.validStartTime,this.setQuery.validEndTime]
-            }
-            this.setQuery.exchangeCodeDataCode = this.setQuery.exchangeCodeDataId
-            this.form.shareId = this.setQuery.shareId 
-            // 初始化购买设置
-            if(!this.setQuery.details){
-              this.setQuery.details = []
-              this.mealOption.map(item=>{
-                this.setQuery.details.push({
-                    "buyNum": 0,
-                    "buyPrice": this.setQuery.realPrice,
-                    "buySet": 1,
-                    "setMealId": item.value
-                })
-              })
-            }
-          }
-      })
-    },
-    getSetMealNameAndId(){
-      return new Promise((resolve,reject)=>{
-        getSetMealNameAndId().then(res=>{
-          if(res.state == 'Success'){
-            for (const key in res.content) {
-              if (Object.hasOwnProperty.call(res.content, key)) {
-                this.mealOption.push({
-                  label:res.content[key],
-                  value:key
-                })
-              }
-            }
-            this.mealOption.unshift({
-              label:'无套餐',
-              value:0
-            })
-            resolve()
-          }
-        })
-      })
-    },
-    // 商品购买配置
-    goodsCouponSet(){
-      return new Promise((resolve,reject)=>{
-        goodsCouponSet({goodsCouponSets:this.setQuery.details,goodsId:this.$route.query.id,shopId:this.$route.query.shopId}).then(res=>{
-              this.loading = true
-              if(res.state == 'Success'){
-                resolve()
-              }
-            })
-      })
-      
-    },
-    check(applyState){
-      
-      check({ 
-            "applyState": applyState,
-            "shareId": this.form.shareId,
-            "checkDetail": this.form.checkDetail,
-            "goodsDescribe":this.setQuery.goodsDescribe,
-            "checkUserId": localStorage.getItem('epid'),
-            "goodsId": this.$route.query.id}).then(res=>{
-              this.loading = false
-              if(res.state == 'Success'){
-                this.$notify({
-                    title: '成功',
-                    message: '操作成功',
-                    type: 'success'
-                  });
-                  this.$router.push('/operationManage/goodsAudit/index')
-              }
-            })
-    },
-    // 规则
-    getRuleList() {
-      getRuleList({currentPage:1,pageSize:999}).then((res) => {
-        if (res.state == "Success") {
-          res.content.records.map(item=>{
-            this.ruleOptions.push({
-              label:item.shareRule,
-              value:item.id
-            })
-          })
-        }
-      });
-    },
-  },
-    created () {
-      this.mode = this.$route.query.mode || 'add'
-      this.getCode()
-      this.getData();
-      this.getGoodsCoupon()
-      this.getRuleList()
-      this.getSetMealNameAndId().then(()=>{
-        if(this.$route.query.id){
-          this.get()
-        }
-      })
-    },
-});
-</script>
-<style src="@wangeditor/editor/dist/css/style.css"></style>
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.auditGoods {
-  padding-bottom: 40px;
-  .btn-group{
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .tabs{
-    display:flex;
-    border-radius: 4px;
-    margin-bottom: 10px;
-    cursor: pointer;
-    .tab{
-        width: 90px;
-        height: 30px;
-        line-height: 30px;
-        text-align: center;
-        border: 1px solid #f1f1f1;
-    }
-  }
-  .active{
-    color: $--color-primary;
-    border: 1px solid $--color-primary!important;
-    background: #d1d3fa;
-    border-radius: 4px;
-  }
-
-  .notice{
-    font-size: 12px;
-    color: #ccc;
-  }
-
-}
-</style>

+ 0 - 429
src/views/operationManage/goodsAudit/auditGoods1.vue

@@ -1,429 +0,0 @@
-<template>
-  <div class="auditGoods app-container">
-    <el-form
-      :model="form"
-      ref="form"
-      :rules="rules"
-      label-width="130px"
-      
-    >
-      <el-form-item label="商品名称:">
-        <el-input
-          v-model="setQuery.goodsName"
-          :maxlength="11"
-          class="item-width-300"
-          disabled
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="商品类型:">
-        <el-select v-model="setQuery.goodsType" disabled class="item-width-300" placeholder="请选择商品类型">
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-            </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item v-if="setQuery.goodsType == 1" label="立减额度:">
-        <el-input
-        disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">元</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item v-else-if="setQuery.goodsType == 2" label="折扣率:">
-        <el-input
-        disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-300"
-        >
-        <template slot="append">%</template>
-        </el-input>
-      </el-form-item>
-      <el-form-item v-else-if="setQuery.goodsType == 3" label="满减规则:">
-        <el-input
-        disabled
-          v-model.number="setQuery.condition"
-          :maxlength="18"
-          class="item-width-150"
-        >
-        </el-input>
-        减
-         <el-input
-         disabled
-          v-model.number="setQuery.discount"
-          :maxlength="18"
-          class="item-width-100"
-        >
-        </el-input>
-      </el-form-item>
-       <el-form-item label="售价:">
-        <el-input
-          v-model="setQuery.realPrice"
-          :maxlength="11"
-          class="item-width-300"
-          disabled
-        ></el-input>
-      </el-form-item>
-       <el-form-item label="库存:">
-        <el-input
-          v-model="setQuery.stockCount"
-          :maxlength="11"
-          disabled
-          class="item-width-300"
-        ></el-input>
-      </el-form-item>
-      <el-form-item label="使用限制时间:">
-       <div class="tabs">
-        <div class="tab" v-for="(item,index) in tabs" :class="[setQuery.useType == index+1?'active':'']" :key="item" @click="handleTab(index+1)">{{item}}</div>
-       </div>
-         <el-date-picker
-         v-show="tab == 2"
-        v-model="date"
-        type="datetimerange"
-        class="item-width-400"
-        :picker-options="pickerOptions"
-        range-separator="至"
-        start-placeholder="开始日期"
-        end-placeholder="结束日期"
-        align="right">
-        </el-date-picker>
-
-          <el-select
-          disabled
-          v-show="tab == 3 || tab == 4"
-        v-model="setQuery.day"
-        multiple
-        clearable
-        filterable
-        class="item-width-400"
-        placeholder="请选择">
-        <el-option
-        v-for="item in nums"
-        :key="item"
-        :label="(nums == 7 ?'每周':'每月') + item + (nums == 31 ?'号':'')"
-        :value="item">
-        </el-option>
-    </el-select>
-      </el-form-item>
-
-      <el-form-item label="商品说明:">
-        <el-input
-        disabled
-          type="textarea"
-          placeholder="请输入商品说明,限100字"
-          v-model="setQuery.goodsDescribe"
-          maxlength="100"
-          :rows="6"
-           class="item-width-300"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item label="商品购买设置:">
-       <el-table
-      :data="setQuery.details"
-      tooltip-effect="dark"
-      border
-      style="width: 600px"
-    >
-      <el-table-column
-        align="center"
-        label="人员类型"
-        prop="setMealId"
-        show-overflow-tooltip
-      >
-      <template slot-scope="scope">
-        {{scope.row.setMealId | filterMeal(that)}}
-      </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="购买设置"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-          <el-checkbox :true-label="1" :false-label="2" v-model="scope.row.buySet">限制购买</el-checkbox>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="限购数量"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-         <el-input
-          v-model="scope.row.buyNum"
-          :maxlength="8"
-          size="small"
-          class="item-width-100"
-        >
-        </el-input>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="优惠价格"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-         <el-input
-          v-model="scope.row.buyPrice"
-          :maxlength="8"
-          size="small"
-          class="item-width-100"
-        >
-        </el-input>
-        </template>
-      </el-table-column>
-    </el-table>
-      </el-form-item>
-
-      <el-form-item label="审核意见:" prop="checkDetail">
-        <el-input
-          type="textarea"
-          placeholder="请输入审核意见"
-          v-model="form.checkDetail"
-          maxlength="400"
-          :rows="6"
-           class="item-width-500"
-          show-word-limit
-        >
-        </el-input>
-      </el-form-item>
-    </el-form>
-
-    <div class="btn-group">
-       <el-button  type="danger" :loading="loading"  @click="save(3)">拒 绝</el-button>
-     <el-button type="primary" :loading="loading"  @click="save(2)">确 定</el-button>
-    </div>
-  </div>
-</template>
-
-<script>
-import { get,getCheckDetail,check,goodsCouponSet } from '@/api/goods'
-import Upload from '@/components/Upload'
-import {getSetMealNameAndId} from '@/api/common'
-export default {
-    components: {
-        Upload,
-    },
-  data() {
-    return {
-      that:this,
-        nums:7,
-        value2:'',
-        tabs:['不限制','自定义时间','每周','每月'],
-        tab:1,
-        date:'',
-        loading:false,
-      setQuery: {
-         "goodsName": "立减10元",
-          "goodsType": "1",
-          "goodsCode": "102",
-          "condition": 0,
-          "discount": 10,
-          "realPrice": 0,
-          "stockCount": 10,
-          "useType": 0,
-          "useStartTime": null,
-          "useEndTime": null,
-          "goodsDescribe": "商品描述",
-          "goodsWeight": 99,
-          "checkUser": null,
-          "checkDetail": "名字不规范、不予通过",
-          "checkTime": "2023-11-03 17:34:25",
-          "details": null
-      },
-      form:{
-          checkDetail:''
-      },
-      rules: {
-        checkDetail: [{ required: true, message: "请输入审核意见", trigger: "blur" }],
-        
-      },
-      options: [
-        {
-          value: "1",
-          label: "立减券",
-        },
-        {
-          value: "2",
-          label: "折扣券",
-        },
-        {
-          value: "3",
-          label: "满减券",
-        },
-      ],
-      mealOption:[],
-
-       pickerOptions: {
-          shortcuts: [{
-            text: '最近一周',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近一个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近三个月',
-            onClick(picker) {
-              const end = new Date();
-              const start = new Date();
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-              picker.$emit('pick', [start, end]);
-            }
-          }]
-        },
-    };
-  },
-  watch: {
-    date(val) {
-      console.log(val);
-      if(val){
-
-      }else{
-
-      }
-    }
-  },
-  filters: {
-    filterMeal: function(val,that) {
-      let msg
-      that.mealOption.map(item=>{
-        if(val == item.value){
-          msg = item.label
-        }else if(val === 0){
-          msg = '无套餐'
-        }
-      })
-      return msg
-    }
-  },
-  methods: {
-    handleTab(val){
-        // this.setQuery.useType = val
-        val == 2?this.nums =7:this.nums =31
-    },
-    save(applyState) {
-      this.$refs.form.validate((v) => {
-        if (v) {
-          this.loading = true
-          this.goodsCouponSet().then(res=>{
-            this.check(applyState)
-          })
-        }
-      });
-    },
-    // 商品详情
-    get(){
-      this.loading = true
-      getCheckDetail({goodsId:this.$route.query.id}).then(res=>{
-      this.loading = false
-          if(res.state == 'Success'){
-            this.setQuery = res.content
-          }
-      })
-    },
-    // 获取套餐列表
-    getSetMealNameAndId(){
-      getSetMealNameAndId().then(res=>{
-        if(res.state == 'Success'){
-          for (const key in res.content) {
-            if (Object.hasOwnProperty.call(res.content, key)) {
-              this.mealOption.push({
-                label:res.content[key],
-                value:key
-              })
-            }
-          }
-          
-        }
-      })
-    },
-    // 商品购买配置
-    goodsCouponSet(){
-      return new Promise((resolve,reject)=>{
-        goodsCouponSet(this.setQuery.details).then(res=>{
-              this.loading = true
-              if(res.state == 'Success'){
-                resolve()
-              }
-            })
-      })
-      
-    },
-    check(applyState){
-      check({ 
-            "applyState": applyState,
-            "checkDetail": this.form.checkDetail,
-            "checkUserId": localStorage.getItem('epid'),
-            "goodsId": this.$route.query.id}).then(res=>{
-              this.loading = false
-              if(res.state == 'Success'){
-                this.$notify({
-                    title: '成功',
-                    message: '操作成功',
-                    type: 'success'
-                  });
-                  this.$router.push('/operationManage/shopManage/index')
-              }
-            })
-    }
-  },
-  created () {
-    this.get();
-    this.getSetMealNameAndId();
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-@import '@/styles/element-variables';
-.auditGoods {
-  padding-bottom: 40px;
-  .btn-group{
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .tabs{
-    display:flex;
-    border-radius: 4px;
-    margin-bottom: 10px;
-    cursor: pointer;
-    .tab{
-        width: 90px;
-        height: 30px;
-        line-height: 30px;
-        text-align: center;
-        border: 1px solid #f1f1f1;
-    }
-  }
-  .active{
-    color: $--color-primary;
-    border: 1px solid $--color-primary!important;
-    background: #d1d3fa;
-        border-radius: 4px;
-
-  }
-}
-</style>

+ 0 - 240
src/views/operationManage/goodsAudit/index.vue

@@ -1,240 +0,0 @@
-
-<template>
-  <div class="goodsAudit app-container">
-    <div class="search">
-      <div>
-        <el-input
-          v-model="query.goodsName"
-          size="small"
-          placeholder="请输入商品名称"
-          class="item-width-200"
-        ></el-input>
-        <el-select
-          v-model="query.state"
-          size="small"
-          class="item-width-200 ml10"
-          placeholder="请选择状态"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-      </div>
-     
-    </div>
-
-    <el-table
-      :data="tableData"
-      tooltip-effect="dark"
-      border
-      v-loading="loading"
-      style="width: 100%"
-    >
-      <el-table-column
-        align="center"
-        label="商品名称"
-        prop="goodsName"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        prop="goodsType"
-        align="center"
-        label="类型"
-        show-overflow-tooltip
-      >
-       <template slot-scope="scope">
-        {{scope.row.goodsType |filterType}}
-       </template>
-      </el-table-column>
-      <el-table-column
-        prop="discountContent"
-        align="center"
-        label="优惠内容"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        prop="shopName"
-        align="center"
-        label="店铺名称"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-      <el-table-column
-        prop="applyState"
-        align="center"
-        label="审核内容"
-        show-overflow-tooltip
-      >
-      <template slot-scope="scope">
-        {{scope.row.applyState|filterState}}
-       </template>
-      </el-table-column>
-      <el-table-column
-        prop="applyTime"
-        align="center"
-        label="提交时间" 
-        show-overflow-tooltip
-      >
-      </el-table-column>
-
-      <el-table-column prop="address" align="center" label="操作">
-        <template slot-scope="scope">
-          <el-button type="text" v-if="scope.row.applyState == 2" size="small" @click="handleDetail(scope.row)">查看</el-button>
-
-          <el-button type="text" v-else size="small" @click="handleAudit(scope.row)">审核</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <div class="page-box">
-      <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        background
-        :current-page="query.page"
-        :page-sizes="[10, 20, 30, 40]"
-        :page-size="query.pageSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="total"
-      >
-      </el-pagination>
-    </div>
-  </div>
-</template>
-  
-  <script>
-import { debounce } from "@/utils/index";
-import {checkList} from '@/api/goods';
-export default {
-  name: "goodsAudit",
-  data() {
-    return {
-      options: [
-        {
-          value: 1,
-          label: "待审核",
-        },
-        // {
-        //   value: 2,
-        //   label: "审核通过",
-        // },
-        {
-          value: 3,
-          label: "已审核",
-        },
-        
-      ],
-      tableData: [],
-      loading: false,
-      query: {
-        state: 1,
-        goodsName: "",
-        currentPage: 1,
-        pageSize: 10,
-      },
-      title: "",
-      total: 0,
-    };
-  },
-  watch: {
-    query: {
-      handler: debounce(function (val) {
-        this.checkList()
-      }),
-      deep: true,
-    },
-  },
-   filters: {
-    filterState: function(value) {
-      // 1-待审核, 2-成功, 3-被驳回
-        if (value == 1) {
-          return '待审核'
-        }
-        else if (value == 2) {
-          return '审核通过'
-        }
-        else if (value == 3) {
-          return '被驳回'
-        }
-    },
-    filterType:function(val){
-      if(val== 1){
-        return '优惠券'
-      }else if(val == 6){
-        return '研学'
-      }else if(val == 5){
-        return '商品'
-      }
-    }
-  },
-  methods: {
-    handleDetail(row){
-      this.$router.push({
-        path:'/operationManage/goodsAudit/auditGoods',
-        query:{
-          id:row.goodsId,
-          title:'审核详情',
-          mode:'detail',
-          shopId:row.shopId
-        }
-      })
-    },
-    // 点击审核
-    handleAudit(row) {
-      this.$router.push({
-        path:'/operationManage/goodsAudit/auditGoods',
-        query:{
-          id:row.goodsId,
-          mode:'edit',
-          shopId:row.shopId
-        }
-      })
-
-    },
-    handleSizeChange(val) {
-      this.query.currentPage = 1;
-      this.query.pageSize = val;
-    this.checkList()
-
-    },
-    handleCurrentChange(val) {
-      this.query.currentPage = val;
-    this.checkList()
-
-    },
-
-    search() {
-      this.query.currentPage = 1;
-    this.checkList()
-
-    },
-    checkList(){
-      this.loading = true
-      checkList(this.query).then(res=>{
-        this.loading = false
-        if(res.state == 'Success'){
-          this.tableData = res.content.records
-          this.total = res.content.total
-        }
-      })
-    }
-  },
-  created() {
-    this.checkList()
-  },
-};
-</script>
-  
-<style lang="scss" scoped>
-.goodsAudit {
-  .search{
-    justify-content: space-between;
-  }
-}
-</style>
-  

+ 22 - 8
src/views/operationManage/goodsManage/goodsDetail.vue

@@ -2,7 +2,7 @@
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-24 14:39:54
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-11-08 11:53:02
+ * @LastEditTime: 2024-12-02 09:11:47
  * @FilePath: \admin-manage\src\views\operationManage\goodsManage\goodsDetail.vue
  * @Description: 
  * 
@@ -69,14 +69,16 @@
             </el-input>
           </el-form-item>
 
-        <template v-if="setQuery.prePlatformType && mode=='audit'">
+        <!-- <template v-if="setQuery.prePlatformType && mode=='audit'"> -->
+        <template v-if="setQuery.prices">
           <el-form-item label="商品操作平台商品信息:">
-            <div class="platformType">{{filterMasterName(setQuery.prePlatformType)}}</div>
+            <div class="platformType">{{filterMasterName(filterCurrentData().platformType)}}</div>
+            <!-- <div class="platformType">{{filterCurrentData()}}</div> -->
           </el-form-item>
            <el-form-item label="售价:" prop="platformPrice">
             <el-input
               type="number"
-              v-model="setQuery.platformPrice"
+              v-model="filterCurrentData().price"
               class="item-width-300"
             >
               <template slot="append">元</template>
@@ -85,7 +87,7 @@
         </template>
 
 
-        <el-form-item v-if="mode=='detail'" label="商品上架平台商品信息:">
+        <!-- <el-form-item v-if="setQuery.prePlatformType && mode=='detail'" label="商品操作平台商品信息:">
           <el-checkbox-group v-model="setQuery.platformType" prop="platformType">
             <div class="flex" v-for="(item,index) in setQuery.prices" :key="index" ><el-checkbox :label="item.platformType">{{filterMasterName(item.platformType) }}</el-checkbox> 
             <el-form-item  >
@@ -95,7 +97,7 @@
             </el-form-item>
             </div>
           </el-checkbox-group>
-        </el-form-item>
+        </el-form-item> -->
 
 
           <el-form-item label="售价:" v-else prop="realPrice">
@@ -431,7 +433,7 @@
       <el-button type="primary" :loading="loading"  @click="save(2)">通过</el-button>
     </div>
     <div class="btn-group" v-else-if="mode == 'edit'">
-      <el-button   :loading="loading"  @click="">取消</el-button>
+      <!-- <el-button   :loading="loading"  @click="">取消</el-button> -->
       <el-button type="primary" :loading="loading"  @click="save()">保存</el-button>
     </div>
   </div>
@@ -633,7 +635,16 @@ export default Vue.extend({
     },
   },
   methods: {
+    filterCurrentData(){
+      let data
+      this.setQuery.prices.forEach(item=>{
+        if(item.platformType == this.$route.query.source){
+          data = item
+        }
+      })
+      return data
 
+    },
     add(index, key) {
       //最外层的index,属性名,内部输入框的index
       let obj;
@@ -721,7 +732,8 @@ export default Vue.extend({
                 "shareId": shareId,
                 "shopId":shopId,
                 "taxRate": 0,
-                "withdrawalRate": 0
+                "withdrawalRate": 0,
+                "platform":this.$route.query.source,
             }
             goodsSet(obj).then((res) => {
               this.loading = false;
@@ -753,6 +765,8 @@ export default Vue.extend({
             "labelId":this.showGoodsLabel == 1? this.labelId:null,
             "checkDetail": this.setQuery.checkDetail,
             "checkUserId": localStorage.getItem('epid'),
+            "platformType": this.$route.query.source,
+
             }).then(res=>{
               this.loading = false
               if(res.state == 'Success'){

+ 4 - 4
src/views/operationManage/goodsManage/homeGoodsSet.vue

@@ -37,13 +37,13 @@
 
     <div class="search">
       <div>
-          <el-button class="add-btn" type="primary" size="small" :disabled="!pids.length" @click="handleBatch(true)"
+          <el-button class="add-btn" type="primary" size="small" :disabled="!pids.length" v-if="btnAuthObj.blacklist" @click="handleBatch(true)"
           >批量加入黑名单</el-button
         >
       </div>
 
       <div>
-        <el-button class="add-btn" size="small" @click="handleSetting"
+        <el-button class="add-btn" size="small" v-if="btnAuthObj.setProduct" @click="handleSetting"
           >产品配置</el-button
         >
         <el-button class="add-btn" size="small" @click="handleList"
@@ -131,7 +131,7 @@
       <el-table-column align="center" label="操作">
         <template slot-scope="scope">
    
-          <el-button type="text" size="small" @click="handleDel(scope.row,true)"
+          <el-button type="text" size="small" v-if="btnAuthObj.blacklist" @click="handleDel(scope.row,true)"
             >加入黑名单</el-button
           >
         </template>
@@ -234,7 +234,7 @@
         <el-table-column align="center" label="操作">
           <template slot-scope="scope">
 
-            <el-button type="text" size="small" @click="handleDel(scope.row,false)"
+            <el-button type="text" size="small" v-if="btnAuthObj.blacklist" @click="handleDel(scope.row,false)"
               >移除黑名单</el-button
             >
           </template>

+ 7 - 6
src/views/operationManage/goodsManage/index.vue

@@ -105,7 +105,7 @@
           fit
         >
        <template slot-scope="scope">
-            <div>{{filterMasterName(scope.row.prePlatformType)}}</div>
+            <div>{{filterMasterName(scope.row.source)}}</div>
           </template>
         </el-table-column>
 
@@ -153,11 +153,11 @@
 
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-           <el-button type="text" size="small" v-if="activeName== '上架商品' || activeName== '审核未通过商品'" @click="handleDetail(scope.row,'detail')">查看</el-button>
-          <el-button type="text" size="small" v-if="activeName== '待审核商品'" @click="handleDetail(scope.row,'audit')">审核</el-button>
-          <el-button type="text" size="small" v-else-if="activeName== '上架商品'" @click="handleDetail(scope.row,'edit')">配置</el-button>
-          <el-button v-if="scope.row.status == 3" type="text" size="small" @click="handleApply(scope.row,4)">下架</el-button>
-          <el-button v-if="scope.row.status == 4" type="text" size="small" @click="handleApply(scope.row,3)">上架</el-button>
+           <el-button type="text" size="small" v-if="(activeName== '上架商品' || activeName== '审核未通过商品')&&btnAuthObj.editGoodType" @click="handleDetail(scope.row,'detail')">查看</el-button>
+          <el-button type="text" size="small" v-if="activeName== '待审核商品'&&btnAuthObj.auditGoodType" @click="handleDetail(scope.row,'audit')">审核</el-button>
+          <el-button type="text" size="small" v-else-if="activeName== '上架商品'&&btnAuthObj.setGoods" @click="handleDetail(scope.row,'edit')">配置</el-button>
+          <el-button v-if="scope.row.status == 3&&btnAuthObj.publishOutGood" type="text" size="small" @click="handleApply(scope.row,4)">下架</el-button>
+          <el-button v-if="scope.row.status == 4&&btnAuthObj.publishGood" type="text" size="small" @click="handleApply(scope.row,3)">上架</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -283,6 +283,7 @@ export default {
         path:'/operationManage/goodsManage/goodsDetail',
         query:{
           id:row.goodsId,
+          source:row.source,
           mode,
           // shopId:row.shopId
         }

+ 12 - 12
src/views/operationManage/goodsManage/labelList.vue

@@ -9,7 +9,7 @@
           placeholder="请输入名称"
           class="item-width-200 "
         ></el-input>
-          <el-select
+          <!-- <el-select
           v-model="platformType"
           multiple
           size="small"
@@ -24,7 +24,7 @@
             :value="item.value"
           >
           </el-option>
-        </el-select>
+        </el-select> -->
          <el-button
         class="ml10"
         type="primary"
@@ -50,7 +50,7 @@
           </el-option>
         </el-select> -->
       </div>
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+      <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addLabel" @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -71,7 +71,7 @@
       >
       </el-table-column>
 
-      <el-table-column
+      <!-- <el-table-column
         prop="accountChildType"
         align="center"
         label="所属平台"
@@ -80,7 +80,7 @@
       <template slot-scope="scope">
         {{filterMasterName(scope.row.platformType )}}
       </template>
-      </el-table-column>
+      </el-table-column> -->
       
       <el-table-column
         prop="createTime"
@@ -92,8 +92,8 @@
 
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editLabel" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delLabel" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -119,12 +119,12 @@
         label-width="130px"
         >
           
-        <el-form-item label="标签名称:" prop="labelName">
+        <!-- <el-form-item label="所属平台:" prop="labelName">
             <el-select
             v-model="setQuery.platformType"
             clearable
             class="item-width-300"
-            placeholder="请选择主商户"
+            placeholder="请选择所属平台"
           >
             <el-option
               v-for="item in masterShopOptions"
@@ -134,7 +134,7 @@
             >
             </el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="标签名称:" prop="labelName">
             <el-input
             v-model="setQuery.labelName"
@@ -167,7 +167,7 @@ export default {
       btnLoading: false,
       platformType:"",
       query: {
-        platformType:null,
+        // platformType:null,
         // labelType: '',
         labelName: "",
         currentPage: 1,
@@ -219,7 +219,7 @@ export default {
      this.setQuery ={
         "id": 0,
         "labelName": "",
-        platformType:"",
+        platformType:1,
 
         // "labelType": 0
       }

+ 2 - 2
src/views/operationManage/goodsManage/productLibrary.vue

@@ -44,7 +44,7 @@
         搜索
       </el-button>
       </div>
-       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+       <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addProduct" @click="handleAdd"
         >添加</el-button
       >
     
@@ -123,7 +123,7 @@
       </el-table-column>
        <el-table-column align="center" label="操作">
           <template slot-scope="scope">
-            <el-button type="text" size="small" @click="handleEdit(scope.row)"
+            <el-button type="text" size="small" v-if="btnAuthObj.editProduct" @click="handleEdit(scope.row)"
               >编辑</el-button
             >
           </template>

+ 3 - 3
src/views/operationManage/goodsType/index.vue

@@ -34,7 +34,7 @@
           </el-option>
         </el-select> -->
       </div>
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+      <el-button class="add-btn" v-if="btnAuthObj.addGoodType" type="primary" size="small"  @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -66,8 +66,8 @@
       <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
           <el-button type="text" size="small" v-if="!$route.query.id" @click="handle(scope.row.id)">查看下级</el-button>
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editGoodType" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delGoodType" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 5 - 4
src/views/operationManage/luckyDrawManage/index.vue

@@ -53,6 +53,7 @@
         <el-button
             type="primary"
             size="small"
+            v-if="btnAuthObj.addLucky"
             @click="handleAdd"
         >
             添加
@@ -129,11 +130,11 @@
 
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleData(scope.row.id)">中奖数据</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.luckyDatalist" @click="handleData(scope.row.id)">中奖数据</el-button>
           <!-- <el-button type="text" size="small" v-if="scope.row.status != '已结束'" @click="handleShare(scope.row)">分享</el-button> -->
-          <el-button type="text" size="small" @click="handleEdit(scope.row,'edit')">编辑</el-button>
-          <el-button type="text" size="small" @click="handleStop(scope.row.id,scope.row.raffleStatus)">{{scope.row.raffleStatus==1?'停止':'开启'}}</el-button>
-          <el-button type="text" size="small" @click="handleRule(scope.row.id)">活动规则</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editLucky" @click="handleEdit(scope.row,'edit')">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.stopLucky" @click="handleStop(scope.row.id,scope.row.raffleStatus)">{{scope.row.raffleStatus==1?'停止':'开启'}}</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.luckyRules" @click="handleRule(scope.row.id)">活动规则</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 3 - 3
src/views/operationManage/marketingManage/index.vue

@@ -21,7 +21,7 @@
         搜索
       </el-button>
       </div>
-       <el-button class="add-btn" type="primary" size="small" @click="handleAdd"
+       <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addActivity" @click="handleAdd"
         >添加</el-button
       >
     </div>
@@ -71,10 +71,10 @@
 
       <el-table-column align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleEdit(scope.row)"
+          <el-button type="text" size="small" v-if="btnAuthObj.editActivity" @click="handleEdit(scope.row)"
             >编辑</el-button
           >
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)"
+          <el-button type="text" size="small" v-if="btnAuthObj.delActivity" @click="handleDel(scope.row.id)"
             >删除</el-button
           >
         </template>

+ 3 - 3
src/views/operationManage/marketingManage/invitePromotion/index.vue

@@ -10,7 +10,7 @@
         </el-button>
       </div>
 
-      <el-button class="add-btn" type="primary" size="small" @click="handleAdd(0)">
+      <el-button class="add-btn" type="primary" size="small" v-if="btnAuthObj.addRules" @click="handleAdd(0)">
         添加
       </el-button>
 
@@ -45,8 +45,8 @@
 
       <el-table-column prop="address" width="180px" fixed="right" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.id)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.editRules" @click="handleEdit(scope.row)">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.delRules" @click="handleDel(scope.row.id)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 2 - 2
src/views/operationManage/orderManage/index.vue

@@ -128,7 +128,7 @@
       </el-table-column>
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.payOrderDetail" @click="handleDetail(scope.row)">详情</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -310,7 +310,7 @@ export default {
         }else{
           return {
             goodsName:goodsModelList[0].goodsInfo.goodsName,
-            price:goodsModelList[0].goodsInfo.realPrice
+            price: goodsModelList[0].goodsInfo.platformPrice?goodsModelList[0].goodsInfo.platformPrice.price: goodsModelList[0].goodsInfo.realPrice
           }
         }
     },

+ 2 - 2
src/views/operationManage/orderManage/list.vue

@@ -194,9 +194,9 @@
       </el-table-column>
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleDetail(scope.row,'detail')">详情</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.goodsOrderDetail" @click="handleDetail(scope.row,'detail')">详情</el-button>
           <!-- 拒绝退款和申请退款都显示 -->
-          <el-button type="text" size="small" v-if="(scope.row.goodsModelList[0].refundLog&&scope.row.goodsModelList[0].refundLog.refund == 'REFUSAL_REFUND')||scope.row.goodsModelList[0].goodsState == 'APPLY_REFUND'&&scope.row.goodsModelList[0].jobFlowMap!='XiaoJu'" @click="handleDetail(scope.row,'refund')">介入处理</el-button>
+          <el-button type="text" size="small" v-if="((scope.row.goodsModelList[0].refundLog&&scope.row.goodsModelList[0].refundLog.refund == 'REFUSAL_REFUND')||scope.row.goodsModelList[0].goodsState == 'APPLY_REFUND')&&scope.row.goodsModelList[0].jobFlowMap!='XiaoJu'&&btnAuthObj.operation" @click="handleDetail(scope.row,'refund')">介入处理</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 2 - 2
src/views/operationManage/orderManage/orderDetail.vue

@@ -2,7 +2,7 @@
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-01 14:21:43
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-10-28 14:27:46
+ * @LastEditTime: 2024-11-11 16:52:07
  * @FilePath: \admin-manage\src\views\operationManage\orderManage\orderDetail.vue
  * @Description:
  *
@@ -631,7 +631,7 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                         icon:row.goodsList[0].goodsInfo.goodsPath,
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
-                        price:row.goodsList[0].goodsInfo.realPrice,
+                        price:row.goodsList[0].goodsInfo.platformPrice?row.goodsList[0].goodsInfo.platformPrice.price:row.goodsList[0].goodsInfo.realPrice,
                         goodsName:row.goodsList[0].goodsInfo.goodsName,
 
                     }

+ 21 - 2
src/views/operationManage/shopManage/index.vue

@@ -69,6 +69,7 @@
         class="add-btn"
         type="primary"
         size="small"
+        v-if="btnAuthObj.addShop"
         @click="handleAdd(0)"
       >
         添加
@@ -119,6 +120,18 @@
         show-overflow-tooltip
       >
       </el-table-column>
+      <el-table-column
+        prop="shopMenuId"
+        align="center"
+        label="所属平台"
+        show-overflow-tooltip
+      >
+      <template slot-scope="scope">
+        <div class="flex">
+          {{ filterMasterName(scope.row.shopPlatformType) }}
+        </div>
+        </template>
+      </el-table-column>
       <el-table-column
         prop="shopId"
         align="center"
@@ -159,6 +172,7 @@
           <el-button
             type="text"
             size="small"
+            v-if="btnAuthObj.shopDetail"
             @click="handleDetail(scope.row.shopId)"
             >店铺资料</el-button
           >
@@ -171,13 +185,14 @@
           <el-button
             type="text"
             size="small"
+            v-if="btnAuthObj.shopCode"
             @click="checkCode(scope.row.shopId,scope.row.shopName)"
             >收款码</el-button
           >
-           <el-button type="text" size="small" @click="handle(scope.row)">{{
+           <el-button type="text" size="small" v-if="btnAuthObj.enableShop" @click="handle(scope.row)">{{
             scope.row.state == 1 ? "禁用" : "启用"
           }}</el-button>
-          <el-button type="text" size="small" @click="handleDel(scope.row.shopId)"
+          <el-button type="text" size="small" v-if="btnAuthObj.delShop" @click="handleDel(scope.row.shopId)"
             >删除</el-button
           >
         </template>
@@ -486,6 +501,10 @@ export default {
 .shopManage {
   .search {
     justify-content: space-between;
+    .flex{
+      display: flex;
+      
+    }
     .add-btn {
       // margin-right: 20px;
     }

+ 80 - 35
src/views/operationManage/shopManage/shopAdd.vue

@@ -2,7 +2,7 @@
  * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
  * @Date: 2023-05-26 16:37:34
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-11-08 16:39:24
+ * @LastEditTime: 2024-11-12 15:37:19
  * @FilePath: \admin-manage\src\views\operationManage\shopManage\shopAdd.vue
  * @Description:
  *
@@ -21,7 +21,7 @@
     <el-tabs v-model="activeName">
     <el-tab-pane label="基本信息" name="1">
       <el-form-item label="商铺主体:" prop="shopMainId">
-        <el-select v-model="setQuery.shopMainId" :disabled="mode != 'add'" size="small" filterable class="item-width-300" placeholder="请搜索选择店铺主体">
+        <el-select v-model="setQuery.shopMainId" @change="changeMain" :disabled="mode != 'add'" size="small" filterable class="item-width-300" placeholder="请搜索选择店铺主体">
           <el-option
             v-for="item in shopMainOptions"
             :key="item.value"
@@ -213,7 +213,7 @@
        <el-form-item label="绑定所属平台及分账规则" prop="platformType">
 
         <el-checkbox-group v-model="setQuery.platformType" prop="platformType">
-            <div class="flex" v-for="(item,index) in masterShopOptions" :key="index" >
+            <div class="flex" v-for="(item,index) in shopOptions" :key="index" >
               <el-checkbox :label="item.value">{{item.label}}</el-checkbox> 
             <el-form-item label="分账规则:" v-if="setQuery.platformType.includes(item.value)" :prop="'shopInfos.' + index + '.shareId'" :rules="{required: true, message: '请选择分账规则', trigger: 'change'}">
               <el-select
@@ -317,6 +317,7 @@ import {getRuleList} from '@/api/rule'
 import {getData} from '@/api/goods'
 import {finishComplexList} from '@/api/payment'
 import {getSearchList,uidToAddress} from '@/api/common'
+import {accountDetail } from "@/api/user";
 import { debounce } from "@/utils/index";
 export default {
   components: {
@@ -336,6 +337,7 @@ export default {
         }
       };
     return {
+      shopOptions:[],
       checkList:[],
       activeName:"1",
       map:null,
@@ -488,17 +490,18 @@ export default {
     // }),
     "setQuery.shopMainId":function(val){
       if(val){
+        this.accountDetail(val)
         this.finishComplexList()
       }else{
           this.authOptions = []
 
       }
     },
-    'setQuery.authAccount'(val){
-        if(!val){
-          this.setQuery.state = 2
-        }
-    }
+    // 'setQuery.authAccount'(val){
+    //     if(!val){
+    //       this.setQuery.state = 2
+    //     }
+    // }
   },
   computed: {
     isDisabled(val){
@@ -520,6 +523,9 @@ export default {
     },
   },
   methods: {
+    changeMain(val){
+      this.setQuery.shopInfos = []
+    },
     
     // 选择地址
     selectAddress(val){
@@ -668,24 +674,25 @@ export default {
           this.setQuery.serviceCate = this.setQuery.serviceCate.split('/').map(item=>{return item = item.split(',').map(item=> Number(item))})
           this.setQuery.shopMenuId = this.setQuery.shopMenuId.split(',').map(item=> Number(item))
           this.setQuery.platformType = this.setQuery.platformType.split(',').map(item=> Number(item))
-          let shopInfos = JSON.parse(JSON.stringify(this.setQuery.shopInfos))
-          this.setQuery.shopInfos=[]
-          this.masterShopOptions.map(item=>{
-            this.setQuery.shopInfos.push({
-              shareId:'',
-              authAccount:'',
-              platformType:item.value
-            })
-          })
-
-          this.setQuery.shopInfos.map(item=>{
-              shopInfos.map(i=>{
-                if(item.platformType == i.platformType){
-                  item.shareId = i.shareId
-                  item.authAccount = i.authAccount
-                }
-            })
-          })
+          // let shopInfos = JSON.parse(JSON.stringify(this.setQuery.shopInfos))
+          // this.setQuery.shopInfos=[]
+
+          // this.shopOptions.map(item=>{
+          //   this.setQuery.shopInfos.push({
+          //     shareId:'',
+          //     authAccount:'',
+          //     platformType:item.value
+          //   })
+          // })
+
+          // this.setQuery.shopInfos.map(item=>{
+          //     shopInfos.map(i=>{
+          //       if(item.platformType == i.platformType){
+          //         item.shareId = i.shareId
+          //         item.authAccount = i.authAccount
+          //       }
+          //   })
+          // })
 
         }
       });
@@ -850,17 +857,55 @@ export default {
           this.authOptions = list
         }
       })
-    }
+    },
+    accountDetail(accountId) {
+      return new Promise((resolve, reject) => {
+          accountDetail({accountId}).then((res) => {
+            if (res.state == "Success") {
+              if(res.content.platformShares){
+                this.shopOptions = []
+                JSON.parse(res.content.platformShares).map((item) => {
+                  this.shopOptions.push({
+                    label: this.filterMasterName(item.platformType),
+                    value: Number(item.platformType) 
+                  })
+                })
+
+                let shopInfos = JSON.parse(JSON.stringify(this.setQuery.shopInfos))
+                this.setQuery.shopInfos=[]
+
+                this.shopOptions.map(item=>{
+                  this.setQuery.shopInfos.push({
+                    shareId:'',
+                    authAccount:'',
+                    platformType:item.value
+                  })
+                })
+
+                this.setQuery.shopInfos.map(item=>{
+                    shopInfos.map(i=>{
+                      if(item.platformType == i.platformType){
+                        item.shareId = i.shareId
+                        item.authAccount = i.authAccount
+                      }
+                  })
+                })
+              }
+              resolve()
+            }
+          });
+       })
+    },
   },
   created() {
-    this.setQuery.shopInfos=[]
-    this.masterShopOptions.map(item=>{
-      this.setQuery.shopInfos.push({
-        shareId:'',
-        authAccount:'',
-        platformType:item.value
-      })
-    })
+    // this.setQuery.shopInfos=[]
+    // this.masterShopOptions.map(item=>{
+    //   this.setQuery.shopInfos.push({
+    //     shareId:'',
+    //     authAccount:'',
+    //     platformType:item.value
+    //   })
+    // })
     // this.finishComplexList()
     this.getData()
     this.getRuleList()

+ 5 - 4
src/views/operationManage/templateManage/index.vue

@@ -23,6 +23,7 @@
         <el-button
             type="primary"
             size="small"
+            v-if="btnAuthObj.addTemplate"
             @click="handleAdd"
         >
             添加
@@ -57,10 +58,10 @@
       
        <el-table-column prop="address" align="center" label="操作">
         <template slot-scope="scope">
-          <el-button type="text" size="small" @click="handleDetail(scope.row.id,'edit')">编辑</el-button>
-          <el-button type="text" size="small" @click="handleCopy(scope.row.id)">复制</el-button>
-          <el-button type="text" size="small" @click="handleOperate(scope.row.id,scope.row.status == 1?2:1)">{{scope.row.status == 1?'停用':'启用'}}</el-button>
-          <el-button type="text" class="red" size="small" @click="handleOperate(scope.row.id,3)">删除</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.templateDetail" @click="handleDetail(scope.row.id,'edit')">编辑</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.copyTemplate" @click="handleCopy(scope.row.id)">复制</el-button>
+          <el-button type="text" size="small" v-if="btnAuthObj.stopTemplate" @click="handleOperate(scope.row.id,scope.row.status == 1?2:1)">{{scope.row.status == 1?'停用':'启用'}}</el-button>
+          <el-button type="text" class="red" size="small" v-if="btnAuthObj.delTemplate" @click="handleOperate(scope.row.id,3)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>

+ 1 - 1
yarn.lock

@@ -459,7 +459,7 @@
 
 "@babel/plugin-syntax-dynamic-import@^7.8.3":
   "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ=="
-  "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"
+  "resolved" "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"
   "version" "7.8.3"
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"