refactor: 裁判角色名称修改 - 裁判长→主裁判, 普通裁判→裁判员

- 修改pages目录下的Vue组件注释
- 修改api目录下的接口注释
- 修改mock目录下的模拟数据注释
- 修改utils/dataAdapter.js中的注释

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
DevOps
2025-12-27 11:37:50 +08:00
parent 711779dc57
commit a3680f7d3e
24 changed files with 76 additions and 76 deletions

View File

@@ -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 // 确保获取所有选手

View File

@@ -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",

View File

@@ -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 # 修改评分
*

View File

@@ -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

View File

@@ -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

View File

@@ -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} 修改结果
*/

View File

@@ -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,
// 分配的项目列表

View File

@@ -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} 修改结果

View File

@@ -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'
})

View File

@@ -142,7 +142,7 @@ export default {
// 获取当前选手信息(从 score-list-multi 页面传递)
const currentAthlete = globalData.currentAthlete ||
// 获取裁判ID
// 获取裁判ID
this.modifierId = globalData.judgeId
// 调试信息

View File

@@ -32,7 +32,7 @@
</scroll-view>
<view class="venue-tip">
<!-- <text class="tip-bold">裁判可看见所有场地和项目</text> -->
<!-- <text class="tip-bold">裁判可看见所有场地和项目</text> -->
<!-- <text class="tip-normal">场地和项目可动态全部可以点击切换</text> -->
</view>
@@ -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

View File

@@ -60,7 +60,7 @@
<view class="player-header">
<view class="player-name">{{ player.name }}</view>
<!-- 裁判显示总分和已评分裁判数 -->
<!-- 裁判显示总分和已评分裁判数 -->
<view class="player-scores" v-if="refereeType === 1">
<text class="total-score">
总分{{ player.scoringComplete ? player.totalScore : '评分中' }}
@@ -70,7 +70,7 @@
</text>
</view>
<!-- 普通裁判根据评分状态显示不同内容 -->
<!-- 裁判根据评分状态显示不同内容 -->
<view class="judge-action" v-else>
<!-- 已评分显示分数和修改按钮 -->
<view class="scored-info" v-if="player.scored">
@@ -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) {

View File

@@ -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
})

View File

@@ -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 # 修改评分
*

View File

@@ -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

View File

@@ -51,7 +51,7 @@ export function getMyAthletes(params) {
}
/**
* 获取选手列表(裁判
* 获取选手列表(裁判)
* @param {Object} params
* @param {String} params.competitionId - 比赛ID
* @param {String} params.venueId - 场地ID

View File

@@ -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} 修改结果
*/

View File

@@ -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,
// 分配的项目列表(对象数组格式)

View File

@@ -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} 修改结果

View File

@@ -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'
})

View File

@@ -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
// 🔥 关键修复:先用传递过来的选手数据初始化页面

View File

@@ -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

View File

@@ -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 | 修改评分 |

View File

@@ -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 | 修改评分 |