修复Navbar:优化管理员角色判断逻辑,支持通过roleIds判断管理员

This commit is contained in:
Your Name 2026-01-02 14:48:28 +08:00
parent c4ebdb4d71
commit 5840d8a88e

View File

@ -126,12 +126,23 @@ const userInfo = computed(() => ({
// 判断是否是管理员
const isAdmin = computed(() => {
const roles = authStore.userRoles || []
// 优先从userInfo.roles获取角色列表
const roles = authStore.userInfo?.roles || authStore.userRoles || []
// 检查是否包含管理员角色(ADMIN 或 SUPER_ADMIN)
return roles.some((role: any) => {
const hasAdminRole = roles.some((role: any) => {
const roleCode = typeof role === 'string' ? role : role.roleCode || role.code || ''
return roleCode === 'ADMIN' || roleCode === 'SUPER_ADMIN'
})
// 如果通过roles没找到,再检查roleIds(兼容旧版)
if (!hasAdminRole && authStore.userInfo?.roleIds) {
const roleIds = authStore.userInfo.roleIds.split(',').map((id: string) => id.trim())
// roleId 2 = ADMIN, 1 = SUPER_ADMIN
return roleIds.includes('2') || roleIds.includes('1')
}
return hasAdminRole
})
// 判断菜单是否激活