主要内容: - 包含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>
143 lines
5.4 KiB
Python
143 lines
5.4 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)} 个食品项目案例")
|
||
|
||
# 分析附件数据结构
|
||
def analyze_attachments():
|
||
projects_with_attachments = []
|
||
attachment_types = set()
|
||
|
||
for case in food_cases:
|
||
case_name = 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'
|
||
attachment_types.add(file_type)
|
||
|
||
attachments.append({
|
||
"id": f"attach_{len(attachments) + 1}",
|
||
"name": attachment,
|
||
"type": file_type,
|
||
"size": "2.5MB", # 模拟文件大小
|
||
"url": f"https://example.com/files/{attachment}"
|
||
})
|
||
|
||
projects_with_attachments.append({
|
||
"caseName": case_name,
|
||
"unitName": case.get('对应单元名称(复合能力课)', ''),
|
||
"attachments": attachments,
|
||
"originalData": case
|
||
})
|
||
|
||
return projects_with_attachments, attachment_types
|
||
|
||
projects_with_attachments, attachment_types = analyze_attachments()
|
||
|
||
print(f"\n找到 {len(projects_with_attachments)} 个有附件的项目")
|
||
print(f"附件类型: {sorted(attachment_types)}")
|
||
|
||
print("\n有附件的项目列表:")
|
||
for i, project in enumerate(projects_with_attachments, 1):
|
||
print(f"{i}. {project['caseName']} ({project['unitName']})")
|
||
for att in project['attachments']:
|
||
print(f" - {att['name']} ({att['type']})")
|
||
|
||
# 为我的项目库生成附件数据
|
||
def generate_my_projects_with_attachments():
|
||
# 读取当前的我的项目数据
|
||
with open('my_projects_data_food_only.js', 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# 提取项目名称
|
||
my_projects = []
|
||
|
||
# 为项目分配附件
|
||
project_attachments_mapping = {}
|
||
|
||
# 根据关键词匹配为项目分配合适的附件
|
||
for project in projects_with_attachments:
|
||
case_name = project['caseName']
|
||
attachments = project['attachments']
|
||
|
||
# 餐饮相关
|
||
if any(keyword in case_name for keyword in ['餐厅', '餐饮', '轻食']):
|
||
if any(keyword in case_name for keyword in ['管理', '运营']):
|
||
project_attachments_mapping['轻食店外卖包装与用户体验优化'] = attachments
|
||
project_attachments_mapping['社区咖啡馆日常运营成本控制分析'] = attachments
|
||
|
||
# 酿造工艺相关
|
||
if any(keyword in case_name for keyword in ['酿造', '工艺', '红曲酒']):
|
||
project_attachments_mapping['传统中式菜肴标准化工艺流程制定'] = attachments
|
||
|
||
# 包装设计相关
|
||
if any(keyword in case_name for keyword in ['包装', '设计']):
|
||
project_attachments_mapping['地方特色食品抖音短视频营销方案'] = attachments
|
||
|
||
# 仓储管理相关
|
||
if any(keyword in case_name for keyword in ['仓储', '管理', '保鲜']):
|
||
project_attachments_mapping['临期食品仓储管理系统数据库设计'] = attachments
|
||
|
||
# 供应链相关
|
||
if any(keyword in case_name for keyword in ['供应链', '优化']):
|
||
project_attachments_mapping['节庆食品季节性供需波动与库存管理'] = attachments
|
||
|
||
return project_attachments_mapping
|
||
|
||
# 生成附件映射
|
||
attachment_mapping = generate_my_projects_with_attachments()
|
||
|
||
print(f"\n为我的项目库分配了 {len(attachment_mapping)} 个项目的附件:")
|
||
for project_name, attachments in attachment_mapping.items():
|
||
print(f"- {project_name}: {len(attachments)} 个附件")
|
||
for att in attachments:
|
||
print(f" * {att['name']}")
|
||
|
||
# 生成JavaScript代码
|
||
js_content = '''// 项目附件数据映射
|
||
const projectAttachmentsData = {
|
||
'''
|
||
|
||
for project_name, attachments in attachment_mapping.items():
|
||
js_content += f' "{project_name}": [\n'
|
||
for att in attachments:
|
||
js_content += f' {{\n'
|
||
js_content += f' "id": "{att["id"]}",\n'
|
||
js_content += f' "name": "{att["name"]}",\n'
|
||
js_content += f' "type": "{att["type"]}",\n'
|
||
js_content += f' "size": "{att["size"]}",\n'
|
||
js_content += f' "url": "{att["url"]}"\n'
|
||
js_content += f' }},\n'
|
||
js_content = js_content.rstrip(',\n') + '\n'
|
||
js_content += f' ],\n'
|
||
|
||
js_content = js_content.rstrip(',\n') + '\n'
|
||
js_content += '''};
|
||
|
||
export default projectAttachmentsData;
|
||
'''
|
||
|
||
print(f"\n生成的JavaScript代码:")
|
||
print(js_content)
|
||
|
||
# 保存到文件
|
||
with open('project_attachments_data.js', 'w', encoding='utf-8') as f:
|
||
f.write(js_content)
|
||
|
||
print(f"\n已保存到 project_attachments_data.js")
|
||
print(f"\n统计信息:")
|
||
print(f" 有附件的案例总数: {len(projects_with_attachments)}")
|
||
print(f" 分配附件的我的项目数: {len(attachment_mapping)}")
|
||
print(f" 支持的文件类型: {sorted(attachment_types)}") |