mirror of
https://github.com/FatttSnake/Pinnacle-OA.git
synced 2026-04-05 06:51:23 +08:00
Optimized the dynamic menu
This commit is contained in:
@@ -226,7 +226,7 @@ export default {
|
||||
async mounted() {
|
||||
this.username = await getUsername()
|
||||
const allRoutes = _.cloneDeep(
|
||||
_.filter(_.get(this.$router, 'options.routes[0].children'), 'meta.title')
|
||||
_.filter(_.get(this.$router, 'options.routes[0].children'), 'meta.requiresMenu')
|
||||
)
|
||||
|
||||
const user = await getUser()
|
||||
@@ -240,6 +240,9 @@ export default {
|
||||
return true
|
||||
}
|
||||
level1.children = level1.children.filter((level2) => {
|
||||
if (!level2.meta.requiresMenu) {
|
||||
return false
|
||||
}
|
||||
for (const menu_ of menus) {
|
||||
if (_.startsWith(menu_.url, level1.path + '/' + level2.path)) {
|
||||
hasChildren = true
|
||||
@@ -258,6 +261,9 @@ export default {
|
||||
return true
|
||||
}
|
||||
level1.children = level1.children.filter((level2) => {
|
||||
if (!level2.meta.requiresMenu) {
|
||||
return false
|
||||
}
|
||||
if (!level2.meta.requiresAuth) {
|
||||
hasChildren = true
|
||||
return true
|
||||
|
||||
@@ -9,6 +9,7 @@ const affairRouter = {
|
||||
name: 'affairAdd',
|
||||
meta: {
|
||||
title: '事务添加',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -19,6 +20,7 @@ const affairRouter = {
|
||||
name: 'PersonalAffairs',
|
||||
meta: {
|
||||
title: '我的事务',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -29,6 +31,7 @@ const affairRouter = {
|
||||
component: async () => await import('@/pages/affair/Affair.vue'),
|
||||
meta: {
|
||||
title: '事务审批',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -39,6 +42,7 @@ const affairRouter = {
|
||||
name: 'affairApproved',
|
||||
meta: {
|
||||
title: '审批记录',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: true,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -47,6 +51,7 @@ const affairRouter = {
|
||||
meta: {
|
||||
title: '事务',
|
||||
icon: shallowRef(IconPinnacleAffairs),
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ const attendanceRouter = {
|
||||
name: 'attendanceManage',
|
||||
meta: {
|
||||
title: '考勤管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -18,6 +19,7 @@ const attendanceRouter = {
|
||||
name: 'user',
|
||||
meta: {
|
||||
title: '员工考勤',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -25,6 +27,7 @@ const attendanceRouter = {
|
||||
],
|
||||
meta: {
|
||||
title: '考勤',
|
||||
requiresMenu: true,
|
||||
icon: shallowRef(IconPinnacleAttendance),
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
|
||||
@@ -26,6 +26,7 @@ const router = createRouter({
|
||||
meta: {
|
||||
title: '首页',
|
||||
icon: shallowRef(IconPinnacleHome),
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true,
|
||||
requiresAuth: false
|
||||
|
||||
@@ -4,6 +4,7 @@ const noticeRouter = {
|
||||
meta: {
|
||||
title: '公告',
|
||||
icon: shallowRef(IconPinnacleNotice),
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
},
|
||||
@@ -14,6 +15,7 @@ const noticeRouter = {
|
||||
name: 'noticeManage',
|
||||
meta: {
|
||||
title: '公告管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -25,6 +27,7 @@ const noticeRouter = {
|
||||
redirect: '/notice/noticeView/all',
|
||||
meta: {
|
||||
title: '公告查看',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
},
|
||||
@@ -52,6 +55,7 @@ const noticeRouter = {
|
||||
name: 'noticeTypeManage',
|
||||
meta: {
|
||||
title: '公告类型管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ const powerRouter = {
|
||||
component: async () => await import('@/pages/power/RoleManagement.vue'),
|
||||
meta: {
|
||||
title: '角色管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -19,6 +20,7 @@ const powerRouter = {
|
||||
component: async () => await import('@/pages/power/GroupManagement.vue'),
|
||||
meta: {
|
||||
title: '用户组管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -29,6 +31,7 @@ const powerRouter = {
|
||||
component: async () => await import('@/pages/power/UserManagement.vue'),
|
||||
meta: {
|
||||
title: '用户管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -37,6 +40,7 @@ const powerRouter = {
|
||||
meta: {
|
||||
title: '权限管理',
|
||||
icon: shallowRef(IconPinnaclePower),
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true,
|
||||
requiresAuth: true
|
||||
|
||||
@@ -8,6 +8,7 @@ const workRouter = {
|
||||
name: 'workManage',
|
||||
meta: {
|
||||
title: '工作管理',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -31,6 +32,7 @@ const workRouter = {
|
||||
],
|
||||
meta: {
|
||||
title: '工作事项',
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
@@ -39,6 +41,7 @@ const workRouter = {
|
||||
meta: {
|
||||
title: '工作事项',
|
||||
icon: shallowRef(IconPinnacleWork),
|
||||
requiresMenu: true,
|
||||
requiresScrollbar: false,
|
||||
requiresPadding: true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user