import fs from 'fs'; // 读取财经商贸项目案例数据 const caseData = JSON.parse(fs.readFileSync('网页未导入数据/财经商贸产业/财经商贸项目案例.json', 'utf8')); // 读取当前的项目库Mock数据 const mockFilePath = 'src/mocks/projectLibraryMock.js'; let mockContent = fs.readFileSync(mockFilePath, 'utf8'); // 构建项目详情对象 const projectDetails = {}; caseData.slice(0, 20).forEach((item, index) => { const id = index + 1; // 获取岗位列表并分配等级 const positions = item['对应个人简历名称'] ? item['对应个人简历名称'].split(',').map(pos => { const position = pos.trim(); // 根据岗位名称分配等级 let level = '基础岗'; if (position.includes('主管') || position.includes('经理')) { level = '技术骨干岗'; } else if (position.includes('助理') || position.includes('储备')) { level = '储备干部岗'; } return { level, position }; }) : []; projectDetails[id] = { id: id, title: item['案例名称'], overview: item['项目案例内容'] ? item['项目案例内容'].split('\\n')[0].replace(/^#\s*/, '').replace(/项目概述\s*/, '').trim() : '项目概述内容', applicablePositions: positions, units: [item['对应单元名称(垂直能力课)'] || item['对应单元名称(复合能力课)'] || ''].filter(u => u), process: extractProcess(item['项目案例内容']), keyPoints: extractKeyPoints(item['项目案例内容']), attachments: [ { name: `${item['案例名称']}.docx`, size: '1.2MB', type: 'doc' }, { name: '项目执行手册.pdf', size: '1.8MB', type: 'pdf' } ] }; }); // 提取项目流程部分 function extractProcess(content) { if (!content) return ''; const processMatch = content.match(/项目整体流程介绍([\s\S]*?)(?=项目案例关键技术点|$)/); if (processMatch) { return processMatch[1].trim(); } return ''; } // 提取关键技术点部分 function extractKeyPoints(content) { if (!content) return ''; const keyPointsMatch = content.match(/项目案例关键技术点([\s\S]*?)$/); if (keyPointsMatch) { return keyPointsMatch[1].trim(); } return ''; } // 构建getMockProjectDetail函数 const detailFunction = ` // 项目详情Mock数据 - 财经商贸 export const getMockProjectDetail = (id) => { const projectDetails = ${JSON.stringify(projectDetails, null, 2)}; const detail = projectDetails[id]; if (!detail) { return { success: false, message: '项目不存在' }; } return { success: true, data: detail }; };`; // 替换getMockProjectDetail函数 mockContent = mockContent.replace( /\/\/ 项目详情Mock数据[\s\S]*?export const getMockProjectDetail[\s\S]*?};[\s]*};/, detailFunction ); // 写回文件 fs.writeFileSync(mockFilePath, mockContent, 'utf8'); console.log('项目详情已更新完成!'); console.log(`共更新了 ${Object.keys(projectDetails).length} 个项目详情`);