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('- 保留了原有的函数结构');