|
|
|
@ -94,29 +94,33 @@ export const useUserStore = defineStore({ |
|
|
|
|
|
|
|
// save token
|
|
|
|
this.setToken(token); |
|
|
|
// get user info
|
|
|
|
const userInfo = await this.getUserInfoAction(); |
|
|
|
|
|
|
|
const sessionTimeout = this.sessionTimeout; |
|
|
|
if (sessionTimeout) { |
|
|
|
this.setSessionTimeout(false); |
|
|
|
} else if (goHome) { |
|
|
|
const permissionStore = usePermissionStore(); |
|
|
|
if (!permissionStore.isDynamicAddedRoute) { |
|
|
|
const routes = await permissionStore.buildRoutesAction(); |
|
|
|
routes.forEach((route) => { |
|
|
|
router.addRoute(route as unknown as RouteRecordRaw); |
|
|
|
}); |
|
|
|
router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); |
|
|
|
permissionStore.setDynamicAddedRoute(true); |
|
|
|
} |
|
|
|
await router.replace(userInfo.homePath || PageEnum.BASE_HOME); |
|
|
|
} |
|
|
|
return userInfo; |
|
|
|
return this.afterLoginAction(goHome); |
|
|
|
} catch (error) { |
|
|
|
return Promise.reject(error); |
|
|
|
} |
|
|
|
}, |
|
|
|
async afterLoginAction(goHome?: boolean): Promise<GetUserInfoModel | null> { |
|
|
|
if (!this.getToken) return null; |
|
|
|
// get user info
|
|
|
|
const userInfo = await this.getUserInfoAction(); |
|
|
|
|
|
|
|
const sessionTimeout = this.sessionTimeout; |
|
|
|
if (sessionTimeout) { |
|
|
|
this.setSessionTimeout(false); |
|
|
|
} else { |
|
|
|
const permissionStore = usePermissionStore(); |
|
|
|
if (!permissionStore.isDynamicAddedRoute) { |
|
|
|
const routes = await permissionStore.buildRoutesAction(); |
|
|
|
routes.forEach((route) => { |
|
|
|
router.addRoute(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)); |
|
|
|
} |
|
|
|
return userInfo; |
|
|
|
}, |
|
|
|
async getUserInfoAction(): Promise<UserInfo> { |
|
|
|
const userInfo = await getUserInfo(); |
|
|
|
const { roles = [] } = userInfo; |
|
|
|
|