主要内容: - 包含12个产业的完整教务系统前端代码 - 智能启动脚本 (start-industry.sh) - 可视化产业导航页面 (index.html) - 项目文档 (README.md) 优化内容: - 删除所有node_modules和.yoyo文件夹,从7.5GB减少到2.7GB - 添加.gitignore文件避免上传不必要的文件 - 自动依赖管理和智能启动系统 产业列表: 1. 文旅产业 (5150) 2. 智能制造 (5151) 3. 智能开发 (5152) 4. 财经商贸 (5153) 5. 视觉设计 (5154) 6. 交通物流 (5155) 7. 大健康 (5156) 8. 土木水利 (5157) 9. 食品产业 (5158) 10. 化工产业 (5159) 11. 能源产业 (5160) 12. 环保产业 (5161) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
102 lines
3.5 KiB
JavaScript
102 lines
3.5 KiB
JavaScript
import fs from 'fs';
|
||
|
||
// 读取交通物流岗位简历数据
|
||
const trafficLogisticsData = JSON.parse(fs.readFileSync('网页未导入数据/交通物流产业/交通物流岗位简历.json', 'utf-8'));
|
||
|
||
// 按等级分组
|
||
const jobLevelData = {
|
||
code: 200,
|
||
message: "操作成功",
|
||
data: {
|
||
high: {
|
||
name: "储备干部岗",
|
||
list: []
|
||
},
|
||
middle: {
|
||
name: "技术骨干岗",
|
||
list: []
|
||
},
|
||
ordinary: {
|
||
name: "基础岗",
|
||
list: []
|
||
}
|
||
}
|
||
};
|
||
|
||
// 遍历数据,按等级分组
|
||
trafficLogisticsData.forEach((item, index) => {
|
||
const record = {
|
||
record_id: `traffic_logistics_${index + 1}`,
|
||
position_name: item.岗位名称,
|
||
img: item.简历头像url
|
||
};
|
||
|
||
// 根据岗位等级标签分配到对应的级别
|
||
switch(item.岗位等级标签) {
|
||
case "储备干部岗":
|
||
jobLevelData.data.high.list.push(record);
|
||
break;
|
||
case "技术骨干岗":
|
||
jobLevelData.data.middle.list.push(record);
|
||
break;
|
||
case "基础岗":
|
||
case "普通岗":
|
||
default:
|
||
jobLevelData.data.ordinary.list.push(record);
|
||
break;
|
||
}
|
||
});
|
||
|
||
// 统计信息
|
||
console.log('生成的joblevel.json统计:');
|
||
console.log(`- 储备干部岗: ${jobLevelData.data.high.list.length}个岗位`);
|
||
console.log(`- 技术骨干岗: ${jobLevelData.data.middle.list.length}个岗位`);
|
||
console.log(`- 基础岗: ${jobLevelData.data.ordinary.list.length}个岗位`);
|
||
console.log(`- 总计: ${trafficLogisticsData.length}个岗位`);
|
||
|
||
// 备份原文件
|
||
const backupFileName = `src/data/joblevel.json.backup_${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
||
try {
|
||
const originalData = fs.readFileSync('src/data/joblevel.json', 'utf-8');
|
||
fs.writeFileSync(backupFileName, originalData);
|
||
console.log(`\n原文件已备份到: ${backupFileName}`);
|
||
} catch (error) {
|
||
console.log('备份原文件失败:', error.message);
|
||
}
|
||
|
||
// 保存新的joblevel.json
|
||
fs.writeFileSync('src/data/joblevel.json', JSON.stringify(jobLevelData, null, 4), 'utf-8');
|
||
console.log('\n新的joblevel.json已保存');
|
||
|
||
// 同时更新resumeInterviewMock.js中的简历内容格式
|
||
console.log('\n正在更新简历模板格式...');
|
||
|
||
// 生成更新后的resumeTemplates,确保content字段格式正确
|
||
const updatedResumeTemplates = trafficLogisticsData.map(item => ({
|
||
positionTitle: item.岗位名称,
|
||
position: item.岗位名称, // 添加position字段用于匹配
|
||
level: item.岗位等级标签,
|
||
avatar: item.简历头像url,
|
||
department: item.简历岗位群,
|
||
content: {
|
||
original: item.简历内容,
|
||
modified: item.简历内容 // 默认使用相同内容
|
||
},
|
||
projectName: item.对应项目案例名称,
|
||
coreCompetencies: item["对应单元名称(复合能力课)"],
|
||
verticalDirection: item.对应垂直方向,
|
||
relatedUnits: item["关联单元名称(垂直能力课)"]
|
||
}));
|
||
|
||
// 读取现有的resumeInterviewMock.js文件
|
||
const mockFileContent = fs.readFileSync('src/mocks/resumeInterviewMock.js', 'utf-8');
|
||
|
||
// 找到resumeTemplates的位置并替换
|
||
const newMockContent = mockFileContent.replace(
|
||
/export const resumeTemplates = \[[\s\S]*?\];/,
|
||
`export const resumeTemplates = ${JSON.stringify(updatedResumeTemplates, null, 2)};`
|
||
);
|
||
|
||
// 保存更新后的mock文件
|
||
fs.writeFileSync('src/mocks/resumeInterviewMock.js', newMockContent, 'utf-8');
|
||
console.log('resumeInterviewMock.js已更新,简历content格式已修正'); |