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() } }