Files
ALL-teach_sys/frontend_化工/update_my_projects_chemical.py
KQL cd2e307402 初始化12个产业教务系统项目
主要内容:
- 包含12个产业的完整教务系统前端代码
- 智能启动脚本 (start-industry.sh)
- 可视化产业导航页面 (index.html)
- 项目文档 (README.md)

优化内容:
- 删除所有node_modules和.yoyo文件夹,从7.5GB减少到2.7GB
- 添加.gitignore文件避免上传不必要的文件
- 自动依赖管理和智能启动系统

产业列表:
1. 文旅产业 (5150)
2. 智能制造 (5151)
3. 智能开发 (5152)
4. 财经商贸 (5153)
5. 视觉设计 (5154)
6. 交通物流 (5155)
7. 大健康 (5156)
8. 土木水利 (5157)
9. 食品产业 (5158)
10. 化工产业 (5159)
11. 能源产业 (5160)
12. 环保产业 (5161)

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 14:14:14 +08:00

169 lines
6.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
def extract_chemical_student_projects():
"""从学生完成的项目.json中提取化工产业数据"""
# 读取学生完成的项目数据
with open('网页未导入数据/学生完成的项目.json', 'r', encoding='utf-8') as f:
data = json.load(f)
chemical_projects = []
# 筛选化工产业相关项目
for item in data:
if item.get('所属就业管家') == '化工':
unit_name = item.get('单元名称查询', '')
ai_projects = item.get('AI项目名称', [])
if unit_name and ai_projects:
# 清理项目名称,去除序号前缀
cleaned_projects = []
for project in ai_projects:
# 去除 "1.", "2." 等序号前缀
cleaned_project = re.sub(r'^\d+\.', '', project).strip()
cleaned_projects.append(cleaned_project)
chemical_projects.append({
'unitName': unit_name,
'projects': cleaned_projects
})
return chemical_projects
def read_clickable_project_data():
"""读取学生完成的项目文件夹中的详细数据"""
try:
with open('网页未导入数据/化工产业/学生完成的项目/化工储罐液位自动补水与搅拌联锁控制.md', 'r', encoding='utf-8') as f:
content = f.read()
return content
except FileNotFoundError:
return None
def create_updated_project_library():
"""创建更新后的项目库数据"""
chemical_projects = extract_chemical_student_projects()
clickable_content = read_clickable_project_data()
print(f"提取到 {len(chemical_projects)} 个化工单元的项目数据")
# 生成新的myProjectsData
my_projects_data = []
for project in chemical_projects:
my_projects_data.append({
"unitName": project['unitName'],
"projects": project['projects']
})
# 生成可点击的项目数据
clickable_project = None
if clickable_content:
# 解析markdown内容创建项目详情
sections = []
lines = clickable_content.split('\n')
current_section = None
current_content = []
for line in lines:
if line.startswith('# '):
if current_section:
sections.append({
'title': current_section,
'content': '\n'.join(current_content).strip()
})
current_section = line[2:].strip()
current_content = []
elif current_section:
current_content.append(line)
# 添加最后一个section
if current_section:
sections.append({
'title': current_section,
'content': '\n'.join(current_content).strip()
})
clickable_project = {
"id": "clickable-1",
"name": "化工储罐液位自动补水与搅拌联锁控制项目",
"unitName": "化工PLC可编程逻辑控制系统",
"isClickable": True,
"content": {
"title": "化工储罐液位自动补水与搅拌联锁控制项目",
"description": "本项目基于PLC可编程逻辑控制器实现化工储罐液位的自动监控、补水控制以及搅拌器的联锁保护功能。",
"images": [],
"sections": sections
}
}
return my_projects_data, clickable_project
def update_project_library_file():
"""更新ProjectLibraryPage文件"""
my_projects_data, clickable_project = create_updated_project_library()
# 读取原文件
with open('src/pages/ProjectLibraryPage/index.jsx', 'r', encoding='utf-8') as f:
content = f.read()
# 替换myProjectsData
my_projects_js = json.dumps(my_projects_data, ensure_ascii=False, indent=2)
# 替换myProjectsData部分
pattern = r'const myProjectsData = \[[\s\S]*?\];'
replacement = f'const myProjectsData = {my_projects_js};'
content = re.sub(pattern, replacement, content)
# 如果有可点击项目数据替换clickableProjects
if clickable_project:
# 构建clickableProjects JavaScript代码
clickable_js = json.dumps([clickable_project], ensure_ascii=False, indent=2)
clickable_pattern = r'const clickableProjects = \[[\s\S]*?\];'
clickable_replacement = f'const clickableProjects = {clickable_js};'
content = re.sub(clickable_pattern, clickable_replacement, content)
# 写入文件
with open('src/pages/ProjectLibraryPage/index.jsx', 'w', encoding='utf-8') as f:
f.write(content)
print("✅ 已更新ProjectLibraryPage.jsx文件")
print(f"✅ 替换了 {len(my_projects_data)} 个化工单元的我的项目数据")
if clickable_project:
print("✅ 添加了1个可点击查看的化工项目详情")
return my_projects_data
def show_summary():
"""显示项目数据摘要"""
my_projects_data, _ = create_updated_project_library()
print("\n化工产业我的项目库数据摘要:")
print("=" * 80)
total_projects = 0
for i, unit in enumerate(my_projects_data, 1):
unit_name = unit['unitName']
projects = unit['projects']
project_count = len(projects)
total_projects += project_count
print(f"\n{i}. {unit_name} ({project_count}个项目)")
for j, project in enumerate(projects, 1):
print(f" {j}. {project}")
print(f"\n总计: {len(my_projects_data)} 个单元,{total_projects} 个项目")
if __name__ == "__main__":
print("正在更新我的项目库为化工产业数据...")
# 先显示摘要
show_summary()
print("\n" + "=" * 80)
# 执行更新
update_project_library_file()