diff --git a/src/utils/routerList.js b/src/utils/routerList.js index 2ae0448..3d6573b 100644 --- a/src/utils/routerList.js +++ b/src/utils/routerList.js @@ -2,13 +2,14 @@ import Layout from '@/layout' import { getInfo } from '../store/modules/user.js' -export function getRoutes() { - +export function getRoutes(permissions) { let userInfo = {} if (localStorage.userinfo) { userInfo = JSON.parse(localStorage.userinfo) } - console.log(userInfo) + var permissions = userInfo.permissions || []; + + let constantRoutes1 = [] if (userInfo.UserId == 1) { constantRoutes1 = [{ @@ -298,7 +299,6 @@ export function getRoutes() { import ('@/views/resume/femalestaff.vue'), hidden: true }, - { path: '/live', name: '直播', @@ -329,167 +329,61 @@ export function getRoutes() { }] }, - // { - // path: '/example', - // component: Layout, - // redirect: '/example/table', - // name: 'Example', - // meta: { - // title: '题库管理', - // icon: 'el-icon-s-help' - // }, - // children: [{ - // path: 'QuestionBank', - // name: 'Table', - // component: () => import('@/views/QuestionBank/index'), - // meta: { - // title: '题库', - // icon: 'table' - // } - // }] - // }, { - path: '/moduleIndex', - component: Layout, - redirect: '/module/index', - name: 'module', - meta: { - title: '练习', - icon: 'el-icon-s-help' - }, - children: [{ - path: 'recharge', - name: 'recharge', - component: () => - import ('@/views/module/index'), - meta: { - title: '练习', - icon: 'el-icon-s-operation' - } - }, - { - path: 'index', - name: 'index', - component: () => - import ('@/views/TestPaper/index'), - hidden: true, - meta: { - title: '试卷维护', - icon: 'table' - } - }, - ] - }, - { - path: '/realQuestion', + path: '/example', component: Layout, - redirect: '/module/realQuestion', - name: 'realQuestion', + redirect: '/example/table', + name: 'Example', meta: { - title: '历年真题', + title: '题库管理', icon: 'el-icon-s-help' }, children: [{ - path: 'recharge', - name: 'recharge', + path: 'QuestionBank', + name: 'Table', component: () => - import ('@/views/module/realQuestion'), + import ('@/views/QuestionBank/index'), meta: { - title: '历年真题', - icon: 'el-icon-s-management' + title: '题库', + icon: 'table' } }] }, + { - path: '/simulation', + path: '/views', component: Layout, - redirect: '/module/simulation', - name: 'module', + redirect: '/views/TestPaper', + name: 'TestPaper', meta: { - title: '模拟试卷', + title: '试卷管理', icon: 'el-icon-s-help' }, children: [{ - path: 'recharge', - name: 'recharge', - component: () => - import ('@/views/module/simulation'), - meta: { - title: '模拟试卷', - icon: 'el-icon-s-promotion' - } - }] - }, - - // { - // path: '/views', - // component: Layout, - // redirect: '/views/TestPaper', - // name: 'TestPaper', - // meta: { - // title: '试卷管理', - // icon: 'el-icon-s-help' - // }, - // children: [ - // { - // path: 'TestPaperList', - // name: 'Table', - // component: () => import('@/views/TestPaper/TestPaperList'), - // meta: { - // title: '试卷列表', - // icon: 'table' - // } - // }, - // { - // path: 'index', - // name: 'index', - // component: () => import('@/views/TestPaper/index'), - // hidden: true, - // meta: { - // title: '试卷维护', - // icon: 'table' - // } - // }, - // // { - // // path: 'ManualTestPaper', - // // name: 'Table', - // // component: () => import('@/views/TestPaper/ManualTestPaper'), - // // meta: { - // // title: '组卷', - // // icon: 'table' - // // } - // // }, + path: 'TestPaperList', + name: 'Table', + component: () => + import ('@/views/TestPaper/TestPaperList'), + meta: { + title: '试卷列表', + icon: 'table' + } + }, + { + path: 'ManualTestPaper', + name: 'Table', + component: () => + import ('@/views/TestPaper/ManualTestPaper'), + meta: { + title: '组卷', + icon: 'table' + } + }, - // ] - // }, - { - path: '/order', - component: Layout, - redirect: '/', - name: 'order', - meta: { - title: '订单管理', - icon: 'el-icon-s-marketing' - }, - children: [{ - path: 'recharge', - name: 'recharge', - component: () => - import ('@/views/order/rechargeList'), - meta: { - title: '充值记录', - } - }, { - path: 'shop', - name: 'shop', - component: () => - import ('@/views/order/shopList'), - meta: { - title: '购买记录', - } - }] + ] }, { + code: '用户管理', path: '/user', component: Layout, redirect: '/', @@ -499,15 +393,48 @@ export function getRoutes() { icon: 'el-icon-s-help' }, children: [{ + code: '人才库', path: 'user', name: 'User', component: () => import ('@/views/user/userlist'), meta: { - title: '普通用户列表', + title: '人才库', } }, + { + code: '面试时间表', + path: 'interviewSchedule', + name: 'interviewSchedule', + component: () => + import ('@/views/user/InterviewSchedule'), + meta: { + title: '面试时间表', + } + }, + + { + code: 'importuser', + path: 'importuser', + name: 'importuser', + component: () => + import ('@/views/user/picuserimport'), + meta: { + title: '图片导入用户', + } + }, + { + code: 'admin', + path: 'admin', + name: 'admin', + component: () => + import ('@/views/user/adminList'), + meta: { + title: '管理员列表', + permissions: ['admin'] + } + }, ] }, { @@ -519,49 +446,122 @@ export function getRoutes() { title: '系统管理', icon: 'el-icon-s-platform' }, + children: [{ - path: 'index', - name: 'index', - component: () => - import ('@/views/password/index'), - meta: { - title: '忘记密码', - } - }, { - path: 'TestPaperClass', - name: 'Table', - component: () => - import ('@/views/TestPaper/TestPaperClass'), - meta: { - title: '分类管理', - } - }, { - path: 'carousel', - name: 'carousel', - component: () => - import ('@/views/carousel/index'), - meta: { - title: '轮播图', - } - }, { - path: 'new', - name: 'new', - component: () => - import ('@/views/carousel/new'), - meta: { - title: '最新资讯', - } - }] + path: 'userdimset', + name: 'impouserdimsetrtuser', + + component: () => + import ('@/views/user/userdimset'), + meta: { + title: '维度规则设置', + permissions: ['admin'] + } + }, + { + path: 'index', + name: 'index', + component: () => + import ('@/views/password/index'), + meta: { + title: '忘记密码', + } + }, + + { + code: 'settings', + path: 'settings', + name: 'settings', + component: () => + import ('@/views/settings/index'), + meta: { + title: '系统设置', + } + }, + { + path: 'TestPaperClass', + name: 'Table', + component: () => + import ('@/views/TestPaper/TestPaperClass'), + meta: { + title: '分类管理', + permissions: ['admin'] + } + }, { + path: 'carousel', + name: 'carousel', + component: () => + import ('@/views/carousel/index'), + meta: { + title: '轮播图', + permissions: ['admin'] + } + }, { + path: 'new', + name: 'new', + component: () => + import ('@/views/carousel/new'), + meta: { + title: '最新资讯', + permissions: ['admin'] + } + }, { + code: 'rolelist', + path: 'role', + name: 'rolelist', + component: () => + import ('@/views/user/rolelist'), + meta: { + title: '角色权限', + permissions: ['admin'] + } + }, + { + code: 'logs', + path: 'logs', + name: 'logs', + + component: () => + import ('@/views/user/loglist'), + meta: { + title: '系统日志', + } + }, + ] }, // 404 page must be placed at the end !!! { path: '*', redirect: '/404', - hidden: true + hidden: true } ] } + function hasPermission(permissions, route) { + if (route.meta && route.meta.permissions) { + return permissions.some((role) => route.meta.permissions.includes(role)); + } else { + return true; + } + } + + + function filterAsyncRoutes(routes, permissions) { + const finallyRoutes = []; + routes.forEach((route) => { + const item = {...route }; + if (hasPermission(permissions, item)) { + if (item.children) { + item.children = filterAsyncRoutes(item.children, permissions); + } + finallyRoutes.push(item); + } + }); + return finallyRoutes; + } + constantRoutes1 = filterAsyncRoutes(constantRoutes1, permissions); + return constantRoutes1; } \ No newline at end of file