dct 4 месяцев назад
Родитель
Сommit
7450492cc3
3 измененных файлов с 48 добавлено и 52 удалено
  1. 24 24
      src/router/index.js
  2. 23 27
      src/store/modules/permission.js
  3. 1 1
      src/views/systemSetting/account.vue

+ 24 - 24
src/router/index.js

@@ -91,7 +91,7 @@ let routerMap = [
     path: '/goodsCenter',
     component: Layout,
     name: '产品中心',
-    meta: { title: '产品中心', icon: 'ticket-manage' },
+    meta: { title: '产品中心', icon: 'product-center' },
     redirect: 'noredirect',
     alwaysShow: true,
     children: [
@@ -99,37 +99,37 @@ let routerMap = [
       //   path: 'goodsList',
       //   name: 'goodsList',
       //   component: () => import('@/views/goodsCenter/goodsList'),
-      //   meta: { title: '票种管理', permissionName: 'product:goods' }
+      //   meta: { title: '票种管理', permissionName: 'product-center:goods' }
       // },
       {
         path: 'otaList',
         name: 'otaList',
         component: () => import('@/views/goodsCenter/otaList'),
-        meta: { title: '分销商管理', permissionName: 'product:ota' }
+        meta: { title: '分销商管理', permissionName: 'product-center:ota-source-manage' }
       },
       {
         path: 'priceList',
         name: 'priceList',
         component: () => import('@/views/goodsCenter/priceList'),
-        meta: { title: '产品管理', permissionName: 'product:pricecode' }
+        meta: { title: '产品管理', permissionName: 'product-center:product-manage' }
       }
       // {
       //   path: 'invoiceList',
       //   name: 'invoiceList',
       //   component: () => import('@/views/goodsCenter/invoiceList'),
-      //   meta: { title: '开票管理', permissionName: 'product:invoice' }
+      //   meta: { title: '开票管理', permissionName: 'product-center:invoice' }
       // },
       // {
       //   path: 'invoiceChannelList',
       //   name: 'invoiceChannelList',
       //   component: () => import('@/views/goodsCenter/invoiceChannelList'),
-      //   meta: { title: '发票渠道管理', permissionName: 'product:invoiceChannelList' }
+      //   meta: { title: '发票渠道管理', permissionName: 'product-center:invoiceChannelList' }
       // },
       // {
       //   path: 'invoiceSellerList',
       //   name: 'invoiceSellerList',
       //   component: () => import('@/views/goodsCenter/invoiceSellerList'),
-      //   meta: { title: '发票销售方管理', permissionName: 'product:invoiceSellerList' }
+      //   meta: { title: '发票销售方管理', permissionName: 'product-center:invoiceSellerList' }
       // }
     ]
   },
@@ -137,7 +137,7 @@ let routerMap = [
     path: '/queryReport',
     component: Layout,
     name: '数据中心',
-    meta: { title: '数据中心', icon: 'statistics-center' },
+    meta: { title: '数据中心', icon: 'stat-center' },
     redirect: 'noredirect',
     alwaysShow: true,
     children: [
@@ -145,73 +145,73 @@ let routerMap = [
       //   path: 'refundAudit',
       //   name: 'refundAudit',
       //   component: () => import('@/views/queryReport/refundAudit'),
-      //   meta: { title: '退票审核', permissionName: 'stats:cancel_audit' }
+      //   meta: { title: '退票审核', permissionName: 'stat-center:cancel_audit' }
       // },
       {
         path: 'otaPaymentAmountLog',
         name: 'otaPaymentAmountLog',
         component: () => import('@/views/queryReport/otaPaymentAmountLog'),
-        meta: { title: '分销商消费记录', permissionName: 'stats:ota_money_record' }
+        meta: { title: '分销商消费记录', permissionName: 'stat-center:ota-source-consume-list' }
       },
       {
         path: 'orderList',
         name: 'orderList',
         component: () => import('@/views/queryReport/orderList'),
-        meta: { title: '售票查询', permissionName: 'stats:order_query' }
+        meta: { title: '售票查询', permissionName: 'stat-center:sale-list' }
       },
       {
         path: 'salesReport',
         name: 'salesReport',
         component: () => import('@/views/queryReport/salesReport'),
-        meta: { title: '售票统计', permissionName: 'stats:order_stats' }
+        meta: { title: '售票统计', permissionName: 'stat-center:sale-stat' }
       },
       // {
       //   path: 'orderReconciliation',
       //   name: 'orderReconciliation',
       //   component: () => import('@/views/queryReport/orderReconciliation'),
-      //   meta: { title: '销售明细', permissionName: 'stats:order_day_stats' }
+      //   meta: { title: '销售明细', permissionName: 'stat-center:order_day_stats' }
       // },
       // {
       //   path: 'checkQuery',
       //   name: 'checkQuery',
       //   component: () => import('@/views/queryReport/checkQuery'),
-      //   meta: { title: '检票查询', permissionName: 'stats:check_query' }
+      //   meta: { title: '检票查询', permissionName: 'stat-center:check_query' }
       // },
       // {
       //   path: 'checkReport',
       //   name: 'checkReport',
       //   component: () => import('@/views/queryReport/checkReport'),
-      //   meta: { title: '检票统计', permissionName: 'stats:check_stats' }
+      //   meta: { title: '检票统计', permissionName: 'stat-center:check_stats' }
       // },
       {
         path: 'checkAndPrintReport',
         name: 'checkAndPrintReport',
         component: () => import('@/views/queryReport/checkAndPrintReport'),
-        meta: { title: '核销统计', permissionName: 'stats:write_off_stats' }
+        meta: { title: '核销统计', permissionName: 'stat-center:check-stat' }
       },
       // {
       //   path: 'checkAndPrintQuery',
       //   name: 'checkAndPrintQuery',
       //   component: () => import('@/views/queryReport/checkAndPrintQuery'),
-      //   meta: { title: '核销查询', permissionName: 'stats:write_off_query' }
+      //   meta: { title: '核销查询', permissionName: 'stat-center:write_off_query' }
       // },
       {
         path: 'cancelReport',
         name: 'cancelReport',
         component: () => import('@/views/queryReport/cancelReport'),
-        meta: { title: '退票统计', permissionName: 'stats:cancelReport' }
+        meta: { title: '退票统计', permissionName: 'stat-center:cancel-stat' }
       },
       {
         path: 'reportExport',
         name: 'reportExport',
         component: () => import('@/views/queryReport/reportExport'),
-        meta: { title: '报表导出', permissionName: 'stats:report' }
+        meta: { title: '报表导出', permissionName: 'stat-center:report-list' }
       }
       // {
       //   path: 'chartStatistics',
       //   name: 'chartStatistics',
       //   component: () => import('@/views/queryReport/chartStatistics'),
-      //   meta: { title: '图表统计', permissionName: 'stats:chart' }
+      //   meta: { title: '图表统计', permissionName: 'stat-center:chart' }
       // }
     ]
   },
@@ -227,25 +227,25 @@ let routerMap = [
         path: 'account',
         name: 'account',
         component: () => import('@/views/systemSetting/account'),
-        meta: { title: '账号管理', permissionName: 'system_setting:users' }
+        meta: { title: '账号管理', permissionName: 'system-manage:admin-manage' }
       },
       {
         path: 'role',
         name: 'role',
         component: () => import('@/views/systemSetting/role'),
-        meta: { title: '角色管理', permissionName: 'system_setting:roles' }
+        meta: { title: '角色管理', permissionName: 'system-manage:role-manage' }
       },
       // {
       //   path: 'project',
       //   name: 'project',
       //   component: () => import('@/views/systemSetting/project'),
-      //   meta: { title: '景区管理', permissionName: 'system_setting:users' }
+      //   meta: { title: '景区管理', permissionName: 'system-manage:users' }
       // },
       {
         path: 'systemConfig',
         name: 'systemConfig',
         component: () => import('@/views/systemSetting/systemConfig'),
-        meta: { title: '系统设置', permissionName: '' }
+        meta: { title: '系统设置', permissionName: 'system-manage:system-set' }
       }
     ]
   },

+ 23 - 27
src/store/modules/permission.js

@@ -5,38 +5,34 @@ import { asyncRouterMap, constantRouterMap } from '@/router'
  * @param asyncRouterMap
  * @param menuList
  */
-export function filterAsyncRouter (asyncRouterMap, menuList, permissionList) {
-  if (!permissionList || permissionList.length === 0) {
-    return asyncRouterMap
-  }
-  // menuList 暂时不使用
+function filterAsyncRouter (asyncRouterMap, menuList, permissionList) {
+  const permissionCodes = permissionList.map(i => i.code)
+  // menuList 暂时未用到
   let accessedRouters = asyncRouterMap.map(route => {
     if (route.meta && route.meta.permissionName.length > 0) {
       // 取父级菜单与后台权限列表交集
-      let intersection = route.meta.permissionName.filter(i => {
-        return permissionList.indexOf(i) !== -1 || i === 'all'
-      })
-
+      const routePermissions = route.meta.permissionName.join(',')
+      const intersection = permissionCodes.find((code) => routePermissions.indexOf(code) > -1) || routePermissions.indexOf('all') > -1
       // 有交集说明需显示父级
-      if (intersection.length > 0) {
+      if (intersection) {
         // 过滤子路由
         route.children = route.children.filter(i => {
           if (i.meta && i.meta.permissionName) {
-            return permissionList.indexOf(i.meta.permissionName) !== -1
+            return permissionCodes.find((code) => i.meta.permissionName.indexOf(code) > -1)
           } else {
             return true
           }
         })
 
         // 设置子页面权限列表
-        route.children.forEach(item => {
-          let list = permissionList.filter(i => {
-            return i.indexOf(item.meta.permissionName) !== -1
-          })
-          item.meta.permissionList = list.map(i => {
-            return i.split(':')[1]
-          })
-        })
+        // route.children.forEach(item => {
+        //   let list = permissionList.filter(i => {
+        //     return !~i.code.indexOf(item.meta.permissionName)
+        //   })
+        //   item.meta.permissionList = list.map(i => {
+        //     return i.split(':')[1]
+        //   })
+        // })
         return route
       } else {
         return null
@@ -64,14 +60,14 @@ const permission = {
   actions: {
     GenerateRoutes ({ commit }, data) {
       return new Promise(resolve => {
-        // const extraInfo = data
-        let accessedRouters
-        accessedRouters = asyncRouterMap
-        // if (extraInfo.admin.loginName === 'admin') {
-        //   accessedRouters = asyncRouterMap
-        // } else {
-        //   accessedRouters = filterAsyncRouter(asyncRouterMap, extraInfo.resourceList, extraInfo.roleList)
-        // }
+        const { roleList, resourceList, admin } = data
+        const { loginName } = admin || {}
+        let accessedRouters = asyncRouterMap
+        if (loginName === 'admin') {
+          accessedRouters = asyncRouterMap
+        } else {
+          accessedRouters = filterAsyncRouter(asyncRouterMap, roleList, resourceList)
+        }
         commit('SET_ROUTERS', accessedRouters)
         resolve()
       })

+ 1 - 1
src/views/systemSetting/account.vue

@@ -53,7 +53,7 @@
           label="权限列表">
           <template slot-scope="scope">
             <el-tag
-              v-for="(item,index) in scope.row.permissionList"
+              v-for="(item,index) in scope.row.resourceList"
               :key="index">
               {{ item.name }}
             </el-tag>