🐞 fix(tabs): fix redirect tag while refresh in header

This commit is contained in:
BlushGo
2025-03-19 23:02:46 +08:00
parent f68ec16563
commit 764cb71f39
3 changed files with 23 additions and 19 deletions

View File

@@ -44,7 +44,7 @@
<n-breadcrumb v-if="crumbsSetting.show">
<template
v-for="routeItem in breadcrumbList"
:key="routeItem.name === 'Redirect' ? void 0 : routeItem.name"
:key="routeItem.name === RedirectName ? void 0 : routeItem.name"
>
<n-breadcrumb-item v-if="routeItem.meta.title">
<n-dropdown
@@ -129,17 +129,18 @@
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs, ref, computed, unref } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import components from './components';
import { NDialogProvider, useDialog, useMessage } from 'naive-ui';
import { TABS_ROUTES } from '@/store/mutation-types';
import { useUserStore } from '@/store/modules/user';
import { useScreenLockStore } from '@/store/modules/screenLock';
import ProjectSetting from './ProjectSetting.vue';
import { AsideMenu } from '@/layout/components/Menu';
import { useProjectSetting } from '@/hooks/setting/useProjectSetting';
import { websiteConfig } from '@/config/website.config';
import { useProjectSetting } from '@/hooks/setting/useProjectSetting';
import { AsideMenu } from '@/layout/components/Menu';
import { RedirectName } from '@/router/constant';
import { useScreenLockStore } from '@/store/modules/screenLock';
import { useUserStore } from '@/store/modules/user';
import { TABS_ROUTES } from '@/store/mutation-types';
import { NDialogProvider, useDialog, useMessage } from 'naive-ui';
import { computed, defineComponent, reactive, ref, toRefs, unref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import components from './components';
import ProjectSetting from './ProjectSetting.vue';
export default defineComponent({
name: 'PageHeader',
@@ -346,6 +347,7 @@
mixMenu,
websiteConfig,
handleMenuCollapsed,
RedirectName,
};
},
});

View File

@@ -1,11 +1,12 @@
import type { RouteRecordRaw } from 'vue-router';
import { isNavigationFailure, Router } from 'vue-router';
import { useUser } from '@/store/modules/user';
import { useAsyncRoute } from '@/store/modules/asyncRoute';
import { ACCESS_TOKEN } from '@/store/mutation-types';
import { storage } from '@/utils/Storage';
import { PageEnum } from '@/enums/pageEnum';
import { ErrorPageRoute } from '@/router/base';
import { useAsyncRoute } from '@/store/modules/asyncRoute';
import { useUser } from '@/store/modules/user';
import { ACCESS_TOKEN } from '@/store/mutation-types';
import { storage } from '@/utils/Storage';
import type { RouteRecordRaw } from 'vue-router';
import { isNavigationFailure, Router } from 'vue-router';
import { RedirectName } from './constant';
const LOGIN_PATH = PageEnum.BASE_LOGIN;
@@ -91,7 +92,7 @@ export function createRouterGuards(router: Router) {
if (currentComName && !keepAliveComponents.includes(currentComName) && to.meta?.keepAlive) {
// 需要缓存的组件
keepAliveComponents.push(currentComName);
} else if (!to.meta?.keepAlive || to.name == 'Redirect') {
} else if (!to.meta?.keepAlive || to.name == RedirectName) {
// 不需要缓存的组件
const index = asyncRouteStore.keepAliveComponents.findIndex((name) => name == currentComName);
if (index != -1) {

View File

@@ -1,8 +1,9 @@
import { RedirectName } from '@/router/constant';
import { defineStore } from 'pinia';
import { RouteLocationNormalized } from 'vue-router';
// 不需要出现在标签页中的路由
const whiteList = ['Redirect', 'login'];
const whiteList = [RedirectName, `${RedirectName}Son`, 'login'];
export type RouteItem = Partial<RouteLocationNormalized> & {
fullPath: string;