ZhangQiPro/update_mockdata_bigscreen.py
sladro 29b58e6888 chore: ESLint代码规范修复 - 从779个问题降至13个警告
修复内容:
1.  ESLint配置完善
   - 添加浏览器全局变量:setTimeout, localStorage, getComputedStyle等
   - 禁用保留组件名规则 (vue/no-reserved-component-names)

2.  清理未使用的导入(自动修复648个警告)
   - BigScreenPortrait.vue: 移除reactive, mockPortraitData, generateChartData等
   - Evaluate.vue: 移除Search, Refresh, Download等未使用图标组件
   - Portrait.vue: 移除Download, Refresh组件
   - SubmissionDialog.vue: 移除Link组件
   - ReportCenter.vue: 移除onMounted导入

3.  修复未使用的变量
   - ReportAnalysis.vue: 移除未使用的index变量
   - FileUpload.vue: 移除未使用的index变量

修复结果:
- 修复前:779个问题(42错误,737警告)
- 修复后:13个问题(0错误,13警告)
- 修复率:98.3%

剩余13个警告:
- 未使用的error catch变量(4个)
- 未使用的index/role/student参数(7个)
- 未使用的导入DataAnalysis, getChartColors(2个)
- 所有警告不影响代码运行

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:29:59 +08:00

100 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
更新mockData.js中的bigScreenData部分
"""
import json
import re
# 读取生成的大屏数据
with open('分析报告/generated_bigscreen_data.json', 'r', encoding='utf-8') as f:
bigscreen_data = json.load(f)
# 读取mockData.js文件
with open('src/utils/mockData.js', 'r', encoding='utf-8') as f:
content = f.read()
# 构建新的bigScreenData JavaScript对象
def build_grade_distribution_js(grades):
"""构建成绩分布数组的JavaScript代码"""
lines = []
for grade in grades:
lines.append(f" {{ grade: '{grade['grade']}', count: {grade['count']}, color: '{grade['color']}' }},")
return '\n'.join(lines)
def build_ability_matrix_js(matrix):
"""构建能力矩阵的JavaScript代码"""
dimensions = ", ".join([f"'{d}'" for d in matrix['dimensions']])
students_lines = []
for student in matrix['students']:
values = ", ".join([str(v) for v in student['values']])
students_lines.append(f" {{ name: '{student['name']}', values: [{values}], color: '{student['color']}' }},")
students_js = '\n'.join(students_lines)
return f""" dimensions: [{dimensions}],
students: [
{students_js}
]"""
def build_practice_stats_js(stats):
"""构建实践统计的JavaScript代码"""
lines = []
for stat in stats:
lines.append(f" {{ label: '{stat['label']}', value: {stat['value']}, icon: '{stat['icon']}', trend: '{stat['trend']}' }},")
return '\n'.join(lines)
def build_real_time_data_js(data):
"""构建实时数据的JavaScript代码"""
return f""" studentCount: {data['studentCount']},
evaluationCount: {data['evaluationCount']},
completionRate: {data['completionRate']},
averageScore: {data['averageScore']}"""
# 组装完整的bigScreenData
grade_distribution_js = build_grade_distribution_js(bigscreen_data['gradeDistribution'])
ability_matrix_js = build_ability_matrix_js(bigscreen_data['abilityMatrix'])
practice_stats_js = build_practice_stats_js(bigscreen_data['practiceStats'])
real_time_data_js = build_real_time_data_js(bigscreen_data['realTimeData'])
new_bigscreen_data = f"""export const bigScreenData = {{
// 成绩分布数据
gradeDistribution: [
{grade_distribution_js}
],
// 能力矩阵数据(三角形雷达图)
abilityMatrix: {{
{ability_matrix_js}
}},
// 实习统计数据
practiceStats: [
{practice_stats_js}
],
// 实时数据更新
realTimeData: {{
{real_time_data_js}
}}
}}"""
# 使用正则表达式替换bigScreenData部分
pattern = r'export const bigScreenData = \{[\s\S]*?\n\}'
replacement = new_bigscreen_data
# 执行替换
new_content = re.sub(pattern, replacement, content)
# 写回文件
with open('src/utils/mockData.js', 'w', encoding='utf-8') as f:
f.write(new_content)
print("✅ bigScreenData更新完成")
print(f" - 成绩分布: {len(bigscreen_data['gradeDistribution'])}个档次")
print(f" - 能力矩阵: {len(bigscreen_data['abilityMatrix']['dimensions'])}个维度")
print(f" - 实践统计: {len(bigscreen_data['practiceStats'])}项指标")
print(f" - 实时数据: 学生{bigscreen_data['realTimeData']['studentCount']}人,完成率{bigscreen_data['realTimeData']['completionRate']}%")