From 882e8c919958bb4133e849bb637817b12814c72e Mon Sep 17 00:00:00 2001 From: chenqi Date: Fri, 12 Dec 2025 17:06:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openhis-ui-vue3/src/permission.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/openhis-ui-vue3/src/permission.js b/openhis-ui-vue3/src/permission.js index a323fbe7..4d495ac9 100644 --- a/openhis-ui-vue3/src/permission.js +++ b/openhis-ui-vue3/src/permission.js @@ -29,9 +29,14 @@ router.beforeEach((to, from, next) => { // 判断当前用户是否已拉取完user_info信息 useUserStore().getInfo().then(() => { isRelogin.show = false - usePermissionStore().generateRoutes().then(() => { - // 路由已在generateRoutes方法中添加,无需再次添加 - next({ ...to, replace: true }) // hack方法 确保路由已完成 + usePermissionStore().generateRoutes().then(accessRoutes => { + // 根据roles权限生成可访问的路由表 + accessRoutes.forEach(route => { + if (!isHttp(route.path)) { + router.addRoute(route) // 动态添加可访问路由表 + } + }) + next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 }) }).catch(err => { useUserStore().logOut().then(() => { @@ -49,7 +54,7 @@ router.beforeEach((to, from, next) => { // 在免登录白名单,直接进入 next() } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 解决问题 + next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 NProgress.done() } }