修复集体项目展开后显示队员名单

- 在items映射中添加members字段,保留API返回的队员数据
- groupItemsByTeam方法已正确处理members数组
- 集体项目现在正确显示队员姓名而非队伍名称

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
Z-WICK
2026-01-15 14:02:46 +08:00
parent 23d1856dcc
commit 9035a6aafa
2 changed files with 55 additions and 3 deletions
+37
View File
@@ -0,0 +1,37 @@
# 待处理问题
## Issue 1: 调度页面"状态"列数据应从后端获取
### 问题描述
调度页面中的"状态"列(已完赛/未完赛)目前是前端硬编码为 `false`,并非从后端 API 获取的真实状态。
### 当前行为
- 前端在加载调度数据时,将 `completed` 字段默认设置为 `false`
- 所有参赛者的状态都显示为"未完赛"
### 期望行为
- 从后端 API 获取每个参赛者的真实完赛状态
- 正确显示"已完赛"或"未完赛"
### 相关代码
**文件:** `src/views/martial/dispatch/index.vue`
```javascript
// 第320行 - 当前硬编码
completed: false,
// 第69-70行 - 状态显示逻辑
<el-tag v-if="scope.row.completed" type="success" size="small">已完赛</el-tag>
<el-tag v-else type="warning" size="small">未完赛</el-tag>
```
### 待办
- [ ] 后端 API 返回参赛者的完赛状态字段
- [ ] 前端从 API 响应中读取真实状态
---
+18 -3
View File
@@ -620,8 +620,22 @@ export default {
playerIds: []
})
}
teamMap.get(key).players.push(item)
teamMap.get(key).playerIds.push(item.id)
// If item has members array (from API), use it as players
if (item.members && item.members.length > 0) {
item.members.forEach(member => {
teamMap.get(key).players.push({
id: member.id,
playerName: member.playerName,
organization: member.organization,
status: member.status
})
teamMap.get(key).playerIds.push(member.id)
})
} else {
// Fallback: use item itself as player
teamMap.get(key).players.push(item)
teamMap.get(key).playerIds.push(item.id)
}
})
return Array.from(teamMap.values())
},
@@ -965,7 +979,8 @@ export default {
schoolUnit: p.schoolUnit,
playerName: p.playerName,
status: p.status || '未签到',
sortOrder: p.sortOrder
sortOrder: p.sortOrder,
members: p.members || []
}))
}))