主要内容: - 包含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>
94 lines
3.3 KiB
JavaScript
94 lines
3.3 KiB
JavaScript
import fs from 'fs';
|
||
import path from 'path';
|
||
import { fileURLToPath } from 'url';
|
||
import { dirname } from 'path';
|
||
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = dirname(__filename);
|
||
|
||
// 读取环保岗位面试状态数据
|
||
const envInterviewData = JSON.parse(fs.readFileSync('./网页未导入数据/环保产业/环保岗位面试状态.json', 'utf8'));
|
||
|
||
// 转换函数:将环保数据格式转换为系统所需格式
|
||
function transformInterviewStatus(envData) {
|
||
return envData.map((item) => {
|
||
// 根据流程标签和内容生成合适的面试状态文本
|
||
let statusText = '';
|
||
let datePrefix = '';
|
||
|
||
// 根据岗位内推流程确定前缀和状态文本
|
||
switch (item['岗位内推流程']) {
|
||
case '简历投递':
|
||
datePrefix = '简历投递:';
|
||
statusText = item['内容'];
|
||
break;
|
||
case 'HR评估':
|
||
datePrefix = 'HR评估:';
|
||
if (item['流程标签'] === '简历通过') {
|
||
statusText = item['内容'] || '等待面试安排';
|
||
} else {
|
||
statusText = item['内容'] || 'HR正在评估简历';
|
||
}
|
||
break;
|
||
case '面试':
|
||
datePrefix = '面试通知:';
|
||
statusText = item['内容'] || '面试日期已确定,等待面试';
|
||
break;
|
||
case '面试结果':
|
||
datePrefix = '面试结果:';
|
||
statusText = item['内容'] || '等待面试结果';
|
||
break;
|
||
case 'Offer':
|
||
datePrefix = '收到Offer:';
|
||
statusText = item['内容'] || '已收到Offer,请于2天内答复';
|
||
break;
|
||
default:
|
||
datePrefix = '状态更新:';
|
||
statusText = item['内容'] || '状态更新中';
|
||
}
|
||
|
||
// 格式化时间
|
||
let formattedDate = '';
|
||
if (item['流程时间']) {
|
||
// 将 "2025/7/11 0:00" 格式转换为 "2025/7/11 14:30" 这样的格式
|
||
const dateParts = item['流程时间'].split(' ');
|
||
const date = dateParts[0];
|
||
// 生成一个合理的时间(9:00-18:00之间)
|
||
const hours = 9 + Math.floor(Math.random() * 9);
|
||
const minutes = Math.floor(Math.random() * 60);
|
||
formattedDate = `${date} ${hours}:${minutes < 10 ? '0' + minutes : minutes}`;
|
||
}
|
||
|
||
return {
|
||
"查询岗位名称": item['查询岗位名称'],
|
||
"阶段日期": `${datePrefix}${formattedDate}`,
|
||
"面试状态": statusText
|
||
};
|
||
});
|
||
}
|
||
|
||
// 转换数据
|
||
const transformedData = transformInterviewStatus(envInterviewData);
|
||
|
||
// 备份原始文件
|
||
const originalFile = './src/data/interviewStatus.json';
|
||
const backupFile = `./src/data/interviewStatus.json.backup_${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
||
|
||
// 读取原始文件并备份
|
||
if (fs.existsSync(originalFile)) {
|
||
const originalData = fs.readFileSync(originalFile, 'utf8');
|
||
fs.writeFileSync(backupFile, originalData);
|
||
console.log(`原始文件已备份到: ${backupFile}`);
|
||
}
|
||
|
||
// 写入新数据
|
||
fs.writeFileSync(originalFile, JSON.stringify(transformedData, null, 2));
|
||
|
||
console.log('面试状态数据替换完成!');
|
||
console.log(`总共替换了 ${transformedData.length} 条岗位面试状态数据`);
|
||
|
||
// 显示前5条数据作为示例
|
||
console.log('\n前5条数据示例:');
|
||
transformedData.slice(0, 5).forEach((item, index) => {
|
||
console.log(`${index + 1}. ${item['查询岗位名称']} - ${item['阶段日期']} - ${item['面试状态']}`);
|
||
}); |