主要内容: - 包含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>
149 lines
5.2 KiB
Python
149 lines
5.2 KiB
Python
import json
|
||
import re
|
||
|
||
# 读取食品项目案例数据
|
||
with open('网页未导入数据/食品产业/食品项目案例.json', 'r', encoding='utf-8') as f:
|
||
food_cases = json.load(f)
|
||
|
||
print(f"总共找到 {len(food_cases)} 个食品项目案例")
|
||
|
||
# 分析有附件的项目,并按照所属单元分类
|
||
projects_with_attachments = []
|
||
unit_mapping = {}
|
||
|
||
for case in food_cases:
|
||
case_name = case.get('案例名称', '')
|
||
compound_unit = case.get('对应单元名称(复合能力课)', '')
|
||
vertical_unit = case.get('对应单元名称(垂直能力课)', '')
|
||
attachments_str = case.get('附件', '')
|
||
|
||
# 只处理有附件的项目
|
||
if attachments_str and attachments_str.strip():
|
||
# 解析附件字符串
|
||
attachments = []
|
||
for attachment in attachments_str.split(','):
|
||
attachment = attachment.strip()
|
||
if attachment:
|
||
# 提取文件扩展名
|
||
ext_match = re.search(r'\.([a-zA-Z0-9]+)$', attachment)
|
||
file_type = ext_match.group(1).lower() if ext_match else 'unknown'
|
||
|
||
attachments.append({
|
||
"id": f"attach_{len(attachments) + 1}",
|
||
"name": attachment,
|
||
"type": file_type,
|
||
"size": "2.5MB", # 模拟文件大小
|
||
"url": f"https://example.com/files/{attachment}"
|
||
})
|
||
|
||
# 确定单元名称(优先使用复合能力课)
|
||
unit_name = compound_unit if compound_unit else vertical_unit
|
||
if not unit_name:
|
||
unit_name = "其他"
|
||
|
||
# 创建简化的项目名称(去掉"项目"后缀)
|
||
simplified_name = case_name.replace('项目', '').strip()
|
||
|
||
project_data = {
|
||
"originalName": case_name,
|
||
"simplifiedName": simplified_name,
|
||
"unitName": unit_name,
|
||
"attachments": attachments
|
||
}
|
||
|
||
projects_with_attachments.append(project_data)
|
||
|
||
# 按单元分类
|
||
if unit_name not in unit_mapping:
|
||
unit_mapping[unit_name] = []
|
||
unit_mapping[unit_name].append(project_data)
|
||
|
||
print(f"\n找到 {len(projects_with_attachments)} 个有附件的项目")
|
||
print(f"涉及 {len(unit_mapping)} 个单元")
|
||
|
||
print("\n按单元分类的有附件项目:")
|
||
for unit, projects in unit_mapping.items():
|
||
print(f"\n【{unit}】:")
|
||
for project in projects:
|
||
print(f" - {project['simplifiedName']}")
|
||
for att in project['attachments']:
|
||
print(f" * {att['name']} ({att['type']})")
|
||
|
||
# 生成新的我的项目库数据,使用真实的有附件项目
|
||
new_my_projects_data = []
|
||
|
||
for unit, projects in unit_mapping.items():
|
||
project_names = [project['simplifiedName'] for project in projects]
|
||
new_my_projects_data.append({
|
||
"unitName": unit,
|
||
"projects": project_names
|
||
})
|
||
|
||
# 生成JavaScript代码 - 我的项目库数据
|
||
my_projects_js = '''// 我的项目库数据 - 基于真实食品项目案例
|
||
const myProjectsData = [
|
||
'''
|
||
|
||
for unit_data in new_my_projects_data:
|
||
my_projects_js += f' {{\n'
|
||
my_projects_js += f' "unitName": "{unit_data["unitName"]}",\n'
|
||
my_projects_js += f' "projects": [\n'
|
||
for project in unit_data["projects"]:
|
||
my_projects_js += f' "{project}",\n'
|
||
my_projects_js = my_projects_js.rstrip(',\n') + '\n'
|
||
my_projects_js += f' ]\n'
|
||
my_projects_js += f' }},\n'
|
||
|
||
my_projects_js = my_projects_js.rstrip(',\n') + '\n'
|
||
my_projects_js += '];'
|
||
|
||
# 生成JavaScript代码 - 附件数据映射
|
||
attachments_js = '''// 项目附件数据映射 - 基于真实食品项目案例
|
||
const projectAttachmentsData = {
|
||
'''
|
||
|
||
for project in projects_with_attachments:
|
||
attachments_js += f' "{project["simplifiedName"]}": [\n'
|
||
for att in project['attachments']:
|
||
attachments_js += f' {{\n'
|
||
attachments_js += f' "id": "{att["id"]}",\n'
|
||
attachments_js += f' "name": "{att["name"]}",\n'
|
||
attachments_js += f' "type": "{att["type"]}",\n'
|
||
attachments_js += f' "size": "{att["size"]}",\n'
|
||
attachments_js += f' "url": "{att["url"]}"\n'
|
||
attachments_js += f' }},\n'
|
||
attachments_js = attachments_js.rstrip(',\n') + '\n'
|
||
attachments_js += f' ],\n'
|
||
|
||
attachments_js = attachments_js.rstrip(',\n') + '\n'
|
||
attachments_js += '''};
|
||
|
||
export default projectAttachmentsData;
|
||
'''
|
||
|
||
print(f"\n生成的我的项目库JavaScript代码:")
|
||
print(my_projects_js)
|
||
|
||
print(f"\n生成的附件数据JavaScript代码:")
|
||
print(attachments_js)
|
||
|
||
# 保存到文件
|
||
with open('my_projects_data_real_food.js', 'w', encoding='utf-8') as f:
|
||
f.write(my_projects_js)
|
||
|
||
with open('project_attachments_data_real.js', 'w', encoding='utf-8') as f:
|
||
f.write(attachments_js)
|
||
|
||
print(f"\n已保存到文件:")
|
||
print(f" - my_projects_data_real_food.js")
|
||
print(f" - project_attachments_data_real.js")
|
||
|
||
print(f"\n统计信息:")
|
||
print(f" 有附件的项目总数: {len(projects_with_attachments)}")
|
||
print(f" 涉及单元数: {len(unit_mapping)}")
|
||
print(f" 总项目数: {sum(len(projects) for projects in unit_mapping.values())}")
|
||
|
||
# 显示每个单元的项目数量
|
||
print(f"\n各单元项目数量:")
|
||
for unit, projects in unit_mapping.items():
|
||
print(f" {unit}: {len(projects)} 个项目") |