Files
ALL-teach_sys/frontend_环保/updatePositionLevels.js

65 lines
2.3 KiB
JavaScript
Raw Normal View History

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}`);
}
});