diff --git a/packages/@core/forward/stores/src/modules/tabbar.ts b/packages/@core/forward/stores/src/modules/tabbar.ts index 4d9535b5..04928af9 100644 --- a/packages/@core/forward/stores/src/modules/tabbar.ts +++ b/packages/@core/forward/stores/src/modules/tabbar.ts @@ -143,6 +143,7 @@ const useCoreTabbarStore = defineStore('core-tabbar', { currentTab.params = params || currentTab.params; currentTab.query = query || currentTab.query; currentTab.fullPath = fullPath || currentTab.fullPath; + currentTab.meta = meta || currentTab.meta; this.tabs.splice(tabIndex, 1, currentTab); } this.updateCacheTab(); @@ -285,7 +286,13 @@ const useCoreTabbarStore = defineStore('core-tabbar', { this.tabs[index].meta.affixTab = true; } // TODO: 这里应该把tab从tbs中移除 - this.affixTabs.push(tab as unknown as RouteRecordNormalized); + const affixIndex = this.affixTabs.findIndex( + (item) => this.getTabPath(item) === this.getTabPath(tab), + ); + if (affixIndex === -1) { + tab.meta.affixTab = true; + this.affixTabs.push(tab as unknown as RouteRecordNormalized); + } }, /** * 刷新标签页 @@ -324,6 +331,7 @@ const useCoreTabbarStore = defineStore('core-tabbar', { ); if (index !== -1) { + tab.meta.affixTab = false; this.affixTabs[index].meta.affixTab = false; this.affixTabs.splice(index, 1); this.addTab(tab);