Files
ALL-teach_sys/frontend_交通物流/update_all_project_details.py

87 lines
2.9 KiB
Python
Raw Normal View History

#!/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")