This commit is contained in:
2025-12-12 18:28:57 +08:00
parent c169d4316b
commit 5cc95ec72b
27 changed files with 24522 additions and 3 deletions

142
src/api/athlete.js Normal file
View File

@@ -0,0 +1,142 @@
/**
* 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
*/