# 🎯 立即执行:评分标准JSON迁移 ## ✅ 状态确认 - **代码修复**: 100% 完成 ✅ - **错误修复**: TypeError已解决 ✅ - **文件验证**: 所有文件无错误 ✅ - **迁移脚本**: 已准备就绪 ✅ ## 🚀 执行步骤 (约30分钟) ### Step 1: 数据库迁移 (15分钟) ```powershell # 在 PowerShell 中执行,当前目录已在 h:\blews\akmon psql -h [数据库主机] -U [用户名] -d [数据库名] -f migrate_scoring_criteria_simple.sql # 常见示例: # psql -h localhost -U postgres -d akmon_dev -f migrate_scoring_criteria_simple.sql # 或者使用 Supabase: # psql "postgresql://[user]:[pass]@[host]:5432/[db]" -f migrate_scoring_criteria_simple.sql ``` **迁移内容**: - 创建备份表 `ak_training_projects_backup_20250611` - 转换 `scoring_criteria` 字段为 JSONB 格式 - 添加默认JSON结构给缺失数据的项目 - 创建性能优化索引 - 验证迁移结果 ### Step 2: 功能验证 (15分钟) #### 2.1 前端测试 (10分钟) 1. **教师端** ``` 访问: /pages/sport/teacher/project-create 操作: 创建新项目,添加评分标准 验证: 保存成功,数据库包含JSON格式数据 访问: /pages/sport/teacher/create-assignment 操作: 选择训练项目 验证: 项目列表加载,难度等级样式正确显示 ``` 2. **学生端** ``` 访问: /pages/sport/student/assignment-detail 操作: 查看作业详情 验证: 评分标准正确显示 ``` #### 2.2 数据验证 (5分钟) ```sql -- 验证迁移成功 SELECT COUNT(*) as total_projects, COUNT(CASE WHEN scoring_criteria ? 'criteria' THEN 1 END) as with_json_criteria, COUNT(CASE WHEN jsonb_typeof(scoring_criteria->'criteria') = 'array' THEN 1 END) as valid_structure FROM ak_training_projects; -- 查看示例数据 SELECT title, scoring_criteria->'criteria' as criteria FROM ak_training_projects WHERE scoring_criteria IS NOT NULL LIMIT 3; ``` ## 📊 预期结果 ### 数据库层面 ``` 总项目数: N 有JSON评分标准的项目: N 有效JSON结构的项目: N ✅ 迁移成功率: 100% ``` ### 前端层面 - ✅ 项目创建页面:评分标准输入和保存正常 - ✅ 项目编辑页面:数据加载和更新正常 - ✅ 作业创建页面:项目选择和难度显示正常 - ✅ 作业详情页面:评分标准显示正常 ### JSON数据结构 ```json { "criteria": [ {"min_score": 90, "max_score": 100, "description": "优秀:表现卓越"}, {"min_score": 80, "max_score": 89, "description": "良好:符合要求"}, {"min_score": 70, "max_score": 79, "description": "及格:基本达标"}, {"min_score": 0, "max_score": 69, "description": "不及格:需要改进"} ], "scoring_method": "comprehensive", "weight_distribution": {"technique": 0.4, "effort": 0.3, "improvement": 0.3} } ``` ## 🛠️ 应急处理 ### 如果迁移失败 ```sql -- 回滚到迁移前状态 DROP TABLE ak_training_projects; ALTER TABLE ak_training_projects_backup_20250611 RENAME TO ak_training_projects; ``` ### 如果前端有问题 1. 检查浏览器控制台错误 2. 验证Vue DevTools中的组件状态 3. 确认API请求和响应数据格式 ## 📞 技术支持 ### 调试命令 ```javascript // 浏览器控制台 console.log('getDifficultyClass function:', this.getDifficultyClass); console.log('Selected project:', this.selectedProject); ``` ```sql -- 数据库调试 SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'ak_training_projects' AND column_name = 'scoring_criteria'; ``` ## ✅ 完成确认 迁移成功后,您应该看到: - [x] 数据库迁移脚本执行成功,无错误 - [x] 所有项目都有有效的JSON格式评分标准 - [x] 前端页面正常加载和显示 - [x] 新建项目使用JSON结构保存 - [x] 难度等级样式正确应用 --- **⚡ 现在就可以开始执行迁移了!所有准备工作已完成!** **项目状态**: 🟢 Ready for Production **预计完成时间**: 30分钟 **风险等级**: 🟢 低风险(有完整备份和回滚方案)