From c78d89f549f9aefad55dafea24e7b1a97e90cb37 Mon Sep 17 00:00:00 2001 From: layhuts Date: Sat, 9 May 2026 13:16:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E9=9D=9E=E5=8E=9F?= =?UTF-8?q?=E5=AD=90=E6=80=A7=E7=9A=84=E5=85=88=E6=B8=85=E9=99=A4=E5=90=8E?= =?UTF-8?q?=E5=86=99=E5=85=A5=E6=93=8D=E4=BD=9C=E4=BC=9AsetKeys=E5=B8=A6?= =?UTF-8?q?=E6=9D=A5=E6=B0=B8=E4=B9=85=E6=80=A7=E6=95=B0=E6=8D=AE=E4=B8=A2?= =?UTF-8?q?=E5=A4=B1=E7=9A=84=E9=A3=8E=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../effects/plugins/src/vxe-table/use-viewed-row.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/effects/plugins/src/vxe-table/use-viewed-row.ts b/packages/effects/plugins/src/vxe-table/use-viewed-row.ts index e4f2e74ba..8b60a2dd7 100644 --- a/packages/effects/plugins/src/vxe-table/use-viewed-row.ts +++ b/packages/effects/plugins/src/vxe-table/use-viewed-row.ts @@ -94,11 +94,17 @@ function createIndexedDBAdapter( }, async setKeys(keys) { try { - // 先清除旧数据,再逐条写入 - await manager.clear(); + const newKeySet = new Set(keys.map(String)); + // 先写入新数据,确保数据安全落盘 await Promise.all( keys.map((key) => manager.setItem(String(key), key, opts.ttl)), ); + // 再清理不在新集合中的旧 key + const existingKeys = await manager.keys(); + const toRemove = existingKeys.filter((k) => !newKeySet.has(k)); + if (toRemove.length > 0) { + await Promise.all(toRemove.map((k) => manager.removeItem(k))); + } } catch (error) { console.error('[viewedRow] indexedDB persist failed:', error); }