diff --git a/src/views/user/record/index.vue b/src/views/user/record/index.vue index b7080ab..f9c1ada 100644 --- a/src/views/user/record/index.vue +++ b/src/views/user/record/index.vue @@ -2312,6 +2312,12 @@ const isChangeMemberAssignedToActive = (memberId) => { // ==================== 队员验证相关函数 ==================== +const getValidationMemberIdsForItem = (item) => { + return (changeMembersMap.value[item.registrationItemId] || []) + .map((m) => m.userId ?? m.id) + .filter(Boolean); +}; + // 调用后端API验证队员 const validateMemberForItem = async (member, item) => { try { @@ -2324,6 +2330,7 @@ const validateMemberForItem = async (member, item) => { const payload = { eventId: changeMembersData.value.eventId, memberId: member.userId ?? member.id, + memberIds: getValidationMemberIdsForItem(item), groupId: item.eventProjectGroupId }; console.log('验证队员 - payload:', payload); @@ -2985,4 +2992,4 @@ const submitChangeMembers = async () => { } } } - \ No newline at end of file + diff --git a/src/views/user/registration/index.vue b/src/views/user/registration/index.vue index 745c198..f4dc937 100644 --- a/src/views/user/registration/index.vue +++ b/src/views/user/registration/index.vue @@ -1646,6 +1646,24 @@ const isMemberAssignedToActive = (memberId) => { return list.some((m) => (m.userId ?? m.id) === memberId); }; +const getValidationMemberIdsForGroup = (member, group) => { + const memberId = member.userId ?? member.id; + const teams = groupTeamsMap.value[group.id] ?? []; + const currentTeam = teams.find((team) => + (team.members ?? []).some((m) => (m.userId ?? m.id) === memberId) + ); + + if (currentTeam) { + return (currentTeam.members ?? []) + .map((m) => m.userId ?? m.id) + .filter(Boolean); + } + + return (groupMemberMap.value[group.id] ?? []) + .map((m) => m.userId ?? m.id) + .filter(Boolean); +}; + // ==================== 队员验证相关函数 ==================== // 调用后端API验证队员 @@ -1658,6 +1676,7 @@ const validateMemberForGroup = async (member, group) => { const { succeeded, data } = await usereventregistrationMemberValidatePost({ eventId: currentEventId.value, memberId: member.userId ?? member.id, + memberIds: getValidationMemberIdsForGroup(member, group), groupId: group.id }); @@ -4188,4 +4207,4 @@ const handleCreateOrderAndPay = async () => { font-size: 12px; color: #909399; } - \ No newline at end of file +