diff --git a/jeecgboot-vue3/src/router/constant.ts b/jeecgboot-vue3/src/router/constant.ts index fb967d8d0..68798598f 100644 --- a/jeecgboot-vue3/src/router/constant.ts +++ b/jeecgboot-vue3/src/router/constant.ts @@ -3,6 +3,9 @@ export const REDIRECT_NAME = 'Redirect'; export const PARENT_LAYOUT_NAME = 'ParentLayout'; export const PAGE_NOT_FOUND_NAME = 'PageNotFound'; +// update-begin--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 +export const PAGE_NOT_FOUND_NAME_404 = 'PageNotFound404'; +// update-end--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 export const EXCEPTION_COMPONENT = () => import('/@/views/sys/exception/Exception.vue'); diff --git a/jeecgboot-vue3/src/router/guard/permissionGuard.ts b/jeecgboot-vue3/src/router/guard/permissionGuard.ts index deb36d3c7..ccc5c3783 100644 --- a/jeecgboot-vue3/src/router/guard/permissionGuard.ts +++ b/jeecgboot-vue3/src/router/guard/permissionGuard.ts @@ -12,6 +12,7 @@ import { RootRoute } from '/@/router/routes'; import { isOAuth2AppEnv } from '/@/views/sys/login/useLogin'; import { OAUTH2_THIRD_LOGIN_TENANT_ID } from "/@/enums/cacheEnum"; import { setAuthCache } from "/@/utils/auth"; +import { PAGE_NOT_FOUND_NAME_404 } from '/@/router/constant'; const LOGIN_PATH = PageEnum.BASE_LOGIN; //auth2登录路由 @@ -162,12 +163,13 @@ export function createPermissionGuard(router: Router) { return; } //==============================【首次登录并且是企业微信或者钉钉的情况下才会调用】================== - + // update-begin--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 // Jump to the 404 page after processing the login - if (from.path === LOGIN_PATH && to.name === PAGE_NOT_FOUND_ROUTE.name && to.fullPath !== (userStore.getUserInfo.homePath || PageEnum.BASE_HOME)) { + if (from.path === LOGIN_PATH && to.name === PAGE_NOT_FOUND_NAME_404 && to.fullPath !== (userStore.getUserInfo.homePath || PageEnum.BASE_HOME)) { next(userStore.getUserInfo.homePath || PageEnum.BASE_HOME); return; } + // update-end--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 //update-begin---author:scott ---date:2024-02-21 for:【QQYUN-8326】刷新首页,不需要重新获取用户信息--- // // get userinfo while last fetch time is empty @@ -199,8 +201,8 @@ export function createPermissionGuard(router: Router) { router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); permissionStore.setDynamicAddedRoute(true); - - if (to.name === PAGE_NOT_FOUND_ROUTE.name) { + // update-begin--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 + if (to.name === PAGE_NOT_FOUND_NAME_404) { // 动态添加路由后,此处应当重定向到fullPath,否则会加载404页面内容 next({ path: to.fullPath, replace: true, query: to.query }); } else { @@ -209,5 +211,6 @@ export function createPermissionGuard(router: Router) { const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect }; next(nextData); } + // update-end--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 }); } diff --git a/jeecgboot-vue3/src/router/routes/basic.ts b/jeecgboot-vue3/src/router/routes/basic.ts index a442a56ec..cdf2d3c09 100644 --- a/jeecgboot-vue3/src/router/routes/basic.ts +++ b/jeecgboot-vue3/src/router/routes/basic.ts @@ -1,13 +1,12 @@ 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 { REDIRECT_NAME, LAYOUT, EXCEPTION_COMPONENT, PAGE_NOT_FOUND_NAME, PAGE_NOT_FOUND_NAME_404 } from '/@/router/constant'; // 404 on a page export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = { path: '/:path(.*)*', - // update-begin--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 - name: 'PageNotFound404', - // update-end--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 + + name: PAGE_NOT_FOUND_NAME, component: LAYOUT, meta: { title: 'ErrorPage', @@ -17,7 +16,9 @@ export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = { children: [ { path: '/:path(.*)*', - name: PAGE_NOT_FOUND_NAME, + // update-begin--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 + name: PAGE_NOT_FOUND_NAME_404, + // update-end--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 component: EXCEPTION_COMPONENT, meta: { title: 'ErrorPage', diff --git a/jeecgboot-vue3/src/store/modules/multipleTab.ts b/jeecgboot-vue3/src/store/modules/multipleTab.ts index aae650212..8893ae45d 100644 --- a/jeecgboot-vue3/src/store/modules/multipleTab.ts +++ b/jeecgboot-vue3/src/store/modules/multipleTab.ts @@ -3,6 +3,7 @@ import type { RouteLocationNormalized, RouteLocationRaw, Router } from 'vue-rout import { toRaw, unref } from 'vue'; import { defineStore } from 'pinia'; import { store } from '/@/store'; +import { PAGE_NOT_FOUND_NAME_404 } from '/@/router/constant'; import { useGo, useRedo } from '/@/hooks/web/usePage'; import { Persistent } from '/@/utils/cache/persistent'; @@ -152,15 +153,17 @@ export const useMultipleTabStore = defineStore({ async addTab(route: RouteLocationNormalized) { const { path, name, fullPath, params, query, meta } = getRawRoute(route); + // update-begin--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 // 404 The page does not need to add a tab if ( path === PageEnum.ERROR_PAGE || path === PageEnum.BASE_LOGIN || !name || - [REDIRECT_ROUTE.name, PAGE_NOT_FOUND_ROUTE.name].includes(name as string) + [REDIRECT_ROUTE.name, PAGE_NOT_FOUND_NAME_404].includes(name as string) ) { return; } + // update-end--author:liaozhiyang---date:202401127---for:【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 let updateIndex = -1; // Existing pages, do not add tabs repeatedly