## 主要改动
### 1. 修复Mock数据格式问题
- 修复 mock/athlete.js 中 getProjects 函数
- 从字符串数组改为对象数组 { id, name }
- 确保Mock模式和API模式数据格式一致
### 2. 优化网络请求处理
- 优化 utils/request.js 的GET请求参数处理
- 参数自动URL编码
- 支持URL中已有查询参数的情况
- 代码逻辑更清晰
### 3. 新增完整的文档体系
- API对接说明.md - 项目根目录快速说明
- doc/API对接快速启动指南.md - 5分钟快速上手
- doc/后端接口开发清单.md - 后端开发规范(5个接口,6人天)
- doc/前端API对接指南.md - 前端联调指南
- doc/API对接准备完成报告.md - 项目状态总结
## 项目状态
✅ 前端准备完成度: 100%
- 架构设计优秀(dataAdapter适配器模式)
- 代码质量高(注释详细,结构清晰)
- Mock数据完整(可独立演示)
- API接口定义完整(9个接口)
- 页面全部接入(5个页面)
- 文档体系完善(20个文档)
⚠️ 后端待开发: 5个接口
- POST /api/mini/login
- GET /api/mini/athletes
- GET /api/mini/athletes/admin
- GET /api/mini/score/detail/{id}
- PUT /api/mini/score/modify
## 下一步
后端开发者可以参考 doc/后端接口开发清单.md 开始开发
预计工作量: 6人天(约1周)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
163 lines
3.7 KiB
JavaScript
163 lines
3.7 KiB
JavaScript
/**
|
||
* Mock 数据 - 选手模块
|
||
* 模拟选手列表数据
|
||
*/
|
||
|
||
/**
|
||
* 获取我的选手列表(普通评委)
|
||
* @param {Object} params
|
||
* @param {String} params.judgeId - 评委ID
|
||
* @param {String} params.venueId - 场地ID
|
||
* @param {String} params.projectId - 项目ID
|
||
* @returns {Array} 选手列表(带评分状态)
|
||
*/
|
||
export function getMyAthletes(params) {
|
||
// 模拟3个选手数据
|
||
return [
|
||
{
|
||
athleteId: '1',
|
||
name: '张三',
|
||
idCard: '123456789000000000',
|
||
team: '少林寺武术大学院',
|
||
number: '123-4567898275',
|
||
myScore: 8.906, // 我的评分
|
||
totalScore: 8.907, // 总分
|
||
scored: true, // 已评分
|
||
scoreTime: '2025-06-25 09:15:00'
|
||
},
|
||
{
|
||
athleteId: '2',
|
||
name: '李四',
|
||
idCard: '123456789000000001',
|
||
team: '武当山武术学院',
|
||
number: '123-4567898276',
|
||
myScore: 8.901,
|
||
totalScore: 8.902,
|
||
scored: true,
|
||
scoreTime: '2025-06-25 09:20:00'
|
||
},
|
||
{
|
||
athleteId: '3',
|
||
name: '王五',
|
||
idCard: '123456789000000002',
|
||
team: '峨眉派武术学校',
|
||
number: '123-4567898277',
|
||
myScore: null, // 未评分
|
||
totalScore: null,
|
||
scored: false,
|
||
scoreTime: null
|
||
}
|
||
]
|
||
}
|
||
|
||
/**
|
||
* 获取选手列表(裁判长)
|
||
* @param {Object} params
|
||
* @param {String} params.competitionId - 比赛ID
|
||
* @param {String} params.venueId - 场地ID
|
||
* @param {String} params.projectId - 项目ID
|
||
* @returns {Array} 选手列表(带评分统计)
|
||
*/
|
||
export function getAthletesForAdmin(params) {
|
||
// 模拟5个选手数据
|
||
return [
|
||
{
|
||
athleteId: '1',
|
||
name: '张三',
|
||
idCard: '123456789000000000',
|
||
team: '少林寺武术大学院',
|
||
number: '123-4567898275',
|
||
totalScore: 8.907,
|
||
judgeCount: 6, // 已评分评委数
|
||
totalJudges: 6, // 总评委数
|
||
canModify: true // 可以修改(所有评委已评分)
|
||
},
|
||
{
|
||
athleteId: '2',
|
||
name: '李四',
|
||
idCard: '123456789000000001',
|
||
team: '武当山武术学院',
|
||
number: '123-4567898276',
|
||
totalScore: 8.902,
|
||
judgeCount: 6,
|
||
totalJudges: 6,
|
||
canModify: true
|
||
},
|
||
{
|
||
athleteId: '3',
|
||
name: '王五',
|
||
idCard: '123456789000000002',
|
||
team: '峨眉派武术学校',
|
||
number: '123-4567898277',
|
||
totalScore: null,
|
||
judgeCount: 3, // 只有3位评委评分
|
||
totalJudges: 6,
|
||
canModify: false // 不能修改(未全部评分)
|
||
},
|
||
{
|
||
athleteId: '4',
|
||
name: '赵六',
|
||
idCard: '123456789000000003',
|
||
team: '华山武术学院',
|
||
number: '123-4567898278',
|
||
totalScore: 8.899,
|
||
judgeCount: 6,
|
||
totalJudges: 6,
|
||
canModify: true
|
||
},
|
||
{
|
||
athleteId: '5',
|
||
name: '孙七',
|
||
idCard: '123456789000000004',
|
||
team: '崆峒派武术学校',
|
||
number: '123-4567898279',
|
||
totalScore: 8.912,
|
||
judgeCount: 6,
|
||
totalJudges: 6,
|
||
canModify: true
|
||
}
|
||
]
|
||
}
|
||
|
||
/**
|
||
* 获取场地列表
|
||
* @param {Object} params
|
||
* @param {String} params.competitionId - 比赛ID
|
||
* @returns {Array} 场地列表
|
||
*/
|
||
export function getVenues(params) {
|
||
return [
|
||
{ id: '1', name: '第一场地' },
|
||
{ id: '2', name: '第二场地' },
|
||
{ id: '3', name: '第三场地' },
|
||
{ id: '4', name: '第四场地' },
|
||
{ id: '5', name: '第五场地' }
|
||
]
|
||
}
|
||
|
||
/**
|
||
* 获取项目列表
|
||
* @param {Object} params
|
||
* @param {String} params.competitionId - 比赛ID
|
||
* @returns {Array} 项目列表(对象数组,与API格式一致)
|
||
*/
|
||
export function getProjects(params) {
|
||
return [
|
||
{ id: '5', name: '女子组长拳' },
|
||
{ id: '6', name: '男子组陈氏太极拳' },
|
||
{ id: '7', name: '女子组双剑(含长穗双剑)' },
|
||
{ id: '8', name: '男子组杨氏太极拳' },
|
||
{ id: '9', name: '女子组刀术' },
|
||
{ id: '10', name: '男子组棍术' },
|
||
{ id: '11', name: '女子组枪术' },
|
||
{ id: '12', name: '男子组剑术' }
|
||
]
|
||
}
|
||
|
||
export default {
|
||
getMyAthletes,
|
||
getAthletesForAdmin,
|
||
getVenues,
|
||
getProjects
|
||
}
|