diff --git a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/index.ts b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/index.ts
index ab7f8ec..9d8e203 100644
--- a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/index.ts
+++ b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/index.ts
@@ -107,6 +107,26 @@ router.beforeEach(async (to, _from, next) => {
}
// 生成动态路由
const accessRoutes = await permissionStore.generateRoutes()
+
+ // 如果用户没有任何菜单权限,提示并退出登录
+ if (!accessRoutes || accessRoutes.length === 0) {
+ console.warn('当前用户没有任何菜单权限')
+ dynamicRoutesLoaded = false
+ const { ElMessageBox } = await import('element-plus')
+ const roles = userStore.userInfo?.roles?.join('、') || '无'
+ await ElMessageBox.alert(
+ `当前账号未分配菜单权限,无法进入系统。
` +
+ `账号:${userStore.userInfo?.username}
` +
+ `角色:${roles}
` +
+ `请联系超级管理员,在「系统管理 - 角色管理」中为对应角色分配菜单,或在「管理员管理」中为该账号分配专属菜单。`,
+ '无菜单权限',
+ { dangerouslyUseHTMLString: true, confirmButtonText: '返回登录', type: 'warning' }
+ ).catch(() => {})
+ userStore.resetState()
+ next(`/login?redirect=${to.path}`)
+ return
+ }
+
// 添加动态路由
accessRoutes.forEach(route => {
router.addRoute(route)
diff --git a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/error/404.vue b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/error/404.vue
index cd4fdc9..f98b926 100644
--- a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/error/404.vue
+++ b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/error/404.vue
@@ -3,19 +3,137 @@
抱歉,您访问的页面不存在
-