diff --git a/src/mock/login.js b/src/mock/login.js index cf7201c..b9694f0 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -1,4 +1,4 @@ - import { param2Obj } from '@/utils' +import { param2Obj } from '@/utils' const userMap = { admin: { diff --git a/src/router/index.js b/src/router/index.js index d125785..c71981c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -131,6 +131,7 @@ export const asyncRouterMap = [ { path: '/settings/system', component: Layout, + meta: { roles: ['admin'] }, children: [{ path: 'index', component: () => import('@/views/settings/system'), diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 046f6e3..6d1b242 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -14,6 +14,7 @@ export default { components: { adminDashboard, editorDashboard }, data() { return { + allowRoles: ['admin', 'customer'], currentRole: 'adminDashboard' } }, @@ -23,7 +24,11 @@ export default { ]) }, created() { - if (!this.roles.includes('admin')) { + const adminDashboardRoles = new Set(['admin', 'customer']) + const userRoles = new Set(this.roles) + const intersection = new Set([...userRoles].filter(role => adminDashboardRoles.has(role))) + console.log(intersection.size) + if (intersection.size === 0) { this.currentRole = 'editorDashboard' } }