diff --git a/src/views/user/record/index.vue b/src/views/user/record/index.vue index 6c0a424..cd27846 100644 --- a/src/views/user/record/index.vue +++ b/src/views/user/record/index.vue @@ -1879,7 +1879,27 @@ const toggleTeamForProject = (projectId) => { watch(cancelAll, async (newVal) => { if (newVal) { // 取消全部:选中所有队员,并取消所有团队 - selectedMembers.value = (cancelPreviewData.value?.members || []).map(m => m.memberId); + const allMemberIds = []; + + // 首先尝试从新数据结构获取所有队员 + if (cancelPreviewData.value?.projectDetails && cancelPreviewData.value.projectDetails.length > 0) { + for (const project of cancelPreviewData.value.projectDetails) { + for (const group of project.groups || []) { + for (const team of group.teams || []) { + for (const member of team.members || []) { + allMemberIds.push(member.memberId); + } + } + } + } + } + + // 如果新数据结构没有队员,尝试从旧数据结构获取 + if (allMemberIds.length === 0) { + allMemberIds.push(...(cancelPreviewData.value?.members || []).map(m => m.memberId)); + } + + selectedMembers.value = allMemberIds; // 处理新数据结构中的所有团队 removedTeams.value.clear(); @@ -2009,7 +2029,7 @@ const submitCancel = async () => { // 添加取消的团队 cancelTeams: Array.from(removedTeams.value), // 添加计算后的退款金额 - calculatedRefundAmount: totalRefundAmount + calculatedRefundAmount: totalRefundAmount.value }; if (!cancelAll.value) {