Files
online_sys/frontend_财经商贸/convertProjectData.js
KQL a7242f0c69 Initial commit: 教务系统在线平台
- 包含4个产业方向的前端项目:智能开发、智能制造、大健康、财经商贸
- 已清理node_modules、.yoyo等大文件,项目大小从2.6GB优化至631MB
- 配置完善的.gitignore文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-12 18:16:55 +08:00

116 lines
3.4 KiB
JavaScript

// 转换智能制造项目案例数据为项目库格式
import fs from 'fs';
// 读取智能制造项目案例数据
const rawData = JSON.parse(
fs.readFileSync('网页未导入数据/智能制造产业/智能制造项目案例.json', 'utf8')
);
// 转换数据格式
const projects = rawData.map((item, index) => {
// 提取岗位名称列表
const positions = item['对应个人简历名称'] ?
item['对应个人简历名称'].split(',').map(p => p.trim()) : [];
// 确定项目类别
let category = '智能制造';
let direction = item['所属垂直方向'] || '智能制造';
// 根据单元名称细分类别
if (item['对应单元名称(垂直能力课)']) {
if (item['对应单元名称(垂直能力课)'].includes('新能源')) {
category = '新能源制造';
} else if (item['对应单元名称(垂直能力课)'].includes('PLC')) {
category = 'PLC控制系统';
} else if (item['对应单元名称(垂直能力课)'].includes('机器人')) {
category = '工业机器人';
} else if (item['对应单元名称(垂直能力课)'].includes('3D打印')) {
category = '3D打印技术';
} else if (item['对应单元名称(垂直能力课)'].includes('数控')) {
category = '数控加工';
}
}
return {
id: index + 1,
name: item['案例名称'],
description: direction,
positions: positions,
unit: item['对应单元名称(垂直能力课)'] || item['对应单元名称(复合能力课)'],
direction: direction,
category: category,
content: item['项目案例内容'] || ''
};
});
// 生成mock数据格式
const mockCode = `// 项目库Mock数据
export const getMockProjectsList = (params = {}) => {
const { search = "", page = 1, pageSize = 10 } = params;
// 完整项目列表数据
const projects = ${JSON.stringify(projects, null, 4)};
// 搜索过滤
let filteredProjects = projects;
if (search) {
const searchLower = search.toLowerCase();
filteredProjects = projects.filter(project =>
project.name.toLowerCase().includes(searchLower) ||
project.description.toLowerCase().includes(searchLower) ||
project.positions.some(pos => pos.toLowerCase().includes(searchLower)) ||
project.unit.toLowerCase().includes(searchLower) ||
project.category.toLowerCase().includes(searchLower)
);
}
// 分页处理
const total = filteredProjects.length;
const startIndex = (page - 1) * pageSize;
const endIndex = startIndex + pageSize;
const pagedProjects = filteredProjects.slice(startIndex, endIndex);
return {
success: true,
data: {
list: pagedProjects,
total: total,
page: page,
pageSize: pageSize
}
};
};
// 获取项目详情
export const getMockProjectDetail = (id) => {
const projects = ${JSON.stringify(projects.slice(0, 3), null, 4)};
const project = projects.find(p => p.id === parseInt(id));
if (project) {
return {
success: true,
data: project
};
}
return {
success: false,
message: "项目不存在"
};
};
`;
// 写入转换后的文件
fs.writeFileSync('projectLibraryMock_new.js', mockCode, 'utf8');
console.log(`转换完成!
- 项目总数: ${projects.length}
- 类别分布:
${[...new Set(projects.map(p => p.category))].map(cat =>
` - ${cat}: ${projects.filter(p => p.category === cat).length}`
).join('\n')}
文件已保存为: projectLibraryMock_new.js
`);