mart-admin/src/stores/keepAliveNames.ts

36 lines
1.2 KiB
TypeScript
Raw Normal View History

import { defineStore } from 'pinia';
2022-04-25 19:05:12 +08:00
/**
*
* @methods setCacheKeepAlive names Tagsview
* @methods addCachedView names Tagsview
* @methods delCachedView names Tagsview
* @methods delOthersCachedViews `关闭其它` names Tagsview
* @methods delAllCachedViews `全部关闭` names Tagsview
2022-04-25 19:05:12 +08:00
*/
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);
index > -1 && this.cachedViews.splice(index, 1);
},
async delOthersCachedViews(view: any) {
if (view.meta.isKeepAlive) this.cachedViews = [view.name];
else this.cachedViews = [];
},
async delAllCachedViews() {
this.cachedViews = [];
},
},
});