Browse Source

fix: 修复开启`keepAlive`后点击标签页的重新加载,页面缓存还存在的问题

xiaoxian521 2 năm trước cách đây
mục cha
commit
09cbc7ddc3

+ 1 - 0
src/layout/components/tag/index.vue

@@ -169,6 +169,7 @@ function onFresh() {
     path: "/redirect" + fullPath,
     query
   });
+  handleAliveRoute(route as toRouteType, "refresh");
 }
 
 function deleteDynamicTag(obj: any, current: any, tag?: string) {

+ 6 - 0
src/router/utils.ts

@@ -270,6 +270,12 @@ function handleAliveRoute({ name }: toRouteType, mode?: string) {
         name
       });
       break;
+    case "refresh":
+      usePermissionStoreHook().cacheOperate({
+        mode: "refresh",
+        name
+      });
+      break;
     default:
       usePermissionStoreHook().cacheOperate({
         mode: "delete",

+ 4 - 2
src/store/modules/permission.ts

@@ -24,13 +24,15 @@ export const usePermissionStore = defineStore({
       );
     },
     cacheOperate({ mode, name }: cacheType) {
+      const delIndex = this.cachePageList.findIndex(v => v === name);
       switch (mode) {
+        case "refresh":
+          this.cachePageList = this.cachePageList.filter(v => v !== name);
+          break;
         case "add":
           this.cachePageList.push(name);
           break;
         case "delete":
-          // eslint-disable-next-line no-case-declarations
-          const delIndex = this.cachePageList.findIndex(v => v === name);
           delIndex !== -1 && this.cachePageList.splice(delIndex, 1);
           break;
       }