diff --git a/build_ui/src/router/index.js b/build_ui/src/router/index.js index 334df556b..ef887b6c2 100644 --- a/build_ui/src/router/index.js +++ b/build_ui/src/router/index.js @@ -97,31 +97,34 @@ export const constantRoutes = [ meta: { title: '个人中心', icon: 'user' } } ] - }, - { - path: '/train', - component: Layout, - hidden: true, - redirect: '/train/auth', - children: [ - { - path: 'auth', - component: () => import('@/views/train/auth/index'), - name: 'DoorAuth', - meta: { title: '门禁授权', icon: 'lock' } - }, - { - path: 'accommodation', - component: () => import('@/views/train/accommodation/index'), - name: 'TrainAccommodation', - meta: { title: '住宿管理', icon: 'home' } - } - ] } ] // 动态路由,基于用户权限动态去加载 export const dynamicRoutes = [ + { + path: '/train', + component: Layout, + hidden: true, + redirect: '/train/auth', + permissions: ['system:auth:list', 'train:accommodation:list'], + children: [ + { + path: 'auth', + component: () => import('@/views/train/auth/index'), + name: 'DoorAuth', + meta: { title: '门禁授权', icon: 'lock' }, + permissions: ['system:auth:list'] + }, + { + path: 'accommodation', + component: () => import('@/views/train/accommodation/index'), + name: 'TrainAccommodation', + meta: { title: '住宿管理', icon: 'home' }, + permissions: ['train:accommodation:list'] + } + ] + }, { path: '/system/user-auth', component: Layout, diff --git a/build_ui/src/store/modules/permission.js b/build_ui/src/store/modules/permission.js index 15aaf8fd9..fe7137953 100644 --- a/build_ui/src/store/modules/permission.js +++ b/build_ui/src/store/modules/permission.js @@ -112,7 +112,16 @@ export function filterDynamicRoutes(routes) { routes.forEach(route => { if (route.permissions) { if (auth.hasPermiOr(route.permissions)) { - res.push(route) + const copyRoute = { ...route } + if (copyRoute.children && copyRoute.children.length) { + copyRoute.children = copyRoute.children.filter(child => { + if (child.permissions) { + return auth.hasPermiOr(child.permissions) + } + return true + }) + } + res.push(copyRoute) } } else if (route.roles) { if (auth.hasRoleOr(route.roles)) { diff --git a/build_ui/src/views/train/score/index.vue b/build_ui/src/views/train/score/index.vue index c720dbb34..9b4ec6b96 100644 --- a/build_ui/src/views/train/score/index.vue +++ b/build_ui/src/views/train/score/index.vue @@ -38,6 +38,7 @@ plain icon="el-icon-plus" size="mini" + v-hasPermi="['system:info:add']" @click="handleAdd" >新增成绩 @@ -48,6 +49,7 @@ icon="el-icon-edit" size="mini" :disabled="single" + v-hasPermi="['system:info:edit']" @click="handleUpdate" >修改 @@ -58,6 +60,7 @@ icon="el-icon-delete" size="mini" :disabled="multiple" + v-hasPermi="['system:info:remove']" @click="handleDelete" >删除 @@ -88,12 +91,14 @@ size="mini" type="text" icon="el-icon-edit" + v-hasPermi="['system:info:edit']" @click="handleUpdate(scope.row)" >修改 删除