Files
ALL-teach_sys/frontend_土木水利/update_mockdata_profile.py

77 lines
2.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re
def update_profile_in_mockdata():
"""更新mockData.js中的profileOverview数据"""
# 读取mockData.js
with open('src/data/mockData.js', 'r', encoding='utf-8') as f:
content = f.read()
# 读取生成的profile数据
with open('profile_overview_update.js', 'r', encoding='utf-8') as f:
new_profile = f.read()
# 移除第一行注释和mockData.前缀
new_profile = new_profile.replace('// 更新个人档案数据 - 葛荣景\nmockData.', '')
# 找到第二个profileOverview的位置
pattern = r'(mockData\.profileOverview = \{[^}]*?// 学生基本信息.*?mockData\.profileOverview = )(\{[\s\S]*?\n\};)'
# 查找第二个profileOverview并替换
matches = list(re.finditer(r'mockData\.profileOverview = \{', content))
if len(matches) >= 2:
# 获取第二个匹配的起始位置
second_start = matches[1].start()
# 找到对应的结束位置(查找配对的 };
bracket_count = 0
in_string = False
escape_next = False
end_pos = second_start + len('mockData.profileOverview = {')
for i in range(end_pos, len(content)):
char = content[i]
if escape_next:
escape_next = False
continue
if char == '\\':
escape_next = True
continue
if char in ['"', "'", '`'] and not in_string:
in_string = char
elif char == in_string:
in_string = False
if not in_string:
if char == '{':
bracket_count += 1
elif char == '}':
if bracket_count == 0:
# 找到了配对的结束括号
if i + 1 < len(content) and content[i + 1] == ';':
end_pos = i + 2
else:
end_pos = i + 1
break
bracket_count -= 1
# 执行替换
new_content = content[:second_start] + 'mockData.' + new_profile + content[end_pos:]
# 保存更新后的文件
with open('src/data/mockData.js', 'w', encoding='utf-8') as f:
f.write(new_content)
print("✅ 成功更新了第二个 profileOverview 数据")
print("📋 已更新为葛荣景的个人档案信息")
else:
print("❌ 未找到第二个 profileOverview 定义")
if __name__ == "__main__":
update_profile_in_mockdata()