diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts
index ca7514a52..af626514a 100644
--- a/mock/asyncRoutes.ts
+++ b/mock/asyncRoutes.ts
@@ -118,6 +118,7 @@ const frameRouter = {
meta: {
title: "menus.hsEpDocument",
frameSrc: "https://element-plus.org/zh-CN/",
+ keepAlive: true,
roles: ["admin", "common"]
}
},
@@ -127,6 +128,7 @@ const frameRouter = {
meta: {
title: "menus.hsTailwindcssDocument",
frameSrc: "https://tailwindcss.com/docs/installation",
+ keepAlive: true,
roles: ["admin", "common"]
}
},
@@ -136,6 +138,7 @@ const frameRouter = {
meta: {
title: "menus.hsVueDocument",
frameSrc: "https://cn.vuejs.org/",
+ keepAlive: true,
roles: ["admin", "common"]
}
},
@@ -145,6 +148,7 @@ const frameRouter = {
meta: {
title: "menus.hsViteDocument",
frameSrc: "https://cn.vitejs.dev/",
+ keepAlive: true,
roles: ["admin", "common"]
}
},
@@ -154,6 +158,7 @@ const frameRouter = {
meta: {
title: "menus.hsPiniaDocument",
frameSrc: "https://pinia.vuejs.org/zh/index.html",
+ keepAlive: true,
roles: ["admin", "common"]
}
},
@@ -163,6 +168,7 @@ const frameRouter = {
meta: {
title: "menus.hsRouterDocument",
frameSrc: "https://router.vuejs.org/zh/",
+ keepAlive: true,
roles: ["admin", "common"]
}
}
diff --git a/src/layout/components/appMain.vue b/src/layout/components/appMain.vue
index b3564cd7d..0e7927dd3 100644
--- a/src/layout/components/appMain.vue
+++ b/src/layout/components/appMain.vue
@@ -1,6 +1,7 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/keepAliveFrame/useMultiFrame.ts b/src/layout/components/keepAliveFrame/useMultiFrame.ts
new file mode 100644
index 000000000..73a779d2e
--- /dev/null
+++ b/src/layout/components/keepAliveFrame/useMultiFrame.ts
@@ -0,0 +1,25 @@
+const MAP = new Map();
+
+export const useMultiFrame = () => {
+ function setMap(path, Comp) {
+ MAP.set(path, Comp);
+ }
+
+ function getMap(path?) {
+ if (path) {
+ return MAP.get(path);
+ }
+ return [...MAP.entries()];
+ }
+
+ function delMap(path) {
+ MAP.delete(path);
+ }
+
+ return {
+ setMap,
+ getMap,
+ delMap,
+ MAP
+ };
+};
diff --git a/src/layout/frameView.vue b/src/layout/frameView.vue
index 35660488e..c7c9719d8 100644
--- a/src/layout/frameView.vue
+++ b/src/layout/frameView.vue
@@ -1,18 +1,24 @@