Files
online_sys/frontend_财经商贸/updateProjectDetails.mjs

97 lines
3.1 KiB
JavaScript
Raw Normal View History

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} 个项目详情`);