65 lines
2.3 KiB
JavaScript
65 lines
2.3 KiB
JavaScript
|
|
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}`);
|
|||
|
|
}
|
|||
|
|
});
|