Browse Source

feat(menus): 切换用户设定的起始页.

pull/508/head
cKey 4 years ago
parent
commit
69707cdde1
  1. 1
      apps/vue/src/api/sys/model/menuModel.ts
  2. 7
      apps/vue/src/store/modules/permission.ts
  3. 6
      apps/vue/src/store/modules/user.ts

1
apps/vue/src/api/sys/model/menuModel.ts

@ -11,6 +11,7 @@ export interface RouteItem {
children?: RouteItem[]; children?: RouteItem[];
fullPath?: string; fullPath?: string;
props?: any; props?: any;
startup: boolean;
} }
/** /**

7
apps/vue/src/store/modules/permission.ts

@ -256,6 +256,13 @@ export const usePermissionStore = defineStore({
if (menu.children) { if (menu.children) {
r.children = this.filterDynamicRoutes(menu.children); r.children = this.filterDynamicRoutes(menu.children);
} }
// 修改用户首页
if (menu.startup) {
const userStore = useUserStore();
const userInfo = userStore.getUserInfo;
userInfo.homePath = menu.path;
userStore.setUserInfo(userInfo);
}
routeList.push(r); routeList.push(r);
}); });

6
apps/vue/src/store/modules/user.ts

@ -140,7 +140,7 @@ export const useUserStore = defineStore({
async afterLoginAction(goHome?: boolean): Promise<GetUserInfoModel | null> { async afterLoginAction(goHome?: boolean): Promise<GetUserInfoModel | null> {
if (!this.getToken) return null; if (!this.getToken) return null;
// get user info // get user info
const userInfo = await this.getUserInfoAction(); await this.getUserInfoAction();
const sessionTimeout = this.sessionTimeout; const sessionTimeout = this.sessionTimeout;
if (sessionTimeout) { if (sessionTimeout) {
@ -155,9 +155,9 @@ export const useUserStore = defineStore({
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);
} }
goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME)); goHome && (await router.replace(this.userInfo?.homePath || PageEnum.BASE_HOME));
} }
return userInfo; return this.userInfo;
}, },
async getUserInfoAction(): Promise<GetUserInfoModel> { async getUserInfoAction(): Promise<GetUserInfoModel> {
const abpStore = useAbpStoreWithOut(); const abpStore = useAbpStoreWithOut();

Loading…
Cancel
Save