50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
|
|
const fs = require('fs');
|
||
|
|
|
||
|
|
// 读取学生完成的项目数据
|
||
|
|
const projectsData = JSON.parse(
|
||
|
|
fs.readFileSync('./网页未导入数据/学生完成的项目.json', 'utf-8')
|
||
|
|
);
|
||
|
|
|
||
|
|
// 筛选出智能开发产业的项目
|
||
|
|
const smartDevProjects = projectsData.filter(item =>
|
||
|
|
item['所属就业管家'] === '智能开发' &&
|
||
|
|
item['所属垂直方向'] === 'AI大前端'
|
||
|
|
);
|
||
|
|
|
||
|
|
// 转换为页面需要的格式
|
||
|
|
const myProjectsData = smartDevProjects.map(item => ({
|
||
|
|
unitName: item['单元名称查询'],
|
||
|
|
projects: item['AI项目名称'].filter(p => p && p.trim() !== '')
|
||
|
|
.map(p => {
|
||
|
|
// 去掉项目名称前面的序号
|
||
|
|
return p.replace(/^\d+\.\s*/, '');
|
||
|
|
})
|
||
|
|
}));
|
||
|
|
|
||
|
|
// 生成要替换的代码
|
||
|
|
const projectsCode = `const myProjectsData = ${JSON.stringify(myProjectsData, null, 2)};`;
|
||
|
|
|
||
|
|
// 读取原文件
|
||
|
|
const filePath = './src/pages/ProjectLibraryPage/index.jsx';
|
||
|
|
let fileContent = fs.readFileSync(filePath, 'utf-8');
|
||
|
|
|
||
|
|
// 备份原文件
|
||
|
|
const backupPath = `${filePath}.backup_myprojects_${new Date().toISOString().replace(/[:.]/g, '-')}`;
|
||
|
|
fs.writeFileSync(backupPath, fileContent);
|
||
|
|
console.log(`✅ 已创建备份:${backupPath}`);
|
||
|
|
|
||
|
|
// 替换myProjectsData数据
|
||
|
|
fileContent = fileContent.replace(
|
||
|
|
/const myProjectsData = \[\s*[\s\S]*?\];/,
|
||
|
|
projectsCode
|
||
|
|
);
|
||
|
|
|
||
|
|
// 写回文件
|
||
|
|
fs.writeFileSync(filePath, fileContent);
|
||
|
|
|
||
|
|
console.log('✅ 我的项目库数据更新完成!');
|
||
|
|
console.log(`共导入 ${myProjectsData.length} 个单元的项目数据`);
|
||
|
|
console.log('单元列表:');
|
||
|
|
myProjectsData.forEach((unit, index) => {
|
||
|
|
console.log(`${index + 1}. ${unit.unitName} (${unit.projects.length}个项目)`);
|
||
|
|
});
|