import fs from 'fs'; import path from 'path'; // 读取环保岗位简历数据 const envData = JSON.parse(fs.readFileSync('./网页未导入数据/环保产业/环保岗位简历.json', 'utf-8')); // 按岗位群分组 const groupedData = {}; envData.forEach(item => { const groupName = item['简历岗位群']; if (!groupedData[groupName]) { groupedData[groupName] = { positions: [], resumes: [] }; } // 构建岗位数据 const position = { id: `env_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, title: item['岗位名称'], level: item['岗位等级标签'], avatar: item['简历头像url'], department: groupName, type: "全职", experience: "1-3年", education: "大专", salary: "5-15K", location: "苏州", updateTime: "2024-01-20", description: `负责${item['岗位名称']}相关工作`, requirements: [] }; // 从简历内容中提取岗位要求 const resumeContent = item['简历内容']; const coreAbilityMatch = resumeContent.match(/### (一)垂直能力\n\n([\s\S]*?)### (二)/); if (coreAbilityMatch) { const abilities = coreAbilityMatch[1].split('\n').filter(line => line.match(/^\d+\./)); position.requirements = abilities.slice(0, 4).map(line => line.replace(/^\d+\.\s*/, '')); } groupedData[groupName].positions.push(position); // 构建简历数据 const resume = { position: item['岗位名称'], level: item['岗位等级标签'], avatar: item['简历头像url'], content: { original: item['简历内容'], modified: item['简历内容'] }, studentInfo: { project_experience: { project_name: item['对应项目案例名称'], position: item['岗位名称'] + '助理', time_period: "XXXXXX", company: "XXXXXX", description: "参与项目实施" }, core_skills: [], compound_skills: [], personal_summary: "" } }; // 提取技能和总结 const coreSkillsMatch = resumeContent.match(/### (一)垂直能力\n\n([\s\S]*?)### (二)/); if (coreSkillsMatch) { const skills = coreSkillsMatch[1].split('\n') .filter(line => line.match(/^\d+\./)) .map(line => line.replace(/^\d+\.\s*/, '').trim()); resume.studentInfo.core_skills = skills.slice(0, 9); } const compoundSkillsMatch = resumeContent.match(/### (二)复合能力\n\n([\s\S]*?)#/); if (compoundSkillsMatch) { const skills = compoundSkillsMatch[1].split('\n') .filter(line => line.match(/^\d+\./)) .map(line => line.replace(/^\d+\.\s*/, '').trim()); resume.studentInfo.compound_skills = skills.slice(0, 9); } const summaryMatch = resumeContent.match(/# 三、个人评价\n\n([\s\S]*?)$/); if (summaryMatch) { resume.studentInfo.personal_summary = summaryMatch[1].trim(); } groupedData[groupName].resumes.push(resume); }); // 生成industries数据 const industries = []; const resumeTemplates = {}; let industryId = 1; Object.keys(groupedData).forEach(groupName => { const industryData = { id: `env_${industryId}`, name: groupName, positions: groupedData[groupName].positions.slice(0, 3), // 每个群取前3个岗位 questions: [ { id: `group_q${industryId}`, question: `# 一、${groupName}专业问题`, subQuestions: [ { id: `q${industryId}_1`, question: `请谈谈您对${groupName}领域的理解和认识?`, answer: `我对${groupName}有深入的理解,包括相关法规、技术标准和实施流程...` }, { id: `q${industryId}_2`, question: `在${groupName}项目中,您如何保证项目质量?`, answer: `我会通过建立完善的质量管理体系,严格执行相关标准...` } ] } ] }; industries.push(industryData); resumeTemplates[groupName] = groupedData[groupName].resumes.slice(0, 3); industryId++; }); // 生成最终的JS文件内容 const jsContent = `// 简历与面试题Mock数据 // 岗位群列表 const industries = ${JSON.stringify(industries, null, 2)}; // 学生个人简历(通用) const myResume = { "name": "张三", "gender": "男", "age": "22", "education": "大专", "major": "环境工程技术", "school": "苏州职业技术学院", "phone": "138****5678", "email": "zhangsan@example.com", "address": "江苏省苏州市", "skills": [ "环境监测与评价", "节能技术应用", "环保设备运维", "数据分析处理" ], "certificates": [ "环境影响评价工程师(初级)", "ISO 14001内审员" ], "internship": "在多家环保企业实习,参与环评项目、节能改造等工作", "selfIntroduction": "我是一名环境工程技术专业的应届毕业生,对环保事业充满热情..." }; // 简历模板数据 const resumeTemplates = ${JSON.stringify(resumeTemplates, null, 2)}; // Mock数据整合 const resumeInterviewMockData = { industries, myResume, resumeTemplates }; // 导出函数 export const getMockPageData = () => { return resumeInterviewMockData; }; `; // 写入文件 fs.writeFileSync('./src/mocks/resumeInterviewMock_env.js', jsContent); console.log('环保数据转换完成!'); console.log('生成了', Object.keys(groupedData).length, '个岗位群'); console.log('总共', envData.length, '个岗位');