diff --git a/api/athlete.js b/api/athlete.js index 7c2eaa8..3162551 100644 --- a/api/athlete.js +++ b/api/athlete.js @@ -9,13 +9,13 @@ import request from '@/utils/request.js' * 获取选手列表(根据裁判类型返回不同数据) * @param {Object} params * @param {String} params.judgeId - 评委ID - * @param {Number} params.refereeType - 裁判类型(1-裁判长, 2-普通裁判) + * @param {Number} params.refereeType - 裁判类型(1-主裁判, 2-裁判员) * @param {String} params.venueId - 场地ID(可选) * @param {String} params.projectId - 项目ID(可选) * @returns {Promise} * - * 普通裁判:返回待评分的选手列表 - * 裁判长:返回已有评分的选手列表 + * 裁判员:返回待评分的选手列表 + * 主裁判:返回已有评分的选手列表 * * 后端路径: GET /api/mini/score/athletes */ @@ -32,7 +32,7 @@ export function getMyAthletes(params) { } /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params * @param {String} params.competitionId - 比赛ID * @param {String} params.venueId - 场地ID @@ -52,7 +52,7 @@ export function getAthletesForAdmin(params) { method: 'GET', params: { judgeId: judgeId, - refereeType: 1, // 裁判长 + refereeType: 1, // 主裁判 venueId: params.venueId, projectId: params.projectId, size: 200 // 确保获取所有选手 diff --git a/api/auth.js b/api/auth.js index 4a9b849..ca1b025 100644 --- a/api/auth.js +++ b/api/auth.js @@ -71,7 +71,7 @@ export default { * "msg": "登录成功", * "data": { * "token": "xxx", - * "refereeType": 2, // 1-裁判长, 2-普通裁判 + * "refereeType": 2, // 1-主裁判, 2-裁判员 * "matchId": "123", * "matchName": "2025年全国武术散打锦标赛...", * "matchTime": "2025年6月25日 9:00", diff --git a/api/index.js b/api/index.js index 6ba4483..6e1e4d7 100644 --- a/api/index.js +++ b/api/index.js @@ -46,7 +46,7 @@ export default { getMyAthletes: athleteApi.getMyAthletes, /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params - { competitionId, venueId, projectId } * @returns {Promise} */ @@ -82,14 +82,14 @@ export default { submitScore: scoreApi.submitScore, /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params - { athleteId } * @returns {Promise} */ getScoreDetail: scoreApi.getScoreDetail, /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} data - { athleteId, modifierId, modifiedScore, note } * @returns {Promise} */ @@ -127,7 +127,7 @@ export default { * 1. 需要实现的新接口(小程序专用): * - POST /api/mini/login # 登录验证 * - GET /api/mini/athletes # 普通评委选手列表 - * - GET /api/mini/athletes/admin # 裁判长选手列表 + * - GET /api/mini/athletes/admin # 主裁判选手列表 * - GET /api/mini/score/detail/{athleteId} # 评分详情 * - PUT /api/mini/score/modify # 修改评分 * diff --git a/api/score.js b/api/score.js index 39b23c4..c96c0b9 100644 --- a/api/score.js +++ b/api/score.js @@ -44,7 +44,7 @@ export function submitScore(data) { } /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params * @param {String} params.athleteId - 选手ID * @returns {Promise} @@ -61,7 +61,7 @@ export function getScoreDetail(params) { } /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} data * @param {String} data.athleteId - 选手ID * @param {String} data.modifierId - 修改人ID @@ -86,7 +86,7 @@ export function modifyScore(data) { * 获取选手列表 * @param {Object} params * @param {String} params.judgeId - 裁判ID - * @param {Number} params.refereeType - 裁判类型(1-裁判长, 2-普通裁判) + * @param {Number} params.refereeType - 裁判类型(1-主裁判, 2-裁判员) * @param {String} params.projectId - 项目ID(可选) * @param {String} params.venueId - 场地ID(可选) * @returns {Promise} @@ -180,7 +180,7 @@ export default { * } * * 实现逻辑: - * 1. 验证权限(只有裁判长可以修改) + * 1. 验证权限(只有主裁判可以修改) * 2. 保存 originalScore(如果是第一次修改) * 3. 更新 totalScore * 4. 记录 modifyReason 和 modifyTime diff --git a/mock/athlete.js b/mock/athlete.js index c40e2c5..a2b286d 100644 --- a/mock/athlete.js +++ b/mock/athlete.js @@ -7,7 +7,7 @@ * 获取选手列表(根据裁判类型返回不同数据) * @param {Object} params * @param {String} params.judgeId - 评委ID - * @param {Number} params.refereeType - 裁判类型(1-裁判长, 2-普通裁判) + * @param {Number} params.refereeType - 裁判类型(1-主裁判, 2-裁判员) * @param {String} params.venueId - 场地ID(可选) * @param {String} params.projectId - 项目ID(可选) * @returns {Array} 选手列表 @@ -15,7 +15,7 @@ export function getMyAthletes(params) { const { refereeType } = params - // 裁判长:返回已有评分的选手 + // 主裁判:返回已有评分的选手 if (refereeType === 1) { return [ { @@ -54,7 +54,7 @@ export function getMyAthletes(params) { ] } - // 普通裁判:返回待评分的选手 + // 裁判员:返回待评分的选手 return [ { athleteId: 3, @@ -80,7 +80,7 @@ export function getMyAthletes(params) { } /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params * @param {String} params.competitionId - 比赛ID * @param {String} params.venueId - 场地ID diff --git a/mock/index.js b/mock/index.js index 8db80bf..bd1d32e 100644 --- a/mock/index.js +++ b/mock/index.js @@ -34,7 +34,7 @@ export default { getMyAthletes: athleteMock.getMyAthletes, /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params - { competitionId, venueId, projectId } * @returns {Array} 选手列表(带评分统计) */ @@ -70,14 +70,14 @@ export default { submitScore: scoreMock.submitScore, /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params - { athleteId } * @returns {Object} 评分详情(选手信息+评委评分) */ getScoreDetail: scoreMock.getScoreDetail, /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} params - { athleteId, modifierId, modifiedScore, note } * @returns {Object} 修改结果 */ diff --git a/mock/login.js b/mock/login.js index 9e63254..4a9ea6c 100644 --- a/mock/login.js +++ b/mock/login.js @@ -23,13 +23,13 @@ export function login(params) { // 返回Mock登录数据 return { token: 'mock_token_' + Date.now(), - refereeType: role === 'pub' ? 2 : 1, // 1-裁判长, 2-普通裁判 + refereeType: role === 'pub' ? 2 : 1, // 1-主裁判, 2-裁判员 matchId: matchCode || '200', // 使用传入的比赛编码,默认200 matchName: '2025年全国武术散打锦标赛暨第十七届世界武术锦标赛选拔赛', matchTime: '2025年6月25日 9:00', judgeId: '456', judgeName: '欧阳丽娜', - // 普通评委有固定场地,裁判长可以查看所有场地 + // 普通评委有固定场地,主裁判可以查看所有场地 venueId: role === 'pub' ? '1' : null, venueName: role === 'pub' ? '第一场地' : null, // 分配的项目列表 diff --git a/mock/score.js b/mock/score.js index 47f5a8a..909da38 100644 --- a/mock/score.js +++ b/mock/score.js @@ -62,7 +62,7 @@ export function submitScore(params) { } /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params * @param {String} params.athleteId - 选手ID * @returns {Object} 评分详情 @@ -131,10 +131,10 @@ export function getScoreDetail(params) { } /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} params * @param {String} params.athleteId - 选手ID - * @param {String} params.modifierId - 修改人ID(裁判长) + * @param {String} params.modifierId - 修改人ID(主裁判) * @param {Number} params.modifiedScore - 修改后的分数 * @param {String} params.note - 修改原因 * @returns {Object} 修改结果 diff --git a/pages/login/login.vue b/pages/login/login.vue index 068024f..93aa618 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -122,14 +122,14 @@ export default { // 保存用户信息到全局数据 getApp().globalData = { userRole, // 'pub' 或 'admin' - refereeType, // 1-裁判长, 2-普通裁判 + refereeType, // 1-主裁判, 2-裁判员 matchCode: this.matchCode, matchId, matchName, matchTime, judgeId, judgeName, - venueId, // 普通评委有场地,裁判长为null + venueId, // 普通评委有场地,主裁判为null venueName, projects, // 分配的项目列表(从登录接口返回) currentProjectIndex: 0 // 当前选中的项目索引 @@ -155,12 +155,12 @@ export default { // 根据角色跳转到不同页面 setTimeout(() => { if (userRole === 'admin') { - // 裁判长跳转到多场地列表页(可以修改评分) + // 主裁判跳转到多场地列表页(可以修改评分) uni.navigateTo({ url: '/pages/score-list-multi/score-list-multi' }) } else { - // 普通裁判跳转到评分列表页(可以评分) + // 裁判员跳转到评分列表页(可以评分) uni.navigateTo({ url: '/pages/score-list/score-list' }) diff --git a/pages/modify-score/modify-score.vue b/pages/modify-score/modify-score.vue index 637c966..3c5d05c 100644 --- a/pages/modify-score/modify-score.vue +++ b/pages/modify-score/modify-score.vue @@ -142,7 +142,7 @@ export default { // 获取当前选手信息(从 score-list-multi 页面传递) const currentAthlete = globalData.currentAthlete || - // 获取裁判长ID + // 获取主裁判ID this.modifierId = globalData.judgeId // 调试信息 diff --git a/pages/score-list-multi/score-list-multi.vue b/pages/score-list-multi/score-list-multi.vue index 6e07721..6b11667 100644 --- a/pages/score-list-multi/score-list-multi.vue +++ b/pages/score-list-multi/score-list-multi.vue @@ -32,7 +32,7 @@ - + @@ -130,12 +130,12 @@ export default { time: globalData.matchTime || '比赛时间' } - // 注意:裁判长没有固定场地和项目,需要查看所有 + // 注意:主裁判没有固定场地和项目,需要查看所有 this.competitionId = globalData.matchId // 调试信息 if (config.debug) { - console.log('裁判长列表页加载:', { + console.log('主裁判列表页加载:', { userRole: globalData.userRole, competitionId: this.competitionId }) @@ -212,7 +212,7 @@ export default { mask: true }) - // 🔥 关键改动:使用 dataAdapter 获取选手列表(裁判长视图) + // 🔥 关键改动:使用 dataAdapter 获取选手列表(主裁判视图) // Mock模式:调用 mock/athlete.js 的 getAthletesForAdmin 函数 // API模式:调用 api/athlete.js 的 getAthletesForAdmin 函数(GET /api/mini/athletes/admin) const response = await dataAdapter.getData('getAthletesForAdmin', { @@ -226,7 +226,7 @@ export default { // 保存选手列表 this.players = (response.data.records || response.data) || [] - // 计算评分统计(裁判长视图:统计有总分的选手) + // 计算评分统计(主裁判视图:统计有总分的选手) this.totalCount = this.players.length this.scoredCount = this.players.filter(p => p.scoringComplete).length diff --git a/pages/score-list/score-list.vue b/pages/score-list/score-list.vue index 4425337..87473d6 100644 --- a/pages/score-list/score-list.vue +++ b/pages/score-list/score-list.vue @@ -60,7 +60,7 @@ {{ player.name }} - + 总分:{{ player.scoringComplete ? player.totalScore : '评分中' }} @@ -70,7 +70,7 @@ - + @@ -124,7 +124,7 @@ export default { }, judgeId: '', matchId: '', - refereeType: 2, // 裁判类型(1-裁判长, 2-普通裁判) + refereeType: 2, // 裁判类型(1-主裁判, 2-裁判员) venues: [], // 所有场地列表 currentVenueIndex: 0, // 当前选中的场地索引 projects: [], // 所有项目列表 @@ -149,7 +149,7 @@ export default { this.judgeId = globalData.judgeId this.matchId = globalData.matchId || globalData.matchCode - this.refereeType = globalData.refereeType || 2 // 默认为普通裁判 + this.refereeType = globalData.refereeType || 2 // 默认为裁判员 // 调试信息 if (config.debug) { @@ -277,15 +277,15 @@ export default { /** * 处理选手卡片点击 - * - 裁判长:跳转到查看详情页面 - * - 普通裁判:不处理(通过评分按钮跳转) + * - 主裁判:跳转到查看详情页面 + * - 裁判员:不处理(通过评分按钮跳转) */ handlePlayerClick(player) { if (this.refereeType === 1) { - // 裁判长:查看评分详情 + // 主裁判:查看评分详情 this.goToScoreDetail(player) } - // 普通裁判不处理卡片点击,只能通过评分按钮跳转 + // 裁判员不处理卡片点击,只能通过评分按钮跳转 }, goToScoreDetail(player) { diff --git a/src/api/athlete.js b/src/api/athlete.js index 99af888..163aa39 100644 --- a/src/api/athlete.js +++ b/src/api/athlete.js @@ -28,14 +28,14 @@ export function getMyAthletes(params) { method: 'GET', params: { ...params, - refereeType: 2 // 普通裁判 + refereeType: 2 // 裁判员 }, showLoading: true }) } /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params * @param {String} params.competitionId - 比赛ID * @param {String} params.venueId - 场地ID @@ -51,7 +51,7 @@ export function getAthletesForAdmin(params) { method: 'GET', params: { ...params, - refereeType: 1 // 裁判长 + refereeType: 1 // 主裁判 }, showLoading: true }) diff --git a/src/api/index.js b/src/api/index.js index 6ba4483..6e1e4d7 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -46,7 +46,7 @@ export default { getMyAthletes: athleteApi.getMyAthletes, /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params - { competitionId, venueId, projectId } * @returns {Promise} */ @@ -82,14 +82,14 @@ export default { submitScore: scoreApi.submitScore, /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params - { athleteId } * @returns {Promise} */ getScoreDetail: scoreApi.getScoreDetail, /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} data - { athleteId, modifierId, modifiedScore, note } * @returns {Promise} */ @@ -127,7 +127,7 @@ export default { * 1. 需要实现的新接口(小程序专用): * - POST /api/mini/login # 登录验证 * - GET /api/mini/athletes # 普通评委选手列表 - * - GET /api/mini/athletes/admin # 裁判长选手列表 + * - GET /api/mini/athletes/admin # 主裁判选手列表 * - GET /api/mini/score/detail/{athleteId} # 评分详情 * - PUT /api/mini/score/modify # 修改评分 * diff --git a/src/api/score.js b/src/api/score.js index 9e9744e..d0f0282 100644 --- a/src/api/score.js +++ b/src/api/score.js @@ -44,7 +44,7 @@ export function submitScore(data) { } /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params * @param {String} params.athleteId - 选手ID * @returns {Promise} @@ -61,7 +61,7 @@ export function getScoreDetail(params) { } /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} data * @param {String} data.athleteId - 选手ID * @param {String} data.modifierId - 修改人ID @@ -158,7 +158,7 @@ export default { * } * * 实现逻辑: - * 1. 验证权限(只有裁判长可以修改) + * 1. 验证权限(只有主裁判可以修改) * 2. 保存 originalScore(如果是第一次修改) * 3. 更新 totalScore * 4. 记录 modifyReason 和 modifyTime diff --git a/src/mock/athlete.js b/src/mock/athlete.js index 2544a52..08f636c 100644 --- a/src/mock/athlete.js +++ b/src/mock/athlete.js @@ -51,7 +51,7 @@ export function getMyAthletes(params) { } /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params * @param {String} params.competitionId - 比赛ID * @param {String} params.venueId - 场地ID diff --git a/src/mock/index.js b/src/mock/index.js index 8db80bf..bd1d32e 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -34,7 +34,7 @@ export default { getMyAthletes: athleteMock.getMyAthletes, /** - * 获取选手列表(裁判长) + * 获取选手列表(主裁判) * @param {Object} params - { competitionId, venueId, projectId } * @returns {Array} 选手列表(带评分统计) */ @@ -70,14 +70,14 @@ export default { submitScore: scoreMock.submitScore, /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params - { athleteId } * @returns {Object} 评分详情(选手信息+评委评分) */ getScoreDetail: scoreMock.getScoreDetail, /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} params - { athleteId, modifierId, modifiedScore, note } * @returns {Object} 修改结果 */ diff --git a/src/mock/login.js b/src/mock/login.js index 99d09b3..8befede 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -29,7 +29,7 @@ export function login(params) { matchTime: '2025年6月25日 9:00', judgeId: '456', judgeName: '欧阳丽娜', - // 普通评委有固定场地,裁判长可以查看所有场地 + // 普通评委有固定场地,主裁判可以查看所有场地 venueId: role === 'pub' ? '1' : null, venueName: role === 'pub' ? '第一场地' : null, // 分配的项目列表(对象数组格式) diff --git a/src/mock/score.js b/src/mock/score.js index a472f65..6ee2fa5 100644 --- a/src/mock/score.js +++ b/src/mock/score.js @@ -56,7 +56,7 @@ export function submitScore(params) { } /** - * 获取评分详情(裁判长查看) + * 获取评分详情(主裁判查看) * @param {Object} params * @param {String} params.athleteId - 选手ID * @returns {Object} 评分详情 @@ -125,10 +125,10 @@ export function getScoreDetail(params) { } /** - * 修改评分(裁判长) + * 修改评分(主裁判) * @param {Object} params * @param {String} params.athleteId - 选手ID - * @param {String} params.modifierId - 修改人ID(裁判长) + * @param {String} params.modifierId - 修改人ID(主裁判) * @param {Number} params.modifiedScore - 修改后的分数 * @param {String} params.note - 修改原因 * @returns {Object} 修改结果 diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue index c240b64..2e99c15 100644 --- a/src/pages/login/login.vue +++ b/src/pages/login/login.vue @@ -129,7 +129,7 @@ export default { matchTime, judgeId, judgeName, - venueId, // 普通评委有场地,裁判长为null + venueId, // 普通评委有场地,主裁判为null venueName, projects, // 分配的项目列表 currentProjectIndex: 0 // 当前选中的项目索引 @@ -155,12 +155,12 @@ export default { // 根据角色跳转到不同页面 setTimeout(() => { if (userRole === 'admin') { - // 裁判长跳转到多场地列表页(可以修改评分) + // 主裁判跳转到多场地列表页(可以修改评分) uni.navigateTo({ url: '/pages/score-list-multi/score-list-multi' }) } else { - // 普通裁判跳转到评分列表页(可以评分) + // 裁判员跳转到评分列表页(可以评分) uni.navigateTo({ url: '/pages/score-list/score-list' }) diff --git a/src/pages/modify-score/modify-score.vue b/src/pages/modify-score/modify-score.vue index 916c97b..9aad7c8 100644 --- a/src/pages/modify-score/modify-score.vue +++ b/src/pages/modify-score/modify-score.vue @@ -135,9 +135,9 @@ export default { return } - // 检查是否是裁判长 + // 检查是否是主裁判 if (globalData.userRole !== 'admin') { - console.warn('非裁判长用户,无权修改评分') + console.warn('非主裁判用户,无权修改评分') uni.showToast({ title: '无权限', icon: 'none', @@ -166,7 +166,7 @@ export default { // 获取当前选手信息(从 score-list-multi 页面传递) const currentAthlete = globalData.currentAthlete || {} - // 获取裁判长ID + // 获取主裁判ID this.modifierId = globalData.judgeId // 🔥 关键修复:先用传递过来的选手数据初始化页面 diff --git a/src/pages/score-list-multi/score-list-multi.vue b/src/pages/score-list-multi/score-list-multi.vue index 152a579..78164c5 100644 --- a/src/pages/score-list-multi/score-list-multi.vue +++ b/src/pages/score-list-multi/score-list-multi.vue @@ -146,9 +146,9 @@ export default { return } - // 检查是否是裁判长 + // 检查是否是主裁判 if (globalData.userRole !== 'admin') { - console.warn('非裁判长用户,跳转到普通评分页') + console.warn('非主裁判用户,跳转到普通评分页') uni.reLaunch({ url: '/pages/score-list/score-list' }) @@ -161,7 +161,7 @@ export default { time: globalData.matchTime || '' } - // 从 globalData 获取场地信息(与普通裁判相同) + // 从 globalData 获取场地信息(与裁判员相同) this.venueInfo = { id: globalData.venueId, name: globalData.venueName || '场地' @@ -175,7 +175,7 @@ export default { // 调试信息 if (config.debug) { - console.log('裁判长列表页加载:', { + console.log('主裁判列表页加载:', { userRole: globalData.userRole, judgeId: this.judgeId, venueId: this.venueInfo.id, @@ -280,7 +280,7 @@ export default { console.log('请求选手列表参数:', params) } - // 裁判长使用 getAthletesForAdmin 接口 + // 主裁判使用 getAthletesForAdmin 接口 const response = await dataAdapter.getData('getAthletesForAdmin', params) if (config.debug) { @@ -300,7 +300,7 @@ export default { } else { this.players = [...this.players, ...records] } - // 裁判长视图:统计有总分的选手 + // 主裁判视图:统计有总分的选手 this.scoredCount = this.players.filter(p => p.totalScore).length this.hasMore = this.players.length < total diff --git a/src/utils/dataAdapter.js b/src/utils/dataAdapter.js index abe9fe9..3b26dd3 100644 --- a/src/utils/dataAdapter.js +++ b/src/utils/dataAdapter.js @@ -247,7 +247,7 @@ export default new DataAdapter() * |---------------------|----------------------|---------------------|---------------| * | login | mockData.login | apiService.login | 登录验证 | * | getMyAthletes | mockData.getMyAthletes | apiService.getMyAthletes | 选手列表(评委) | - * | getAthletesForAdmin | mockData.getAthletesForAdmin | apiService.getAthletesForAdmin | 选手列表(裁判长) | + * | getAthletesForAdmin | mockData.getAthletesForAdmin | apiService.getAthletesForAdmin | 选手列表(主裁判) | * | submitScore | mockData.submitScore | apiService.submitScore | 提交评分 | * | getScoreDetail | mockData.getScoreDetail | apiService.getScoreDetail | 评分详情 | * | modifyScore | mockData.modifyScore | apiService.modifyScore | 修改评分 | diff --git a/utils/dataAdapter.js b/utils/dataAdapter.js index abe9fe9..3b26dd3 100644 --- a/utils/dataAdapter.js +++ b/utils/dataAdapter.js @@ -247,7 +247,7 @@ export default new DataAdapter() * |---------------------|----------------------|---------------------|---------------| * | login | mockData.login | apiService.login | 登录验证 | * | getMyAthletes | mockData.getMyAthletes | apiService.getMyAthletes | 选手列表(评委) | - * | getAthletesForAdmin | mockData.getAthletesForAdmin | apiService.getAthletesForAdmin | 选手列表(裁判长) | + * | getAthletesForAdmin | mockData.getAthletesForAdmin | apiService.getAthletesForAdmin | 选手列表(主裁判) | * | submitScore | mockData.submitScore | apiService.submitScore | 提交评分 | * | getScoreDetail | mockData.getScoreDetail | apiService.getScoreDetail | 评分详情 | * | modifyScore | mockData.modifyScore | apiService.modifyScore | 修改评分 |