Route legacy home to control center

This commit is contained in:
2026-06-09 18:33:03 +08:00
parent cf8385f1dc
commit 39aa708c4f
4 changed files with 28 additions and 13 deletions
+9 -3
View File
@@ -11,6 +11,13 @@ import { useAppContextStore } from '#/store/app-context';
import { generateAccess } from './access';
function normalizeHomePath(path?: null | string) {
if (!path || path === '/page-render/main_home') {
return preferences.app.defaultHomePath;
}
return path;
}
/**
* 通用守卫配置
* @param router
@@ -113,8 +120,7 @@ function setupAccessGuard(router: Router) {
if (to.path === LOGIN_PATH && accessStore.accessToken) {
return decodeURIComponent(
(to.query?.redirect as string) ||
userStore.userInfo?.homePath ||
preferences.app.defaultHomePath,
normalizeHomePath(userStore.userInfo?.homePath),
);
}
return true;
@@ -207,7 +213,7 @@ function setupAccessGuard(router: Router) {
// 重定向逻辑
const redirectPath = (from.query.redirect ??
(to.path === preferences.app.defaultHomePath
? userInfo.homePath || preferences.app.defaultHomePath
? normalizeHomePath(userInfo.homePath)
: to.fullPath)) as string;
return {
+8 -3
View File
@@ -13,6 +13,13 @@ import { getAccessCodesApi, loginApi, logoutApi } from '#/api/core/auth';
import { getUserInfoApi } from '#/api/core/user';
import { $t } from '#/locales';
function normalizeHomePath(path?: null | string) {
if (!path || path === '/page-render/main_home') {
return preferences.app.defaultHomePath;
}
return path;
}
export const useAuthStore = defineStore('auth', () => {
const accessStore = useAccessStore();
const userStore = useUserStore();
@@ -64,9 +71,7 @@ export const useAuthStore = defineStore('auth', () => {
} else {
onSuccess
? await onSuccess?.()
: await router.push(
userInfo.homePath || preferences.app.defaultHomePath,
);
: await router.push(normalizeHomePath(userInfo.homePath));
}
if (userInfo?.realName) {
@@ -11,6 +11,8 @@ import { $t } from '@vben/locales';
import { getPreferencesConfigApi } from '#/api/core/ui-config';
import { useAuthStore } from '#/store';
const LEGACY_HOME_PATH = '/page-render/main_home';
defineOptions({ name: 'Login' });
const authStore = useAuthStore();
@@ -59,6 +61,10 @@ const getRedirectState = () => {
return redirect ? JSON.stringify({ redirect }) : undefined;
};
function normalizeRedirectPath(path: string) {
return path === LEGACY_HOME_PATH ? '/' : path;
}
type OAuthProvider =
| 'dingtalk'
| 'feishu'
@@ -109,7 +115,7 @@ async function handleLogin(params: Record<string, any>) {
if (redirect) {
// 有 redirect 参数时,登录成功后跳转到指定页面
await authStore.authLogin(params, async () => {
const targetPath = decodeURIComponent(redirect);
const targetPath = normalizeRedirectPath(decodeURIComponent(redirect));
await router.push(targetPath);
});
} else {