87 lines
2.9 KiB
Python
87 lines
2.9 KiB
Python
|
|
#!/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")
|