From 9d02881a01bca3c77e5295aeeb82961e32d6a52a Mon Sep 17 00:00:00 2001 From: ltx <1006158920@qq.com> Date: Mon, 20 Apr 2026 15:26:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?update=EF=BC=9A=E8=AF=81=E4=B9=A6=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E5=AD=97=E6=AE=B5=E4=BF=AE=E6=94=B9&=E6=8A=A5?= =?UTF-8?q?=E5=90=8D=E5=88=A0=E9=99=A4=E9=A1=B9=E7=9B=AE=E6=97=B6=E5=80=99?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=AF=B7=E6=B1=82=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/match/manage/work.vue | 4 ++-- src/views/user/registration/index.vue | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/views/match/manage/work.vue b/src/views/match/manage/work.vue index a940fe0..bbc6631 100644 --- a/src/views/match/manage/work.vue +++ b/src/views/match/manage/work.vue @@ -1220,8 +1220,8 @@ const viewCertificate = async (id) => { try { const { succeeded, data, errors } = await eventscoreGetCertificateDetailGet(id); if (succeeded) { - if (data?.CertificateUrl) { - window.open(data.CertificateUrl, '_blank'); + if (data?.certificateUrl) { + window.open(data.certificateUrl, '_blank'); } else if (data?.url) { window.open(data.url, '_blank'); } else if (data?.Url) { diff --git a/src/views/user/registration/index.vue b/src/views/user/registration/index.vue index d17efaa..6768d2f 100644 --- a/src/views/user/registration/index.vue +++ b/src/views/user/registration/index.vue @@ -829,6 +829,17 @@ const toggleGroupSelection = (id) => { if (idx >= 0) { // 取消选中 selectedGroupIds.value.splice(idx, 1); + // 若在第二步删除了组别,清理该组别的验证缓存并重新触发验证 + if (activeStep.value === 1) { + // 清理被删除组别的队员验证缓存 + Object.keys(memberValidationMap.value).forEach(key => { + if (key.startsWith(`${id}_`)) { + delete memberValidationMap.value[key]; + } + }); + // 重新检查报名限制(刷新页面上的提示信息) + checkRegistrationLimit(); + } } else { // 选中新组别:先找出这个组别属于哪个项目,然后取消该项目的其他组别 const clickedGroup = allGroups.value.find(g => g.id === id); From 77ce71a14b0a9383be94b208d1fc89ff37567f77 Mon Sep 17 00:00:00 2001 From: ltx <1006158920@qq.com> Date: Mon, 20 Apr 2026 16:03:22 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update=EF=BC=9A=E5=88=A0=E9=99=A4=E5=9B=A2?= =?UTF-8?q?=E9=98=9F=E6=97=B6=E9=87=8D=E6=96=B0=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/user/registration/index.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/views/user/registration/index.vue b/src/views/user/registration/index.vue index 6768d2f..e0c075b 100644 --- a/src/views/user/registration/index.vue +++ b/src/views/user/registration/index.vue @@ -1449,6 +1449,13 @@ const removeTeam = async (groupId, teamIndex) => { const teamIdx = teams.findIndex(t => t.teamIndex === teamIndex); if (teamIdx > -1) { + // 清理被删除团队的队员验证缓存 + const removedTeam = teams[teamIdx]; + removedTeam.members.forEach(m => { + const key = `${groupId}_${m.userId ?? m.id}`; + delete memberValidationMap.value[key]; + }); + teams.splice(teamIdx, 1); // 重新编号团队索引 @@ -1457,6 +1464,9 @@ const removeTeam = async (groupId, teamIndex) => { }); ElMessage.success('团队删除成功'); + + // 重新调用验证接口,刷新限报提示 + checkRegistrationLimit(); } } catch { // 用户取消 From c888a2ea84f4fc6edb81733316f8c9b348a20d1f Mon Sep 17 00:00:00 2001 From: ltx <1006158920@qq.com> Date: Mon, 20 Apr 2026 16:08:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?update=EF=BC=9A=E6=A0=B7=E5=BC=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/user/record/index.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/user/record/index.vue b/src/views/user/record/index.vue index e57e352..05e8753 100644 --- a/src/views/user/record/index.vue +++ b/src/views/user/record/index.vue @@ -596,10 +596,10 @@ const columns = ref([ ], }, { prop: 'eventStatus', label: '赛事状态', align: 'center', width: 120 }, - { prop: 'registrationStartTime', label: '报名起止时间', align: 'center', minWidth: 320 }, - { prop: 'materialDeadline', label: '上传素材截止时间', align: 'center', minWidth: 180 }, - { prop: 'matchStartTime', label: '比赛起止时间', align: 'center', minWidth: 320 }, - { prop: 'action', label: '操作', align: 'center', fixed: 'right', width: 320 }, + { prop: 'registrationStartTime', label: '报名起止时间', align: 'center', minWidth: 200 }, + { prop: 'materialDeadline', label: '上传素材截止时间', align: 'center', minWidth: 210 }, + { prop: 'matchStartTime', label: '比赛起止时间', align: 'center', minWidth: 200 }, + { prop: 'action', label: '操作', align: 'center', fixed: 'right', width: 190 }, ]); const isShowDialog = ref(false);