/** * API接口 - 评分模块 * 真实后端接口调用(需要后端实现) */ import request from '@/utils/request.js' /** * 获取扣分项列表 * @param {Object} params * @param {String} params.projectId - 项目ID * @returns {Promise} */ export function getDeductions(params) { return request({ url: '/martial/deductionItem/list', method: 'GET', params: { ...params, current: 1, size: 100 } }) } /** * 提交评分 * @param {Object} data * @param {String} data.athleteId - 选手ID * @param {String} data.judgeId - 评委ID * @param {Number} data.score - 评分 * @param {Array} data.deductions - 扣分项 * @param {String} data.note - 备注 * @returns {Promise} */ export function submitScore(data) { return request({ url: '/martial/score/submit', method: 'POST', data, showLoading: true, loadingText: '提交中...' }) } /** * 获取评分详情(裁判长查看) * @param {Object} params * @param {String} params.athleteId - 选手ID * @returns {Promise} * * 注意:此接口需要后端实现 * 建议路径: GET /api/mini/score/detail/{athleteId} */ export function getScoreDetail(params) { return request({ url: `/api/mini/score/detail/${params.athleteId}`, method: 'GET', showLoading: true }) } /** * 修改评分(裁判长) * @param {Object} data * @param {String} data.athleteId - 选手ID * @param {String} data.modifierId - 修改人ID * @param {Number} data.modifiedScore - 修改后的分数 * @param {String} data.note - 修改原因 * @returns {Promise} * * 注意:此接口需要后端实现 * 建议路径: PUT /api/mini/score/modify */ export function modifyScore(data) { return request({ url: '/api/mini/score/modify', method: 'PUT', data, showLoading: true, loadingText: '修改中...' }) } export default { getDeductions, submitScore, getScoreDetail, modifyScore } /** * 后端接口规范(待实现): * * 1. GET /api/mini/score/detail/{athleteId} * * 响应: * { * "code": 200, * "success": true, * "msg": "操作成功", * "data": { * "athleteInfo": { * "athleteId": "1", * "name": "张三", * "idCard": "123456789000000000", * "team": "少林寺武术大学院", * "number": "123-4567898275", * "totalScore": 8.907 * }, * "judgeScores": [ * { * "judgeId": "1", * "judgeName": "欧阳丽娜", * "score": 8.907, * "scoreTime": "2025-06-25 09:15:00", * "note": "" * } * ], * "modification": null * } * } * * SQL示例: * SELECT * s.judge_id AS judgeId, * s.judge_name AS judgeName, * s.score, * s.score_time AS scoreTime, * s.note * FROM martial_score s * WHERE s.athlete_id = #{athleteId} * ORDER BY s.score_time ASC * * --- * * 2. PUT /api/mini/score/modify * * 请求: * { * "athleteId": "1", * "modifierId": "789", * "modifiedScore": 8.910, * "note": "修改原因" * } * * 响应: * { * "code": 200, * "success": true, * "msg": "修改成功", * "data": { * "athleteId": "1", * "originalScore": 8.907, * "modifiedScore": 8.910, * "modifyTime": "2025-06-25 10:00:00" * } * } * * 实现逻辑: * 1. 验证权限(只有裁判长可以修改) * 2. 保存 originalScore(如果是第一次修改) * 3. 更新 totalScore * 4. 记录 modifyReason 和 modifyTime */