From 1c8b73a3812a962bd232fab753b48c6dfce80858 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 3 Nov 2025 01:29:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E8=83=B6=E5=9B=8A?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=92=8C=E7=A7=BB=E9=99=A4=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/js/components/MicroApps/index.vue | 56 +++++++++++++------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/resources/assets/js/components/MicroApps/index.vue b/resources/assets/js/components/MicroApps/index.vue index 2b2aea70e..bdddc2e27 100644 --- a/resources/assets/js/components/MicroApps/index.vue +++ b/resources/assets/js/components/MicroApps/index.vue @@ -322,18 +322,7 @@ export default { capsule: config, } }) - ;(async () => { - const cache = await $A.IDBJson("microAppsCapsuleCache"); - if ($A.isTrue(config.no_cache)) { - if (typeof cache[name] === "undefined") { - return - } - delete cache[name]; - } else { - cache[name] = config; - } - await $A.IDBSet("microAppsCapsuleCache", cache); - })() + this.setCapsuleCache(name, config) }, nextZIndex: () => { if (typeof window.modalTransferIndex === 'number') { @@ -366,6 +355,37 @@ export default { } }, + /** + * 设置胶囊缓存 + * @param name + * @param config + */ + async setCapsuleCache(name, config) { + const cache = await $A.IDBJson("microAppsCapsuleCache"); + if ($A.isTrue(config.no_cache)) { + if (typeof cache[name] === "undefined") { + return + } + delete cache[name]; + } else { + cache[name] = config; + } + await $A.IDBSet("microAppsCapsuleCache", cache); + }, + + /** + * 移除胶囊缓存 + * @param name + */ + async removeCapsuleCache(name) { + const cache = await $A.IDBJson("microAppsCapsuleCache"); + if (typeof cache[name] === "undefined") { + return + } + delete cache[name]; + await $A.IDBSet("microAppsCapsuleCache", cache); + }, + /** * 观察打开微应用 * @param config @@ -374,10 +394,12 @@ export default { // 备份配置 this.backupConfigs[config.name] = $A.cloneJSON(config); - // 如果没有胶囊配置,则从缓存中恢复 - if (!$A.isHave(config.capsule, true)) { - const capsuleCache = await $A.IDBJson("microAppsCapsuleCache"); - if ($A.isJson(capsuleCache[config.name])) { + // 从缓存读取胶囊配置 + const capsuleCache = await $A.IDBJson("microAppsCapsuleCache"); + if ($A.isJson(capsuleCache[config.name])) { + if ($A.isHave(config.capsule, true)) { + Object.assign(config.capsule, capsuleCache[config.name]); + } else { config.capsule = capsuleCache[config.name]; } } @@ -648,10 +670,12 @@ export default { break; case "restart": + this.removeCapsuleCache(name) this.onRestartApp(name) break; case "destroy": + this.removeCapsuleCache(name) this.closeMicroApp(name, true) break;