Commit a36825a6d423aae9aaf1936ce55947ba8c2104b0
1 parent
628e8206
fix: add loss action for userStore
Showing
1 changed file
with
23 additions
and
19 deletions
src/store/modules/user.ts
@@ -94,29 +94,33 @@ export const useUserStore = defineStore({ | @@ -94,29 +94,33 @@ export const useUserStore = defineStore({ | ||
94 | 94 | ||
95 | // save token | 95 | // save token |
96 | this.setToken(token); | 96 | this.setToken(token); |
97 | - // get user info | ||
98 | - const userInfo = await this.getUserInfoAction(); | ||
99 | - | ||
100 | - const sessionTimeout = this.sessionTimeout; | ||
101 | - if (sessionTimeout) { | ||
102 | - this.setSessionTimeout(false); | ||
103 | - } else if (goHome) { | ||
104 | - const permissionStore = usePermissionStore(); | ||
105 | - if (!permissionStore.isDynamicAddedRoute) { | ||
106 | - const routes = await permissionStore.buildRoutesAction(); | ||
107 | - routes.forEach((route) => { | ||
108 | - router.addRoute(route as unknown as RouteRecordRaw); | ||
109 | - }); | ||
110 | - router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); | ||
111 | - permissionStore.setDynamicAddedRoute(true); | ||
112 | - } | ||
113 | - await router.replace(userInfo.homePath || PageEnum.BASE_HOME); | ||
114 | - } | ||
115 | - return userInfo; | 97 | + return this.afterLoginAction(goHome); |
116 | } catch (error) { | 98 | } catch (error) { |
117 | return Promise.reject(error); | 99 | return Promise.reject(error); |
118 | } | 100 | } |
119 | }, | 101 | }, |
102 | + async afterLoginAction(goHome?: boolean): Promise<GetUserInfoModel | null> { | ||
103 | + if (!this.getToken) return null; | ||
104 | + // get user info | ||
105 | + const userInfo = await this.getUserInfoAction(); | ||
106 | + | ||
107 | + const sessionTimeout = this.sessionTimeout; | ||
108 | + if (sessionTimeout) { | ||
109 | + this.setSessionTimeout(false); | ||
110 | + } else { | ||
111 | + const permissionStore = usePermissionStore(); | ||
112 | + if (!permissionStore.isDynamicAddedRoute) { | ||
113 | + const routes = await permissionStore.buildRoutesAction(); | ||
114 | + routes.forEach((route) => { | ||
115 | + router.addRoute(route as unknown as RouteRecordRaw); | ||
116 | + }); | ||
117 | + router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); | ||
118 | + permissionStore.setDynamicAddedRoute(true); | ||
119 | + } | ||
120 | + goHome && (await router.replace(userInfo.homePath || PageEnum.BASE_HOME)); | ||
121 | + } | ||
122 | + return userInfo; | ||
123 | + }, | ||
120 | async getUserInfoAction(): Promise<UserInfo> { | 124 | async getUserInfoAction(): Promise<UserInfo> { |
121 | const userInfo = await getUserInfo(); | 125 | const userInfo = await getUserInfo(); |
122 | const { roles = [] } = userInfo; | 126 | const { roles = [] } = userInfo; |