feat: login dialog (#37)

* chore: login-dialog demo

* Merge branch 'main' into login-dialog

* chore: update dialog

* Merge branch 'main' into login-dialog

* chore: accept login params

* chore: redirect to login or show login dialog
This commit is contained in:
Li Kui
2024-07-11 11:05:01 +08:00
committed by GitHub
parent 0f246f7e9e
commit 8e6c1abf19
13 changed files with 174 additions and 73 deletions

View File

@@ -92,10 +92,25 @@ function setupAccessGuard(router: Router) {
// 生成路由表
// 当前登录用户拥有的角色标识列表
const userInfo =
accessStore.userInfo || (await accessStore.fetchUserInfo());
const userRoles = userInfo.roles ?? [];
let userRoles: string[] = [];
try {
const userInfo =
accessStore.userInfo || (await accessStore.fetchUserInfo());
userRoles = userInfo.roles ?? [];
} catch (error: any) {
if (error.status === 409) {
accessStore.setShowLoginDialog(true);
} else if (error.status === 401) {
accessStore.reset();
return {
path: LOGIN_PATH,
// 如不需要,直接删除 query
query: { redirect: encodeURIComponent(to.fullPath) },
// 携带当前跳转的页面,登录后重新跳转该页面
replace: true,
};
}
}
// 生成菜单和路由
const { accessibleMenus, accessibleRoutes } = await generateAccess({