权限管理,没有页面修改之前版本
This commit is contained in:
@ -195,9 +195,19 @@ const routes: Array<RouteRecordRaw> = [
|
||||
meta: {
|
||||
title: '账号开通',
|
||||
icon: 'User',
|
||||
// 子路由也建议加上权限限制
|
||||
roles: ['SUPER_ADMIN', 'SUPERVISOR']
|
||||
}
|
||||
},
|
||||
// [新增] 权限分配页面,只有超级管理员可进
|
||||
{
|
||||
path: 'permission',
|
||||
name: 'PermissionConfig',
|
||||
component: () => import('@/views/system/PermissionConfig.vue'),
|
||||
meta: {
|
||||
title: '权限分配',
|
||||
icon: 'Lock',
|
||||
roles: ['SUPER_ADMIN']
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -224,11 +234,10 @@ router.beforeEach((to, from, next) => {
|
||||
const token = userStore.token || localStorage.getItem('token')
|
||||
|
||||
// [修复] 优先从 user 对象获取,并统一转大写,防止大小写不一致导致权限失效
|
||||
// 注意:Store 中存储的可能是 user.role 或者直接是 role,根据你之前的 store 结构适配
|
||||
const rawRole = userStore.user?.role || userStore.role || localStorage.getItem('role') || 'user'
|
||||
const userRole = String(rawRole).toUpperCase()
|
||||
|
||||
// 调试日志:如果跳转有问题,请按 F12 查看控制台输出
|
||||
// 调试日志
|
||||
if (to.path.includes('/system')) {
|
||||
console.log(`路由守卫检查: Path=${to.path}, UserRole=${userRole}, Required=${to.meta.roles}`)
|
||||
}
|
||||
@ -249,7 +258,6 @@ router.beforeEach((to, from, next) => {
|
||||
|
||||
// 权限检查逻辑
|
||||
if (to.meta.roles && Array.isArray(to.meta.roles)) {
|
||||
// [修复] to.meta.roles 里已经是大写了,userRole 也转大写了,现在可以安全比对
|
||||
if (to.meta.roles.includes(userRole)) {
|
||||
next()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user