diff --git a/Web/src/layout/navBars/topBar/user.vue b/Web/src/layout/navBars/topBar/user.vue index 7f628eb7..feceb9b8 100644 --- a/Web/src/layout/navBars/topBar/user.vue +++ b/Web/src/layout/navBars/topBar/user.vue @@ -119,6 +119,7 @@ import { SysAuthApi, SysNoticeApi, SysUpgradeApi, SysUserApi } from '/@/api-serv import { languageList, getCountryCode } from '/@/i18n'; import FlagIcon from 'vue3-flag-icons'; import type { CountryCode } from 'vue3-flag-icons'; +import { useRoutesList } from '/@/stores/routesList'; // 引入组件 const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/topBar/userNews.vue')); @@ -126,6 +127,7 @@ const Search = defineAsyncComponent(() => import('/@/layout/navBars/topBar/searc const OnlineUser = defineAsyncComponent(() => import('/@/views/system/onlineUser/index.vue')); const ChangePassword = defineAsyncComponent(() => import('/@/views/system/user/component/changePassword.vue')); const UpgradeInfo = defineAsyncComponent(() => import('/@/views/system/upgrade/component/upgradeInfo.vue')); +const routeStores = useRoutesList(); // 定义变量内容 const { locale, t } = useI18n(); @@ -248,9 +250,12 @@ const onLanguageChange = (lang: string) => { locale.value = lang; other.useTitle(); initI18nOrSize('globalI18n', 'disabledI18n'); - // window.location.reload(); - // 关闭全部标签页 - // mittBus.emit('onCurrentContextmenuClick', { contextMenuClickId: 3 }); + refreshCurrentTabpage(); +}; + +//刷新当前tabpage. +const refreshCurrentTabpage = () => { + mittBus.emit('onCurrentContextmenuClick', { ...routeStores.currentRoute, contextMenuClickId: 0 }); }; // 初始化组件大小/i18n diff --git a/Web/src/router/index.ts b/Web/src/router/index.ts index 21a176bf..3dfa3874 100644 --- a/Web/src/router/index.ts +++ b/Web/src/router/index.ts @@ -24,6 +24,7 @@ import { initBackEndControlRoutes } from '/@/router/backEnd'; const storesThemeConfig = useThemeConfig(pinia); const { themeConfig } = storeToRefs(storesThemeConfig); const { isRequestRoutes } = themeConfig.value; +const routeStores = useRoutesList(); /** * 创建一个可以被 Vue 应用程序使用的路由实例 @@ -95,6 +96,7 @@ export function formatTwoStageRoutes(arr: any) { // 路由加载前 router.beforeEach(async (to, from, next) => { NProgress.configure({ showSpinner: false }); + routeStores.setCurrentRoute(to as unknown as RouteItem); //记录最新当前路由对象. if (to.meta.title) NProgress.start(); const token = Session.get('token'); if (to.meta.isPublic && !token) { diff --git a/Web/src/stores/routesList.ts b/Web/src/stores/routesList.ts index 5e3a249e..909e3914 100644 --- a/Web/src/stores/routesList.ts +++ b/Web/src/stores/routesList.ts @@ -11,8 +11,12 @@ export const useRoutesList = defineStore('routesList', { routesList: [], isColumnsMenuHover: false, isColumnsNavHover: false, + currentRoute: null, }), actions: { + setCurrentRoute(route: RouteItem) { + this.currentRoute = route; + }, async setRoutesList(data: Array) { this.routesList = data; },