UNIVPLMDataIntegration/Web/src/stores/keepAliveNames.ts

38 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-06-15 13:02:35 +08:00
import { defineStore } from 'pinia';
/**
*
* @methods setCacheKeepAlive names Tagsview
* @methods addCachedView names Tagsview
* @methods delCachedView names Tagsview
* @methods delOthersCachedViews `关闭其它` names Tagsview
* @methods delAllCachedViews `全部关闭` names Tagsview
*/
export const useKeepALiveNames = defineStore('keepALiveNames', {
state: (): KeepAliveNamesState => ({
keepAliveNames: [],
cachedViews: [],
}),
actions: {
async setCacheKeepAlive(data: Array<string>) {
this.keepAliveNames = data;
},
async addCachedView(view: any) {
if (view.meta.isKeepAlive) this.cachedViews?.push(view.name);
},
async delCachedView(view: any) {
const index = this.cachedViews.indexOf(view.name);
2024-08-28 17:46:16 +08:00
setTimeout(() => {
index > -1 && this.cachedViews.splice(index, 1);
}, 20)
2024-06-15 13:02:35 +08:00
},
async delOthersCachedViews(view: any) {
if (view.meta.isKeepAlive) this.cachedViews = [view.name];
else this.cachedViews = [];
},
async delAllCachedViews() {
this.cachedViews = [];
},
},
});