import fs from 'fs'; // 读取环保岗位简历数据 const resumeData = JSON.parse(fs.readFileSync('网页未导入数据/环保产业/环保岗位简历.json', 'utf8')); // 创建岗位等级映射 const positionLevelMap = {}; resumeData.forEach(item => { positionLevelMap[item.岗位名称] = item.岗位等级标签; }); console.log('岗位等级映射:'); console.log(JSON.stringify(positionLevelMap, null, 2)); // 读取当前的projectLibraryMock.js文件 let mockFileContent = fs.readFileSync('src/mocks/projectLibraryMock.js', 'utf8'); // 更新所有岗位的等级 Object.keys(positionLevelMap).forEach(positionName => { const level = positionLevelMap[positionName]; // 使用正则表达式查找并替换 // 匹配模式: "level": "任意等级", "position": "特定岗位名" const regex = new RegExp( `("level":\\s*)"[^"]*"(,\\s*\\n\\s*"position":\\s*"${positionName.replace(/[()]/g, '\\$&')}")`, 'g' ); mockFileContent = mockFileContent.replace(regex, `$1"${level}"$2`); // 也匹配反向的情况: "position": "特定岗位名" 后面跟着 "level": "任意等级" const regex2 = new RegExp( `("position":\\s*"${positionName.replace(/[()]/g, '\\$&')}"\\s*\\},\\s*\\{\\s*"level":\\s*)"[^"]*"`, 'g' ); // 处理单个岗位对象中的情况 const regex3 = new RegExp( `(\\{\\s*"level":\\s*)"[^"]*"(,\\s*"position":\\s*"${positionName.replace(/[()]/g, '\\$&')}"\\s*\\})`, 'g' ); mockFileContent = mockFileContent.replace(regex3, `$1"${level}"$2`); }); // 保存更新后的文件 fs.writeFileSync('src/mocks/projectLibraryMock.js', mockFileContent); console.log('\\n岗位等级更新完成!'); // 验证更新结果 const updatedContent = fs.readFileSync('src/mocks/projectLibraryMock.js', 'utf8'); const matches = updatedContent.match(/"position":\s*"[^"]+"/g) || []; console.log(`\\n共找到 ${matches.length} 个岗位`); // 提取并显示更新后的岗位等级 console.log('\\n更新后的岗位等级示例:'); const positionBlocks = updatedContent.match(/\{\s*"level":\s*"[^"]+",\s*"position":\s*"[^"]+"\s*\}/g) || []; positionBlocks.slice(0, 10).forEach(block => { const position = block.match(/"position":\s*"([^"]+)"/)?.[1]; const level = block.match(/"level":\s*"([^"]+)"/)?.[1]; if (position && level) { console.log(` ${position}: ${level}`); } });