fix: 修复项目时间统计表分组数显示问题

- 添加 getScheduleResult API 调用获取编排数据
- 支持 competitionGroups 和 scheduleGroups 两种字段名
- 当 projectId 为 -1 时,从 group.title 提取项目名作为 key
- 使用项目名作为 fallback 进行分组数查找

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
Z-WICK
2026-01-15 12:15:19 +08:00
co-authored by factory-droid[bot]
parent d85833ede5
commit 0419af8561
+30 -1
View File
@@ -162,6 +162,7 @@ import {
import { getCompetitionDetail } from '@/api/martial/competition'
import { getProjectDetail } from '@/api/martial/project'
import { getParticipantList } from '@/api/martial/participant'
import { getScheduleResult } from '@/api/martial/activitySchedule'
export default {
name: 'MartialRegistrationDetail',
@@ -391,6 +392,31 @@ export default {
// 预加载项目信息
await this.preloadProjectInfo(participants)
// 获取编排数据,统计每个项目的分组数
let projectGroupCount = new Map()
try {
const scheduleRes = await getScheduleResult(this.competitionId)
const scheduleData = scheduleRes.data?.data
const scheduleGroups = scheduleData?.competitionGroups || scheduleData?.scheduleGroups || []
scheduleGroups.forEach(group => {
const groupProjectId = group.projectId
let key = null
if (groupProjectId && groupProjectId !== -1 && groupProjectId !== '-1') {
key = String(groupProjectId)
} else if (group.title) {
key = group.title.split(' ')[0]
}
if (key) {
projectGroupCount.set(key, (projectGroupCount.get(key) || 0) + 1)
}
})
} catch (scheduleErr) {
console.warn("获取编排数据失败,组数将显示为-:", scheduleErr)
}
// 按项目ID分组统计人数
const projectAthleteCount = new Map()
participants.forEach(athlete => {
@@ -410,7 +436,10 @@ export default {
projectName: project.projectName || project.project_name || '未知项目',
projectType: projectType === 1 ? '单人' : '集体',
athleteCount: count,
groupCount: projectType === 2 ? count : '-', // 集体项目显示组数,单人显示-
groupCount:
projectGroupCount.get(String(projectId)) ||
projectGroupCount.get(project.projectName || project.project_name || '') ||
'-',
estimatedDuration: project.estimatedDuration || project.estimated_duration || 0,
projectCode: project.projectCode || project.project_code || ''
})