fix: 在导入和删除IndexedDB数据时停止轮询并启用离线开发模式以保证数据一致性
This commit is contained in:
@@ -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 importToIndexedDB = async <K extends IndexedDbStoreId>(storeId: K, options?: { successMsg?: string; errorMsg?: string }) => {
|
||||||
const { successMsg, errorMsg } = options ?? {};
|
const { successMsg, errorMsg } = options ?? {};
|
||||||
|
pollingStore.stopPolling();
|
||||||
|
offlineDev.value = true;
|
||||||
const fileInput = document.createElement('input');
|
const fileInput = document.createElement('input');
|
||||||
fileInput.type = 'file';
|
fileInput.type = 'file';
|
||||||
fileInput.accept = '.json';
|
fileInput.accept = '.json';
|
||||||
@@ -113,18 +115,20 @@ const importToIndexedDB = async <K extends IndexedDbStoreId>(storeId: K, options
|
|||||||
reader.onload = async () => {
|
reader.onload = async () => {
|
||||||
const data = destr<IndexedDbStoreStates[K]>(reader.result as string);
|
const data = destr<IndexedDbStoreStates[K]>(reader.result as string);
|
||||||
await localforage.setItem(storeId, data);
|
await localforage.setItem(storeId, data);
|
||||||
window.$message.success(successMsg ?? '导入数据成功');
|
window.$message.success(`${successMsg ?? '导入数据成功'},即将刷新页面`);
|
||||||
await sleep(2000);
|
await sleep(2000);
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
const deleteFromIndexedDB = async (storeId: IndexedDbStoreId) => {
|
const deleteFromIndexedDB = async (storeId: IndexedDbStoreId) => {
|
||||||
|
pollingStore.stopPolling();
|
||||||
|
offlineDev.value = true;
|
||||||
await localforage.removeItem(storeId).catch((error) => {
|
await localforage.removeItem(storeId).catch((error) => {
|
||||||
window.$message.error(`${error}`);
|
window.$message.error(`${error}`);
|
||||||
return;
|
return;
|
||||||
});
|
});
|
||||||
window.$message.success('删除成功');
|
window.$message.success('删除成功,即将刷新页面');
|
||||||
await sleep(2000);
|
await sleep(2000);
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user