/** * API接口中心 * 所有API接口的统一入口 * * 这个文件汇总了所有业务模块的API接口函数, * 提供给 dataAdapter.js 调用 */ import authApi from './auth.js' import athleteApi from './athlete.js' import scoreApi from './score.js' /** * 导出所有API接口函数 * * 资源名称(key)对应 dataAdapter.getData() 的第一个参数 * 例如:dataAdapter.getData('login', params) 会调用 authApi.login(params) */ export default { // ==================== 认证模块 ==================== /** * 登录验证 * @param {Object} data - { matchCode, inviteCode } * @returns {Promise} */ login: authApi.login, /** * 退出登录 * @returns {Promise} */ logout: authApi.logout, /** * Token验证 * @returns {Promise} */ verifyToken: authApi.verifyToken, // ==================== 选手模块 ==================== /** * 获取我的选手列表(普通评委) * @param {Object} params - { judgeId, venueId, projectId } * @returns {Promise} */ getMyAthletes: athleteApi.getMyAthletes, /** * 获取选手列表(裁判长) * @param {Object} params - { competitionId, venueId, projectId } * @returns {Promise} */ getAthletesForAdmin: athleteApi.getAthletesForAdmin, /** * 获取场地列表 * @param {Object} params - { competitionId } * @returns {Promise} */ getVenues: athleteApi.getVenues, /** * 获取项目列表 * @param {Object} params - { competitionId } * @returns {Promise} */ getProjects: athleteApi.getProjects, // ==================== 评分模块 ==================== /** * 获取扣分项列表 * @param {Object} params - { projectId } * @returns {Promise} */ getDeductions: scoreApi.getDeductions, /** * 提交评分 * @param {Object} data - { athleteId, judgeId, score, deductions, note } * @returns {Promise} */ submitScore: scoreApi.submitScore, /** * 获取评分详情(裁判长查看) * @param {Object} params - { athleteId } * @returns {Promise} */ getScoreDetail: scoreApi.getScoreDetail, /** * 修改评分(裁判长) * @param {Object} data - { athleteId, modifierId, modifiedScore, note } * @returns {Promise} */ modifyScore: scoreApi.modifyScore } /** * 使用说明: * * 这个文件不直接在页面中使用,而是通过 dataAdapter.js 间接调用。 * * 当 config/env.config.js 中 dataMode 设置为 'api' 时, * dataAdapter.getData() 会自动调用这里的API函数。 * * 页面使用示例: * * import dataAdapter from '@/utils/dataAdapter.js' * * // 配置 dataMode: 'api' 时,以下代码会调用真实API * const res = await dataAdapter.getData('login', { * matchCode: '123', * inviteCode: 'pub' * }) * // 实际调用: authApi.login({ matchCode, inviteCode }) * // 请求: POST /api/mini/login * * // 配置 dataMode: 'mock' 时,同样的代码会使用Mock数据 * // 实际调用: mockData.login({ matchCode, inviteCode }) * // 无网络请求,返回本地Mock数据 */ /** * 后端开发者注意事项: * * 1. 需要实现的新接口(小程序专用): * - POST /api/mini/login # 登录验证 * - GET /api/mini/athletes # 普通评委选手列表 * - GET /api/mini/athletes/admin # 裁判长选手列表 * - GET /api/mini/score/detail/{athleteId} # 评分详情 * - PUT /api/mini/score/modify # 修改评分 * * 2. 可以复用的现有接口: * - POST /martial/score/submit # 提交评分 * - GET /martial/venue/list # 场地列表 * - GET /martial/project/list # 项目列表 * - GET /martial/deductionItem/list # 扣分项列表 * * 3. 响应格式统一为 BladeX 标准格式: * { * "code": 200, * "success": true, * "msg": "操作成功", * "data": { ... } * } * * 4. 请求头要求: * - Content-Type: application/json * - Blade-Auth: Bearer {token} * * 5. 建议创建专门的Controller: * @RestController * @RequestMapping("/api/mini") * public class MartialMiniController { * // 实现上述5个专用接口 * } */