/** * API接口 - 选手模块 * 真实后端接口调用(需要后端实现) */ import request from '@/utils/request.js' /** * 获取我的选手列表(普通评委) * @param {Object} params * @param {String} params.judgeId - 评委ID * @param {String} params.venueId - 场地ID * @param {String} params.projectId - 项目ID * @returns {Promise} * * 注意:此接口需要后端实现 * 建议路径: GET /api/mini/athletes */ export function getMyAthletes(params) { return request({ url: '/api/mini/athletes', method: 'GET', params: params, // GET 请求使用 params showLoading: true }) } /** * 获取选手列表(裁判长) * @param {Object} params * @param {String} params.competitionId - 比赛ID * @param {String} params.venueId - 场地ID * @param {String} params.projectId - 项目ID * @returns {Promise} * * 注意:此接口需要后端实现 * 建议路径: GET /api/mini/athletes/admin */ export function getAthletesForAdmin(params) { return request({ url: '/api/mini/athletes/admin', method: 'GET', params: params, // GET 请求使用 params showLoading: true }) } /** * 获取场地列表 * @param {Object} params * @param {String} params.competitionId - 比赛ID * @returns {Promise} */ export function getVenues(params) { return request({ url: '/martial/venue/list', method: 'GET', params: { ...params, current: 1, size: 100 } }) } /** * 获取项目列表 * @param {Object} params * @param {String} params.competitionId - 比赛ID * @returns {Promise} */ export function getProjects(params) { return request({ url: '/martial/project/list', method: 'GET', params: { ...params, current: 1, size: 100 } }) } export default { getMyAthletes, getAthletesForAdmin, getVenues, getProjects } /** * 后端接口规范(待实现): * * GET /api/mini/athletes * * 请求参数: * { * "judgeId": "456", * "venueId": "1", * "projectId": "5" * } * * 响应: * { * "code": 200, * "success": true, * "msg": "操作成功", * "data": [ * { * "athleteId": "1", * "name": "张三", * "idCard": "123456789000000000", * "team": "少林寺武术大学院", * "number": "123-4567898275", * "myScore": 8.906, * "totalScore": 8.907, * "scored": true, * "scoreTime": "2025-06-25 09:15:00" * } * ] * } * * SQL示例: * SELECT * a.id AS athleteId, * a.player_name AS name, * a.id_card AS idCard, * a.team_name AS team, * a.player_no AS number, * a.total_score AS totalScore, * s.score AS myScore, * CASE WHEN s.id IS NOT NULL THEN 1 ELSE 0 END AS scored, * s.score_time AS scoreTime * FROM martial_athlete a * LEFT JOIN martial_score s * ON a.id = s.athlete_id * AND s.judge_id = #{judgeId} * WHERE a.venue_id = #{venueId} * AND a.project_id = #{projectId} * AND a.is_deleted = 0 * ORDER BY a.order_num ASC */