主要内容: - 包含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>
112 lines
3.5 KiB
Python
112 lines
3.5 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
|
||
import json
|
||
import re
|
||
|
||
def extract_energy_projects():
|
||
"""
|
||
从学生完成的项目.json中提取能源产业的项目数据
|
||
"""
|
||
with open("网页未导入数据/学生完成的项目.json", 'r', encoding='utf-8') as f:
|
||
all_projects = json.load(f)
|
||
|
||
# 筛选能源产业的项目
|
||
energy_projects = [p for p in all_projects if p.get("所属就业管家") == "能源"]
|
||
|
||
print(f"📊 找到 {len(energy_projects)} 个能源产业单元的项目")
|
||
|
||
# 转换为myProjectsData格式
|
||
my_projects_data = []
|
||
for project in energy_projects:
|
||
unit_name = project.get("单元名称查询", "")
|
||
ai_projects = project.get("AI项目名称", [])
|
||
|
||
# 清理项目名称(去除序号前缀)
|
||
cleaned_projects = []
|
||
for proj in ai_projects:
|
||
# 去除"1."或"2."等前缀
|
||
cleaned = re.sub(r'^\d+\.\s*', '', proj)
|
||
if cleaned:
|
||
cleaned_projects.append(cleaned)
|
||
|
||
if unit_name and cleaned_projects:
|
||
my_projects_data.append({
|
||
"unitName": unit_name,
|
||
"projects": cleaned_projects
|
||
})
|
||
|
||
return my_projects_data
|
||
|
||
def generate_js_code(my_projects_data):
|
||
"""
|
||
生成JavaScript代码
|
||
"""
|
||
js_code = "// 我的项目库数据\nconst myProjectsData = [\n"
|
||
|
||
for idx, unit in enumerate(my_projects_data):
|
||
js_code += ' {\n'
|
||
js_code += f' "unitName": "{unit["unitName"]}",\n'
|
||
js_code += ' "projects": [\n'
|
||
|
||
for j, proj in enumerate(unit["projects"]):
|
||
# 转义双引号
|
||
proj_escaped = proj.replace('"', '\\"')
|
||
js_code += f' "{proj_escaped}"'
|
||
if j < len(unit["projects"]) - 1:
|
||
js_code += ','
|
||
js_code += '\n'
|
||
|
||
js_code += ' ]\n'
|
||
js_code += ' }'
|
||
if idx < len(my_projects_data) - 1:
|
||
js_code += ','
|
||
js_code += '\n'
|
||
|
||
js_code += '];\n'
|
||
|
||
return js_code
|
||
|
||
def update_project_library_page():
|
||
"""
|
||
更新项目库页面组件中的myProjectsData
|
||
"""
|
||
# 提取能源项目数据
|
||
energy_projects = extract_energy_projects()
|
||
|
||
# 生成新的JS代码
|
||
new_js_code = generate_js_code(energy_projects)
|
||
|
||
# 读取现有组件文件
|
||
with open("src/pages/ProjectLibraryPage/index.jsx", 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# 查找并替换myProjectsData部分
|
||
pattern = r'// 我的项目库数据\nconst myProjectsData = \[[\s\S]*?\];\n'
|
||
|
||
if re.search(pattern, content):
|
||
updated_content = re.sub(pattern, new_js_code, content)
|
||
|
||
# 写入更新后的内容
|
||
with open("src/pages/ProjectLibraryPage/index.jsx", 'w', encoding='utf-8') as f:
|
||
f.write(updated_content)
|
||
|
||
print("✅ 成功更新myProjectsData数据")
|
||
|
||
# 显示统计信息
|
||
print(f"\n📋 更新统计:")
|
||
print(f" - 单元数量:{len(energy_projects)}")
|
||
total_projects = sum(len(unit['projects']) for unit in energy_projects)
|
||
print(f" - 项目总数:{total_projects}")
|
||
|
||
# 显示前3个单元的信息
|
||
print("\n📚 前3个单元示例:")
|
||
for unit in energy_projects[:3]:
|
||
print(f" • {unit['unitName']}")
|
||
for proj in unit['projects']:
|
||
print(f" - {proj}")
|
||
else:
|
||
print("❌ 未找到myProjectsData数据块")
|
||
|
||
if __name__ == "__main__":
|
||
update_project_library_page() |