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:
co-authored by
factory-droid[bot]
parent
d85833ede5
commit
0419af8561
@@ -162,6 +162,7 @@ import {
|
|||||||
import { getCompetitionDetail } from '@/api/martial/competition'
|
import { getCompetitionDetail } from '@/api/martial/competition'
|
||||||
import { getProjectDetail } from '@/api/martial/project'
|
import { getProjectDetail } from '@/api/martial/project'
|
||||||
import { getParticipantList } from '@/api/martial/participant'
|
import { getParticipantList } from '@/api/martial/participant'
|
||||||
|
import { getScheduleResult } from '@/api/martial/activitySchedule'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MartialRegistrationDetail',
|
name: 'MartialRegistrationDetail',
|
||||||
@@ -391,6 +392,31 @@ export default {
|
|||||||
// 预加载项目信息
|
// 预加载项目信息
|
||||||
await this.preloadProjectInfo(participants)
|
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分组统计人数
|
// 按项目ID分组统计人数
|
||||||
const projectAthleteCount = new Map()
|
const projectAthleteCount = new Map()
|
||||||
participants.forEach(athlete => {
|
participants.forEach(athlete => {
|
||||||
@@ -410,7 +436,10 @@ export default {
|
|||||||
projectName: project.projectName || project.project_name || '未知项目',
|
projectName: project.projectName || project.project_name || '未知项目',
|
||||||
projectType: projectType === 1 ? '单人' : '集体',
|
projectType: projectType === 1 ? '单人' : '集体',
|
||||||
athleteCount: count,
|
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,
|
estimatedDuration: project.estimatedDuration || project.estimated_duration || 0,
|
||||||
projectCode: project.projectCode || project.project_code || ''
|
projectCode: project.projectCode || project.project_code || ''
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user