12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import { defineStore } from "pinia";
- import { KeepAliveState } from "@/stores/interface";
- import { cloneDeep } from "lodash-es";
- export const useKeepAliveStore = defineStore({
- id: "geeker-keepAlive",
- state: (): KeepAliveState => ({
- keepAliveName: [],
- keepAliveList: []
- }),
- getters: {
- getKeepAliveList(): any[] {
- return this.keepAliveList;
- }
- },
- actions: {
- setKeepAliveList(keepAliveList: any) {
- this.keepAliveList = keepAliveList;
- console.log("getKeepAliveName routeItem setKeepAliveList :>> ", JSON.stringify(this.keepAliveList));
- console.log("getKeepAliveName routeItem setKeepAliveList :>> ", this.keepAliveList);
- },
- // Add KeepAliveName
- async addKeepAliveName(route: any) {
- !this.keepAliveName.includes(route.name) && this.keepAliveName.push(route.name);
- let routeItem = this.keepAliveList.find((item: any) => item.fullPath == route.fullPath);
- if (!routeItem) {
- routeItem = {
- fullPath: route.fullPath,
- times: 0
- };
- this.keepAliveList.push(routeItem);
- }
- },
- // Remove KeepAliveName
- removeKeepAliveName(route: any) {
- console.log("removeKeepAliveName :>> ", route.name, route);
- this.keepAliveName = this.keepAliveName.filter(item => item !== route.name);
- // this.keepAliveList = this.keepAliveList.filter(item => item.fullPath !== route.path);
- let index = this.keepAliveList.findIndex(item => item.fullPath === route.path);
- if (index > -1) {
- this.keepAliveList.splice(index, 1);
- }
- // const { keepAliveList } = this;
- // let arr = cloneDeep(this.keepAliveList);
- // this.keepAliveList = [];
- // arr.filter(item => item.fullPath !== route.path);
- // setTimeout(() => {
- // keepAliveList = arr;
- // }, 0);
- // .forEach(item => {
- // this.keepAliveList.push(item);
- // });
- // this.keepAliveList = arr;
- // this.setKeepAliveList(arr);
- console.log("getKeepAliveName routeItem removeKeepAliveName :>> ", JSON.stringify(this.keepAliveList));
- console.log("getKeepAliveName routeItem removeKeepAliveName :>> ", this.keepAliveList);
- console.log("getKeepAliveName routeItem keepAliveName :>> ", this.keepAliveName);
- },
- // Set KeepAliveName
- async setKeepAliveName(keepAliveName: string[] = []) {
- this.keepAliveName = keepAliveName;
- },
- async updateKeepAliveName(route: any) {
- this.addKeepAliveName(route);
- this.keepAliveList.forEach((item: any) => {
- console.log("updateKeepAliveName item :>> ", item.fullPath, route.fullPath, item.fullPath == route.fullPath);
- if (item.fullPath == route.fullPath) {
- item.times++;
- }
- });
- },
- getKeepAliveName(name: string) {
- let routeItem = this.keepAliveList.find((item: any) => item.fullPath == name);
- if (!routeItem) {
- routeItem = {
- fullPath: name,
- times: 0
- };
- this.keepAliveList.push(routeItem);
- }
- console.log("getKeepAliveName routeItem :>> ", routeItem, this.keepAliveList);
- return routeItem;
- }
- }
- });
|