From 0419af85613a8e14287f485a92ff03d2ef8a6697 Mon Sep 17 00:00:00 2001 From: Z-WICK <2289431216@qq.com> Date: Thu, 15 Jan 2026 12:15:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BB=9F=E8=AE=A1=E8=A1=A8=E5=88=86=E7=BB=84?= =?UTF-8?q?=E6=95=B0=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 getScheduleResult API 调用获取编排数据 - 支持 competitionGroups 和 scheduleGroups 两种字段名 - 当 projectId 为 -1 时,从 group.title 提取项目名作为 key - 使用项目名作为 fallback 进行分组数查找 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- src/views/martial/registration/index.vue | 31 +++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) 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 || '' })