报名验证

This commit is contained in:
马梓彭 2026-04-17 13:44:55 +08:00
parent 4e851c9e36
commit cf1558071a
2 changed files with 33 additions and 1 deletions

View File

@ -329,3 +329,18 @@ export const usereventregistrationCheckGroupSelectionLimitPost = (data) => {
return http.post('/usereventregistration/check-group-selection-limit', data);
};
/**
* 验证用户报名状态
* @param {Object} data - 验证信息
* @param {number} data.eventId - 赛事ID
* @returns {Promise<{
* isRegistered: boolean,
* registrationId: number,
* registrationStatus: string,
* message: string
* }>}
*/
export const usereventregistrationRegistrationStatusCheckPost = (data) => {
return http.post('/usereventregistration/registration-status/check', data);
};

View File

@ -452,6 +452,7 @@ import {
usereventregistrationRegistrationLimitCheckPost,
usereventregistrationGroupTeamLimitGet,
usereventregistrationOrderStatusGet,
usereventregistrationRegistrationStatusCheckPost,
} from '/@/api/match/usereventregistration';
import { teamPageGet, teamDetailGet } from '/@/api/match/unitUser';
import QRCode from 'qrcodejs2-fixes';
@ -997,6 +998,21 @@ const openRegistrationDialog = async (row) => {
registerLoading.value = true;
try {
// 首先验证用户是否已报名该赛事
const checkStatusRes = await usereventregistrationRegistrationStatusCheckPost({ eventId });
if (checkStatusRes.succeeded && checkStatusRes.data?.isRegistered) {
// 如果已报名,显示提示并阻止继续
ElMessageBox.alert(
checkStatusRes.data.message || '您已报名该赛事,请先取消报名后再重新报名',
'提示',
{
confirmButtonText: '确定',
type: 'warning'
}
);
return;
}
const { succeeded, data } = await usereventregistrationDetailGet(eventId);
if (!succeeded) {
ElMessage.error(data ?? '项目加载失败');
@ -1022,7 +1038,8 @@ const openRegistrationDialog = async (row) => {
projects.value = Array.isArray(data?.projects) ? data.projects : [];
isShowRegisterDialog.value = true;
activeStep.value = 0;
} catch {
} catch (error) {
console.error('打开报名弹窗失败:', error);
ElMessage.error('项目加载失败');
} finally {
registerLoading.value = false;