85 lines
3.9 KiB
Python
85 lines
3.9 KiB
Python
|
|
#!/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()
|