diff --git a/src/views/martial/registration/index.vue b/src/views/martial/registration/index.vue index 8009c42..7f329ba 100644 --- a/src/views/martial/registration/index.vue +++ b/src/views/martial/registration/index.vue @@ -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 || '' })