#!/usr/bin/env python3 import json import re # 读取提取的项目详细内容 with open('project_details_extracted.json', 'r', encoding='utf-8') as f: projects = json.load(f) # 读取现有的mock文件 with open('src/mocks/projectLibraryMock.js', 'r', encoding='utf-8') as f: content = f.read() # 找到getMockProjectDetail函数的位置 match = re.search(r'export const getMockProjectDetail = \(id\) => \{.*?const projects = \[(.*?)\];.*?const project = projects\.find', content, re.DOTALL) if not match: print("无法找到getMockProjectDetail函数") exit(1) # 构建新的projects数组内容 new_projects = [] for project in projects: # 获取适用岗位 positions = project.get('positions', [ 'WMS软件销售', '物流协调员', '仓储业务开发专员', 'AGV运维专员', 'AGV运维工程师', '物流审核员', '云物流调度负责人助理', '物流运营总监助理', '生产计划岗储备干部', '国际物流储备经理' ]) # 获取附件 attachments = project.get('attachments', []) if not attachments: attachments = [ {'name': f'{project["name"]}_项目方案.pdf', 'type': 'pdf'}, {'name': f'{project["name"]}_技术文档.docx', 'type': 'docx'} ] # 处理内容,确保正确转义 overview = project['overview'].replace('\n', '\\n').replace('"', '\\"') process = project['process'].replace('\n', '\\n').replace('"', '\\"') keypoints = project['keypoints'].replace('\n', '\\n').replace('"', '\\"') project_obj = f''' {{ id: {project['id']}, name: "{project['name']}", overview: `{project['overview']}`, process: `{project['process']}`, keyPoints: `{project['keypoints']}`, applicablePositions: {json.dumps(positions, ensure_ascii=False)}, attachments: {json.dumps(attachments, ensure_ascii=False)} }}''' new_projects.append(project_obj) # 组合新的projects数组 new_projects_str = ',\n'.join(new_projects) # 构建新的getMockProjectDetail函数内容 new_function = f'''export const getMockProjectDetail = (id) => {{ const projects = [ {new_projects_str} ]; const project = projects.find(p => p.id === parseInt(id)); if (!project) {{ return {{ id: parseInt(id), name: '项目未找到', overview: '项目详情未找到', process: '项目流程未找到', keyPoints: '项目关键技术点未找到', applicablePositions: [], attachments: [] }}; }} return project; }};''' # 替换原有的getMockProjectDetail函数 pattern = r'export const getMockProjectDetail = \(id\) => \{.*?\n\};' content = re.sub(pattern, new_function, content, flags=re.DOTALL) # 写回文件 with open('src/mocks/projectLibraryMock.js', 'w', encoding='utf-8') as f: f.write(content) print("✅ 成功更新所有22个项目的详细内容到 projectLibraryMock.js")