feat: 添加localStorage工具方法用于导入状态持久化

- saveImportTaskToStorage: 保存导入任务到localStorage
- getImportTaskFromStorage: 读取并校验导入任务数据
- clearImportTaskFromStorage: 清除localStorage数据

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
wkc
2026-02-06 12:15:30 +08:00
parent b932a7dba8
commit 3bb50077db

View File

@@ -425,6 +425,68 @@ export default {
} }
}, },
methods: { methods: {
/**
* 保存导入任务到localStorage
* @param {Object} taskData - 任务数据
*/
saveImportTaskToStorage(taskData) {
try {
const data = {
...taskData,
saveTime: Date.now()
};
localStorage.setItem('employee_import_last_task', JSON.stringify(data));
} catch (error) {
console.error('保存导入任务状态失败:', error);
}
},
/**
* 从localStorage读取导入任务
* @returns {Object|null} 任务数据或null
*/
getImportTaskFromStorage() {
try {
const data = localStorage.getItem('employee_import_last_task');
if (!data) return null;
const task = JSON.parse(data);
// 数据格式校验
if (!task || !task.taskId) {
this.clearImportTaskFromStorage();
return null;
}
// 时间戳校验
if (task.saveTime && typeof task.saveTime !== 'number') {
this.clearImportTaskFromStorage();
return null;
}
// 过期检查(7天)
const sevenDays = 7 * 24 * 60 * 60 * 1000;
if (Date.now() - task.saveTime > sevenDays) {
this.clearImportTaskFromStorage();
return null;
}
return task;
} catch (error) {
console.error('读取导入任务状态失败:', error);
this.clearImportTaskFromStorage();
return null;
}
},
/**
* 清除localStorage中的导入任务
*/
clearImportTaskFromStorage() {
try {
localStorage.removeItem('employee_import_last_task');
} catch (error) {
console.error('清除导入任务状态失败:', error);
}
},
/** 查询员工列表 */ /** 查询员工列表 */
getList() { getList() {
this.loading = true; this.loading = true;