yangyin
2024-05-20 d5b197e3b2fa42e3c98eb5913f9267579aadf50d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);
            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 = [];
        },
    },
});