fix: 在导入和删除IndexedDB数据时停止轮询并启用离线开发模式以保证数据一致性

This commit is contained in:
yangsy
2025-12-15 12:49:21 +08:00
parent 91a2fcb743
commit 426d92a5f9

View File

@@ -98,6 +98,8 @@ const exportFromIndexedDB = async <K extends IndexedDbStoreId>(storeId: K, optio
};
const importToIndexedDB = async <K extends IndexedDbStoreId>(storeId: K, options?: { successMsg?: string; errorMsg?: string }) => {
const { successMsg, errorMsg } = options ?? {};
pollingStore.stopPolling();
offlineDev.value = true;
const fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.accept = '.json';
@@ -113,18 +115,20 @@ const importToIndexedDB = async <K extends IndexedDbStoreId>(storeId: K, options
reader.onload = async () => {
const data = destr<IndexedDbStoreStates[K]>(reader.result as string);
await localforage.setItem(storeId, data);
window.$message.success(successMsg ?? '导入数据成功');
window.$message.success(`${successMsg ?? '导入数据成功'},即将刷新页面`);
await sleep(2000);
window.location.reload();
};
};
};
const deleteFromIndexedDB = async (storeId: IndexedDbStoreId) => {
pollingStore.stopPolling();
offlineDev.value = true;
await localforage.removeItem(storeId).catch((error) => {
window.$message.error(`${error}`);
return;
});
window.$message.success('删除成功');
window.$message.success('删除成功,即将刷新页面');
await sleep(2000);
window.location.reload();
};