/** * 简历管理服务 * 处理个人修改版简历的CRUD操作 */ const STORAGE_KEY = 'resume_custom_versions'; // 获取所有个人修改版 export const getCustomVersions = () => { try { const saved = localStorage.getItem(STORAGE_KEY); return saved ? JSON.parse(saved) : []; } catch (error) { console.error('获取个人修改版失败:', error); return []; } }; // 保存个人修改版列表 export const saveCustomVersions = (versions) => { try { localStorage.setItem(STORAGE_KEY, JSON.stringify(versions)); return { success: true }; } catch (error) { console.error('保存个人修改版失败:', error); return { success: false, error: error.message }; } }; // 创建新的个人修改版 export const createCustomVersion = (data) => { try { const versions = getCustomVersions(); const newVersion = { id: Date.now().toString(), name: data.name, content: data.content, positionTitle: data.positionTitle, originalVersion: data.originalVersion || 'default', tags: data.tags || [], createdAt: new Date().toISOString(), updatedAt: new Date().toISOString() }; const updatedVersions = [...versions, newVersion]; const result = saveCustomVersions(updatedVersions); if (result.success) { return { success: true, data: newVersion }; } else { return result; } } catch (error) { console.error('创建个人修改版失败:', error); return { success: false, error: error.message }; } }; // 更新个人修改版 export const updateCustomVersion = (id, data) => { try { const versions = getCustomVersions(); const index = versions.findIndex(v => v.id === id); if (index === -1) { return { success: false, error: '版本不存在' }; } versions[index] = { ...versions[index], ...data, updatedAt: new Date().toISOString() }; const result = saveCustomVersions(versions); if (result.success) { return { success: true, data: versions[index] }; } else { return result; } } catch (error) { console.error('更新个人修改版失败:', error); return { success: false, error: error.message }; } }; // 删除个人修改版 export const deleteCustomVersion = (id) => { try { const versions = getCustomVersions(); const updatedVersions = versions.filter(v => v.id !== id); const result = saveCustomVersions(updatedVersions); return result; } catch (error) { console.error('删除个人修改版失败:', error); return { success: false, error: error.message }; } }; // 根据岗位获取版本 export const getVersionsByPosition = (positionTitle) => { const versions = getCustomVersions(); return versions.filter(v => v.positionTitle === positionTitle); }; // 根据ID获取单个版本 export const getVersionById = (id) => { const versions = getCustomVersions(); return versions.find(v => v.id === id); }; // 检查版本名称是否重复 export const isVersionNameExists = (name, positionTitle) => { const versions = getCustomVersions(); return versions.some(v => v.name === name && v.positionTitle === positionTitle); }; // 导出版本为JSON export const exportVersion = (id) => { const version = getVersionById(id); if (!version) { return { success: false, error: '版本不存在' }; } try { const dataStr = JSON.stringify(version, null, 2); const dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(dataStr); const exportFileDefaultName = `resume_${version.positionTitle}_${version.name}.json`; const linkElement = document.createElement('a'); linkElement.setAttribute('href', dataUri); linkElement.setAttribute('download', exportFileDefaultName); linkElement.click(); return { success: true }; } catch (error) { console.error('导出版本失败:', error); return { success: false, error: error.message }; } }; // 导入版本 export const importVersion = (jsonData) => { try { const version = JSON.parse(jsonData); version.id = Date.now().toString(); // 生成新ID version.importedAt = new Date().toISOString(); const versions = getCustomVersions(); const updatedVersions = [...versions, version]; const result = saveCustomVersions(updatedVersions); if (result.success) { return { success: true, data: version }; } else { return result; } } catch (error) { console.error('导入版本失败:', error); return { success: false, error: '无效的JSON格式' }; } };