diff --git a/web/src/layout/components/TagsView/index.vue b/web/src/layout/components/TagsView/index.vue index 34ff6f2..f6052c8 100644 --- a/web/src/layout/components/TagsView/index.vue +++ b/web/src/layout/components/TagsView/index.vue @@ -497,6 +497,16 @@ observer.listenTo(navWrap.value, handleResize); } + watch( + () => tabsViewStore.signal, + (key) => { + if (key != '') { + closeHandleSelect(key); + tabsViewStore.closeSignal(''); + } + } + ); + return { ...toRefs(state), navWrap, diff --git a/web/src/store/modules/tabsView.ts b/web/src/store/modules/tabsView.ts index 9fc0ff2..0838015 100644 --- a/web/src/store/modules/tabsView.ts +++ b/web/src/store/modules/tabsView.ts @@ -16,6 +16,7 @@ export type RouteItem = Partial & { export type ITabsViewState = { tabsList: RouteItem[]; // 标签页 + signal: string; // 关闭信号 }; //保留固定路由 @@ -27,6 +28,7 @@ export const useTabsViewStore = defineStore({ id: 'app-tabs-view', state: (): ITabsViewState => ({ tabsList: [], + signal: '', }), getters: {}, actions: { @@ -69,5 +71,9 @@ export const useTabsViewStore = defineStore({ console.log(retainAffixRoute(this.tabsList)); this.tabsList = retainAffixRoute(this.tabsList); }, + closeSignal(signal: string) { + // 设置tab关闭信号, 1刷新 2关闭当前 3关闭其他 4关闭全部 + this.signal = signal; + }, }, });