#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import re def update_classrank_modal(): """ 更新ClassRankModal组件,使用能源个人档案数据替换智能制造数据 """ # 读取ClassRankModal组件 modal_path = "src/components/ClassRankModal/index.jsx" with open(modal_path, 'r', encoding='utf-8') as f: content = f.read() # 创建备份 with open(f"{modal_path}.backup_before_energy", 'w', encoding='utf-8') as f: f.write(content) # 读取能源个人档案数据,用于构建头像映射 with open("网页未导入数据/能源产业/能源个人档案.json", 'r', encoding='utf-8') as f: energy_data = json.load(f) # 构建能源学生头像映射 energy_avatar_mapping = { "奚思瑶": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/199b35fbd6ed5e3ea6d6d064cf895a13.jpg", "王承泽": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/152361c6c68a193660cdbdf9074c2cf3.jpg", "赵纯": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/07a0a14c8c8d5476b2c8d54de12e6a06.jpg", "陈知夏": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/13c5709a3993fdf353d147209f8145cb.jpg", "苏拓": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/02393125baa474d558c484c0677664b1.jpg", "王亦舒": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/152361c6c68a193660cdbdf9074c2cf3.jpg", "戚瑶瑶": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/199b35fbd6ed5e3ea6d6d064cf895a13.jpg", "吴珩": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/29af3e9db4c435f0f3d76c1b91d8a7f6.jpg", "李月平": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/2b2cb2ed96901b1bb3750559d6323620.jpg", "章世龙": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/2e8af9fd9b8425946272fec27af82910.jpg", } print(f"✓ 准备更新 {len(energy_data)} 名能源学生的排名数据") # 1. 更新数据源引用 content = re.sub( r'import classRankData from "../../../网页未导入数据/智能制造产业/智能制造个人档案\.json";', 'import classRankData from "../../../网页未导入数据/能源产业/能源个人档案.json";', content ) print("✓ 更新数据源引用路径") # 2. 构建新的头像映射switch语句 avatar_cases = [] for name, url in energy_avatar_mapping.items(): avatar_cases.append(f''' case "{name}": avatarUrl = "{url}"; break;''') new_avatar_switch = "\n".join(avatar_cases) # 3. 替换整个头像映射switch语句 switch_pattern = r'(\s+switch\(name\) \{\s*)([\s\S]*?)(\s+default:[\s\S]*?\})' def replace_switch(match): indent = match.group(1) default_case = match.group(3) return f"{indent}\n{new_avatar_switch}\n{default_case}" content = re.sub(switch_pattern, replace_switch, content) print("✓ 更新头像映射") # 写入更新后的内容 with open(modal_path, 'w', encoding='utf-8') as f: f.write(content) print(f"\n✅ ClassRankModal组件更新完成") print(f"📋 更新内容:") print(f" - 数据源: 智能制造个人档案.json → 能源个人档案.json") print(f" - 头像映射: 更新了 {len(energy_avatar_mapping)} 名能源学生的头像") print(f" - 数据字段: 保持原有结构 (学员名称, 班级排名, 学分)") # 验证更新结果 print(f"\n📍 能源学生排名:") for student in energy_data[:5]: # 显示前5名 print(f" {student['班级排名']}. {student['学员名称']} - {student['学分']}分") if __name__ == "__main__": update_classrank_modal()