dct 6 tháng trước cách đây
mục cha
commit
cca48f7210

+ 17 - 15
src/components/GlobalComponents/OrderDetail.vue

@@ -569,35 +569,37 @@ export default {
 
       if (this.orderData.ticketList) {
         this.orderData.ticketList.forEach(ticket => {
-          if (ticket.ticketCheckScenicList?.length) {
-            ticket.ticketCheckScenicList.forEach((scenic) => {
+          const { ticketNo, ticketTypeName, price, ticketCheckScenicList, ticketCheckLogList, ticketSecondPrintLogList } = ticket
+
+          if (ticketCheckScenicList && ticketCheckScenicList.length) {
+            ticketCheckScenicList.forEach((scenic) => {
               this.orderData.ticketCheckScenicList.push({
                 ...scenic,
-                ticketNo: ticket.ticketNo,
-                ticketTypeName: ticket.ticketTypeName,
-                price: ticket.price
+                ticketNo,
+                ticketTypeName,
+                price
               })
             })
           }
 
-          if (ticket.ticketCheckLogList?.length) {
-            ticket.ticketCheckLogList.forEach((log) => {
+          if (ticketCheckLogList && ticketCheckLogList.length) {
+            ticketCheckLogList.forEach((log) => {
               this.orderData.ticketCheckLogList.push({
                 ...log,
-                ticketNo: ticket.ticketNo,
-                ticketTypeName: ticket.ticketTypeName,
-                price: ticket.price
+                ticketNo,
+                ticketTypeName,
+                price
               })
             })
           }
 
-          if (ticket.ticketSecondPrintLogList?.length) {
-            ticket.ticketSecondPrintLogList.forEach((log) => {
+          if (ticketSecondPrintLogList && ticketSecondPrintLogList.length) {
+            ticketSecondPrintLogList.forEach((log) => {
               this.orderData.ticketSecondPrintLogList.push({
                 ...log,
-                ticketNo: ticket.ticketNo,
-                ticketTypeName: ticket.ticketTypeName,
-                price: ticket.price
+                ticketNo,
+                ticketTypeName,
+                price
               })
             })
           }

+ 2 - 2
src/components/Layout/components/Sidebar/index.vue

@@ -11,7 +11,7 @@
         text-color="#fff"
         active-text-color="#fff"
       >
-        <sidebar-item :routes="permission_routers" />
+        <sidebar-item :routes="permissionRouters" />
       </el-menu>
     </el-scrollbar>
   </div>
@@ -25,7 +25,7 @@ export default {
   components: { SidebarItem },
   computed: {
     ...mapGetters([
-      'permission_routers',
+      'permissionRouters',
       'sidebar',
       'appStatus'
     ]),

+ 2 - 2
src/components/Layout/components/project/Red/layout-comp/Sidebar/index.vue

@@ -11,7 +11,7 @@
         text-color="#fff"
         active-text-color="#fff"
       >
-        <sidebar-item :routes="permission_routers" />
+        <sidebar-item :routes="permissionRouters" />
       </el-menu>
     </el-scrollbar>
   </div>
@@ -25,7 +25,7 @@ export default {
   components: { SidebarItem },
   computed: {
     ...mapGetters([
-      'permission_routers',
+      'permissionRouters',
       'sidebar',
       'appStatus'
     ]),

+ 1 - 1
src/globalData.vue

@@ -42,7 +42,7 @@ export default {
     // 获取景点列表
     this.$store.dispatch('getScenicList')
     // 获取账号信息
-    this.$store.dispatch('getAccount')
+    // this.$store.dispatch('getAccount')
     // 获取场次信息
     // this.$store.dispatch('getBatchConfigList')
   },

+ 4 - 2
src/pages/login/index.vue

@@ -151,8 +151,10 @@ export default {
       appName: this.$localStore.get('appName') || process.env.VUE_APP_PROJECT_NAME,
       loginForm: {
         projectName: '',
-        userName: 'admin',
-        password: 'Aa123456',
+        // userName: 'admin',
+        // password: 'Aa123456',
+        userName: 'admin2',
+        password: '1234.Abcd',
         authcode: ''
       },
       loginRules: {

+ 18 - 21
src/permission.js

@@ -17,32 +17,29 @@ router.beforeEach((to, from, next) => {
       next({ path: '/index/dashboard' })
       NProgress.done()
     } else {
+      // if (!store.getters.addRouters.length) {
+      //   store.dispatch('GenerateRoutes', {}).then(() => { // 根据roles权限生成可访问的路由表
+      //     router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+      //     next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+      //   })
+      // } else {
+      //   next()
+      // }
       if (!store.getters.addRouters.length) {
-        store.dispatch('GenerateRoutes', {}).then(() => { // 根据roles权限生成可访问的路由表
-          router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
-          next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+        store.dispatch('GetInfo').then(res => {
+          store.dispatch('GenerateRoutes', res.data).then(() => { // 根据roles权限生成可访问的路由表
+            router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+            next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+          }).catch((err) => {
+            store.dispatch('LogOut').then(() => {
+              Message.error(err || 'Verification failed, please login again')
+              next({ path: '/login' })
+            })
+          })
         })
       } else {
         next()
       }
-      // if (store.getters.menuList.length === 0) {
-      //   store.dispatch('GetInfo').then(res => {
-      //     debugger
-      //     const { admin } = res.data || {}
-      //     localStore.set('userName', admin.loginName)
-      //     store.dispatch('GenerateRoutes', admin).then(() => { // 根据roles权限生成可访问的路由表
-      //       router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
-      //       next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
-      //     }).catch((err) => {
-      //       store.dispatch('LogOut').then(() => {
-      //         Message.error(err || 'Verification failed, please login again')
-      //         next({ path: '/login' })
-      //       })
-      //     })
-      //   })
-      // } else {
-      //   next()
-      // }
     }
   } else {
     if (whiteList.indexOf(to.path) > -1) {

+ 2 - 2
src/router/index.js

@@ -142,13 +142,13 @@ let routerMap = [
         path: 'printManage',
         name: 'printManage',
         component: require('@/pages/systemSetting/printManage').default,
-        meta: { title: '打印模板配置', permissionName: 'system-manage:ticktPrintTemplate-manage' }
+        meta: { title: '打印模板配置', permissionName: 'ticket-manage:ticktPrintTemplate-manage' }
       },
       {
         path: 'receiptManage',
         name: 'receiptManage',
         component: require('@/pages/systemSetting/smallTicket').default,
-        meta: { title: '小票配置', permissionName: 'system-manage:ticketReceiptTemplate-manage' }
+        meta: { title: '小票配置', permissionName: 'ticket-manage:ticketReceiptTemplate-manage' }
       },
       {
         path: 'ticketStorage',

+ 1 - 1
src/store/getters.js

@@ -9,7 +9,7 @@ const getters = {
   menuList: state => state.user.menuList,
   visitedViews: state => state.tagsView.visitedViews,
   cachedViews: state => state.tagsView.cachedViews,
-  permission_routers: state => state.permission.routers,
+  permissionRouters: state => state.permission.routers,
   addRouters: state => state.permission.addRouters,
   payChannelOptions: state => {
     let payChannels = state.app.payChannelOptions

+ 20 - 33
src/store/modules/permission.js

@@ -6,34 +6,33 @@ import { asyncRouterMap, constantRouterMap } from '@/router'
  * @param 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
@@ -61,26 +60,14 @@ const permission = {
   actions: {
     GenerateRoutes ({ commit }, data) {
       return new Promise(resolve => {
-        // const extraInfo = data
+        const { roleList, resourceList, admin } = data
+        const { loginName } = admin || {}
         let accessedRouters = asyncRouterMap
-        // if (extraInfo.loginName === 'admin') {
-        //   accessedRouters = asyncRouterMap
-        // } else {
-        //   accessedRouters = filterAsyncRouter(asyncRouterMap, extraInfo.menuList, extraInfo.permissionList)
-        //   if (extraInfo.scenicName === '仙门山') { // 仙门山 菜单文案定制
-        //     const agencyMenu = accessedRouters.find(v => v.name === '旅行社管理')
-        //     if (agencyMenu) { // 配有旅行社管理的一级菜单
-        //       agencyMenu.children.forEach(v => {
-        //         if (v.name === 'guideQuery') {
-        //           v.meta.title = '业务管理'
-        //         }
-        //         if (v.name === 'guideStatistic') {
-        //           v.meta.title = '业务售票统计'
-        //         }
-        //       })
-        //     }
-        //   }
-        // }
+        if (loginName === 'admin') {
+          accessedRouters = asyncRouterMap
+        } else {
+          accessedRouters = filterAsyncRouter(asyncRouterMap, roleList, resourceList)
+        }
         commit('SET_ROUTERS', accessedRouters)
         resolve()
       })

+ 12 - 10
src/store/modules/user.js

@@ -35,7 +35,7 @@ const user = {
     SET_MENU_LIST: (state, menuList) => {
       state.menuList = menuList
     },
-    SET_PERMISSIONLIST: (state, permissionList) => {
+    SET_PERMISSION_LIST: (state, permissionList) => {
       state.permissionList = permissionList
     },
     SET_SALES_LIST: (state, data) => {
@@ -60,15 +60,16 @@ const user = {
           if (data.code === '200') {
             console.log('登录成功', data)
             const { token, admin, resourceList, roleList } = data.data
+            const { id, loginName } = admin || {}
             commit('SET_TOKEN', token)
             // 设置ID
-            commit('SET_ID', admin?.id)
+            commit('SET_ID', id)
             // 设置用户名
-            commit('SET_NAME', admin?.loginName)
+            commit('SET_NAME', loginName)
             // 设置菜单
             commit('SET_MENU_LIST', resourceList || [])
             // 设置按钮权限
-            commit('SET_PERMISSIONLIST', roleList || [])
+            commit('SET_PERMISSION_LIST', roleList || [])
             setToken(token)
             localStore.set('token', token)
             resolve(data.data)
@@ -85,17 +86,18 @@ const user = {
     GetInfo ({ commit, state }) {
       return new Promise((resolve, reject) => {
         getAuthorizationInfo().then(res => {
-          const { admin } = res.data || {}
+          const { admin, roleList, resourceList } = res.data || {}
+          const { id, loginName } = admin || {}
           // 设置ID
-          commit('SET_ID', admin?.id)
+          commit('SET_ID', id || '')
           // 设置用户名
-          commit('SET_NAME', admin?.loginName)
+          commit('SET_NAME', loginName || '')
           // 设置菜单
-          commit('SET_MENU_LIST', admin?.menuList || [])
+          commit('SET_MENU_LIST', resourceList || [])
           // 设置按钮权限
-          commit('SET_PERMISSIONLIST', admin?.permissionList || [])
+          commit('SET_PERMISSION_LIST', roleList || [])
 
-          log.info(`【${admin?.loginName}】 登录成功`)
+          log.info(`【${loginName}】 登录成功`)
           // let permissions = _(info.permissionList)
           //   .groupBy(i => {
           //     return i.split(':')[0]