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 { 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 || ''
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user