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: [],//缓存组件的name,cacheList=[v.name] cachedViews: []//加入缓存的name }), actions: { async setCacheKeepAlive(data: Array) { 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 = [] } }, getters: { } })