diff --git a/apps/web-antd/src/router/guard.ts b/apps/web-antd/src/router/guard.ts index a1ad6d88..5e846faf 100644 --- a/apps/web-antd/src/router/guard.ts +++ b/apps/web-antd/src/router/guard.ts @@ -92,16 +92,19 @@ function setupAccessGuard(router: Router) { // 生成路由表 // 当前登录用户拥有的角色标识列表 - const userInfo = userStore.userInfo || (await authStore.fetchUserInfo()); - const userRoles = userInfo.roles ?? []; + const [userInfo, routeInfo] = await Promise.all([ + userStore.userInfo || (await authStore.fetchUserInfo()), + generateAccess({ + // 前端路由模式会需要 后端路由模式不需要 + // roles: userRoles, + router, + // 则会在菜单中显示,但是访问会被重定向到403 + routes: accessRoutes, + }), + ]); // 生成菜单和路由 - const { accessibleMenus, accessibleRoutes } = await generateAccess({ - roles: userRoles, - router, - // 则会在菜单中显示,但是访问会被重定向到403 - routes: accessRoutes, - }); + const { accessibleMenus, accessibleRoutes } = routeInfo; // 保存菜单信息和路由信息 accessStore.setAccessMenus(accessibleMenus);