diff --git a/src/router/guard/permissionGuard.ts b/src/router/guard/permissionGuard.ts index d3c6fa0..19f24b5 100644 --- a/src/router/guard/permissionGuard.ts +++ b/src/router/guard/permissionGuard.ts @@ -194,7 +194,7 @@ export function createPermissionGuard(router: Router) { // 添加重定向逻辑 if (to.name === PAGE_NOT_FOUND_ROUTE.name) { - // 如果是404页面,尝试重定向到首页 + // 如果是404页面,重定向到首页 next({ path: userStore.getUserInfo.homePath || PageEnum.BASE_HOME, replace: true }); return; } @@ -213,6 +213,12 @@ export function createPermissionGuard(router: Router) { } } + // 处理404页面 + if (to.name === PAGE_NOT_FOUND_ROUTE.name) { + next({ path: userStore.getUserInfo.homePath || PageEnum.BASE_HOME, replace: true }); + return; + } + next(); }); } diff --git a/src/router/helper/routeHelper.ts b/src/router/helper/routeHelper.ts index a7834c1..a69f7ba 100644 --- a/src/router/helper/routeHelper.ts +++ b/src/router/helper/routeHelper.ts @@ -4,7 +4,7 @@ import type { Router, RouteRecordNormalized } from 'vue-router'; import { getParentLayout, LAYOUT, EXCEPTION_COMPONENT } from '/@/router/constant'; import { cloneDeep, omit } from 'lodash-es'; import { warn } from '/@/utils/log'; -import { createRouter, createWebHashHistory } from 'vue-router'; +import { createRouter, createWebHistory } from 'vue-router'; import { getTenantId, getToken } from "/@/utils/auth"; import { URL_HASH_TAB, _eval } from '/@/utils'; //引入online lib路由 @@ -174,7 +174,7 @@ function promoteRouteLevel(routeModule: AppRouteModule) { // Use vue-router to splice menus let router: Router | null = createRouter({ routes: [routeModule as unknown as RouteRecordNormalized], - history: createWebHashHistory(), + history: createWebHistory(), }); const routes = router.getRoutes(); diff --git a/src/router/routes/basic.ts b/src/router/routes/basic.ts index fe297f5..c711262 100644 --- a/src/router/routes/basic.ts +++ b/src/router/routes/basic.ts @@ -1,6 +1,8 @@ import type { AppRouteRecordRaw } from '/@/router/types'; import { t } from '/@/hooks/web/useI18n'; import { REDIRECT_NAME, LAYOUT, EXCEPTION_COMPONENT, PAGE_NOT_FOUND_NAME } from '/@/router/constant'; +import { useUserStoreWithOut } from '/@/store/modules/user'; +import { PageEnum } from '/@/enums/pageEnum'; // 404 on a page export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = { @@ -22,6 +24,10 @@ export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = { hideBreadcrumb: true, hideMenu: true, }, + beforeEnter: (to, from, next) => { + const userStore = useUserStoreWithOut(); + next(userStore.getUserInfo.homePath || PageEnum.BASE_HOME); + }, }, ], };