fix: 修复页面刷新导致丢失权限的问题

This commit is contained in:
gaoyunqi
2024-02-27 15:19:54 +08:00
parent d524aef472
commit cb075df41c
3 changed files with 413 additions and 414 deletions

View File

@ -9,8 +9,6 @@ import { usePermissionStoreWithOut } from '/@/store/modules/permission';
export function createParamMenuGuard(router: Router) { export function createParamMenuGuard(router: Router) {
const permissionStore = usePermissionStoreWithOut(); const permissionStore = usePermissionStoreWithOut();
router.beforeEach(async (to, _, next) => { router.beforeEach(async (to, _, next) => {
console.log('createParamMenuGuard', to);
to.fullPath = (to.fullPath as string) + convertQuery(to); to.fullPath = (to.fullPath as string) + convertQuery(to);
// filter no name route // filter no name route

View File

@ -94,14 +94,14 @@ export function createPermissionGuard(router: Router) {
next(); next();
return; return;
} }
const routes = await permissionStore.buildRoutesAction(false);
const routes = await permissionStore.buildRoutesAction();
routes.forEach((route) => { routes.forEach((route) => {
router.addRoute(route as unknown as RouteRecordRaw); router.addRoute(route as unknown as RouteRecordRaw);
}); });
router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
permissionStore.setDynamicAddedRoute(true); permissionStore.setDynamicAddedRoute(true);
if (to.name === PAGE_NOT_FOUND_ROUTE.name) { if (to.name === PAGE_NOT_FOUND_ROUTE.name) {

View File

@ -118,7 +118,7 @@ export const useUserStore = defineStore({
// save token // save token
this.setToken(token); this.setToken(token);
return this.afterLoginAction(goHome); return await this.afterLoginAction(goHome);
} catch (error) { } catch (error) {
return Promise.reject(error); return Promise.reject(error);
} }
@ -137,13 +137,14 @@ export const useUserStore = defineStore({
} else { } else {
const permissionStore = usePermissionStore(); const permissionStore = usePermissionStore();
if (!permissionStore.isDynamicAddedRoute) { if (!permissionStore.getIsDynamicAddedRoute) {
permissionStore.setDynamicAddedRoute(true);
const routes = await permissionStore.buildRoutesAction(); const routes = await permissionStore.buildRoutesAction();
routes.forEach((route) => { routes.forEach((route) => {
router.addRoute(route as unknown as RouteRecordRaw); router.addRoute(route as unknown as RouteRecordRaw);
}); });
router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
permissionStore.setDynamicAddedRoute(true);
} }
goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME)); goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME));
} }