Files
online_sys/frontend_智能开发/fixUnitsMappingData.cjs

98 lines
3.0 KiB
JavaScript
Raw Normal View History

const fs = require('fs');
// 读取智能开发项目案例数据
const rawData = fs.readFileSync('网页未导入数据/智能开发产业/智能开发项目案例.json', 'utf-8');
// 解析数据 - 数据是一个数组,每个元素包含项目信息
const projectsData = JSON.parse(rawData);
console.log('读取到的项目数量:', projectsData.length);
// 构建新的映射数据
let mappingContent = `// 项目案例对应单元映射数据
// 基于智能开发产业项目案例
export const projectUnitsMapping = {
`;
projectsData.forEach((project, index) => {
// 获取项目名称
const projectName = project['案例名称'];
console.log(`处理项目 ${index + 1}: ${projectName}`);
// 获取复合能力课和垂直能力课
const compoundUnitsStr = project['对应单元名称(复合能力课)'] || '';
const verticalUnitsStr = project['对应单元名称(垂直能力课)'] || '';
// 将字符串分割成数组(处理可能的逗号分隔)
const compoundUnits = compoundUnitsStr ? compoundUnitsStr.split(',').map(s => s.trim()) : [];
const verticalUnits = verticalUnitsStr ? verticalUnitsStr.split(',').map(s => s.trim()) : [];
mappingContent += ` "${projectName}": {
"compoundUnits": [
${compoundUnits.map(unit => ` "${unit}"`).join(',\n')}
],
"verticalUnits": [
${verticalUnits.map(unit => ` "${unit}"`).join(',\n')}
]
}`;
if (index < projectsData.length - 1) {
mappingContent += ',\n';
}
});
mappingContent += `
};
// 获取项目的复合能力课程
export const getCompoundUnits = (projectTitle) => {
if (!projectTitle) return [];
// 直接匹配
if (projectUnitsMapping[projectTitle]) {
return projectUnitsMapping[projectTitle].compoundUnits || [];
}
// 尝试去除后缀后匹配(如"详情"
const cleanTitle = projectTitle.replace(/详情$/, '');
if (projectUnitsMapping[cleanTitle]) {
return projectUnitsMapping[cleanTitle].compoundUnits || [];
}
return [];
};
// 获取项目的垂直能力课程
export const getVerticalUnits = (projectTitle) => {
if (!projectTitle) return [];
// 直接匹配
if (projectUnitsMapping[projectTitle]) {
return projectUnitsMapping[projectTitle].verticalUnits || [];
}
// 尝试去除后缀后匹配(如"详情"
const cleanTitle = projectTitle.replace(/详情$/, '');
if (projectUnitsMapping[cleanTitle]) {
return projectUnitsMapping[cleanTitle].verticalUnits || [];
}
return [];
};
// 获取项目的所有对应单元
export const getProjectUnits = (projectTitle) => {
const compoundUnits = getCompoundUnits(projectTitle);
const verticalUnits = getVerticalUnits(projectTitle);
return [...compoundUnits, ...verticalUnits];
};
`;
// 写入文件
fs.writeFileSync('src/data/projectUnitsMapping.js', mappingContent);
console.log('\n✅ projectUnitsMapping.js 已成功更新!');
console.log(`- 包含 ${projectsData.length} 个项目的单元映射`);
console.log('- 保留了原有的函数结构');