添加个人中心及按角色展示内容
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
getTopMenus
|
||||
} from '@/layouts/admin/router/adminRoutes.uts'
|
||||
import { addView, activeFullPath, visitedViews } from './tagsViewStore.uts'
|
||||
import { hasAdminModuleAccess } from '@/layouts/admin/utils/role.uts'
|
||||
|
||||
/**
|
||||
* 标签页类型
|
||||
@@ -77,14 +78,34 @@ export const isOverlayVisible = ref<boolean>(false)
|
||||
* @param addTab 是否添加到标签页
|
||||
*/
|
||||
export function openRoute(routeId: string, addTab: boolean = true): void {
|
||||
|
||||
|
||||
const route = findRouteById(routeId)
|
||||
if (!route) {
|
||||
console.warn(`[AdminNav] Route not found: ${routeId}`)
|
||||
return
|
||||
}
|
||||
|
||||
// 基于 role 的页面访问拦截
|
||||
// route.parentId 对应上方 topMenus 的 id。这里校验是否有权限
|
||||
const moduleId = route.parentId ? route.parentId : route.id.split('_')[0]
|
||||
if (!hasAdminModuleAccess(moduleId)) {
|
||||
uni.showToast({
|
||||
title: '您没有权限访问该模块',
|
||||
icon: 'none'
|
||||
})
|
||||
console.warn(`[AdminNav] Access denied for role to module: ${moduleId}`)
|
||||
// 回退到首页
|
||||
if (routeId !== 'home_index') {
|
||||
openRoute('home_index', addTab)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 更新当前路由
|
||||
activeRouteId.value = routeId
|
||||
|
||||
|
||||
|
||||
// 更新一级菜单选中态
|
||||
if (route.parentId) {
|
||||
|
||||
Reference in New Issue
Block a user