编辑 | blame | 历史 | 原始文档

评审流程实现总结

完成的功能

1. 评审列表页面 (pages/review/index.js)

  • ✅ 修改了 goToReviewDetail 方法
  • ✅ 使用 activityPlayerId 参数导航到评审详情页面
  • ✅ 路由更新为:/pages/judge/review?id=${activityPlayerId}

2. 评审详情页面 (pages/judge/review.js)

  • ✅ 修改了 onLoad 方法,接收 activityPlayerId 参数
  • ✅ 更新了 data 字段,将 submissionId 改为 activityPlayerId
  • ✅ 重写了 loadSubmissionDetail 方法:
  • 使用 activityPlayerDetail GraphQL 查询
  • 构建兼容的 submissionactivity 数据结构
  • 正确处理评分标准和提交文件
  • ✅ 修改了 checkReviewStatus 方法:
  • 使用 currentJudgeRating 查询获取现有评分
  • 如果已有评分,自动填充表单数据
  • ✅ 更新了 submitReview 方法:
  • 使用 saveActivityPlayerRating mutation
  • 构建正确的评分数据格式
  • ✅ 更新了 onSaveDraft 方法:
  • 使用相同的 saveActivityPlayerRating mutation
  • 支持保存草稿功能
  • ✅ 修改了 onViewOtherReviews 方法,使用 activityPlayerId 参数

技术实现要点

GraphQL 查询更新

  1. 获取选手详情
    graphql query GetActivityPlayerDetail($activityPlayerId: ID!) { activityPlayerDetail(id: $activityPlayerId) { id playerInfo { ... } regionInfo { ... } activityName projectName description submissionFiles { ... } ratingForm { ... } stageId } }

  2. 获取当前评委评分
    graphql query GetCurrentJudgeRating($activityPlayerId: ID!) { currentJudgeRating(activityPlayerId: $activityPlayerId) { id totalScore comment status items { ... } } }

  3. 保存评分
    graphql mutation SaveActivityPlayerRating($input: ActivityPlayerRatingInput!) { saveActivityPlayerRating(input: $input) }

数据结构适配

  • activityPlayerDetail 响应数据转换为与原有 WXML 模板兼容的格式
  • 正确映射选手信息、活动信息、提交文件等数据
  • 处理评分标准和评分项的数据结构

测试建议

功能测试

  1. 评审列表页面
  • 验证点击评审项目能正确跳转到详情页面
  • 确认传递的 activityPlayerId 参数正确
  1. 评审详情页面
  • 验证选手信息显示正确
  • 验证提交文件(图片、视频、文档)显示和下载功能
  • 验证评分标准加载正确
  • 测试评分功能(选择分数、输入评论)
  • 测试保存草稿功能
  • 测试提交评分功能
  • 验证已有评分的加载和显示
  1. 数据一致性
  • 确认评分数据正确保存到数据库
  • 验证评分状态更新正确
  • 测试多次保存和提交的幂等性

错误处理测试

  • 网络错误时的提示
  • 无效参数的处理
  • 权限验证(评委只能评分指定比赛)

注意事项

  1. 微信小程序测试:需要使用微信开发者工具打开项目进行测试
  2. 后端服务:确保后端 Spring Boot 服务正在运行
  3. 数据库:确认相关表结构和测试数据已准备好
  4. 权限控制:测试时需要使用评委身份登录

下一步工作

  1. 在微信开发者工具中进行完整的功能测试
  2. 验证与后端 API 的数据交互
  3. 测试各种边界情况和错误场景
  4. 根据测试结果进行必要的调优和修复