🐛 修复的问题: 1. 切换 dataMode 从 'mock' 改为 'api' 2. 修复所有GET请求使用 params 而不是 data - api/athlete.js: getMyAthletes, getAthletesForAdmin, getVenues, getProjects - api/score.js: getDeductions 3. 修复 utils/request.js 支持 params 参数 - GET 请求使用 params 作为查询参数 - POST/PUT/DELETE 请求使用 data 作为请求体 ✅ 现在可以正确调用后端API接口 📋 测试步骤: 1. 确保后端服务运行在 http://localhost:8080 2. 刷新小程序页面 3. 查看控制台调试信息 4. 验证接口调用 Co-Authored-By: Claude <noreply@anthropic.com>
143 lines
2.9 KiB
JavaScript
143 lines
2.9 KiB
JavaScript
/**
|
||
* 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
|
||
*/
|