Route legacy home to control center
This commit is contained in:
@@ -7139,14 +7139,12 @@
|
||||
"name": "ControlCenter",
|
||||
"title": "menu-title.controlCenter",
|
||||
"authCode": null,
|
||||
"path": "/page-render/main_home",
|
||||
"type": "online_page",
|
||||
"component": "online-dev/page-render/index",
|
||||
"path": "/control-center",
|
||||
"type": "menu",
|
||||
"component": "_core/control-center/index",
|
||||
"redirect": null,
|
||||
"activePath": null,
|
||||
"query": {
|
||||
"pageCode": "main_home"
|
||||
},
|
||||
"query": null,
|
||||
"noBasicLayout": false,
|
||||
"icon": "lucide:layout-dashboard",
|
||||
"activeIcon": null,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user