fix: 比赛结束后不允许报名

- 修改getStatus方法,增加比赛结束时间检查
- 如果比赛已结束,即使报名时间还在有效期内,也显示报名已结束

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
DevOps
2026-01-05 17:49:28 +08:00
parent 13eb311575
commit 0ab8312bbb

View File

@@ -138,7 +138,7 @@ export default {
matchTime: this.formatTimeRange(startTime, endTime) ||
item.matchTime || item.competitionTime || '待定',
registerCount: item.registrationCount || item.registerCount || item.signUpCount || item.totalParticipants || '0',
status: this.getStatus(item.status, regEndTime)
status: this.getStatus(item.status, regEndTime, endTime)
}
})
@@ -174,12 +174,20 @@ export default {
* @param {Number|String} status 状态码
* @returns {String}
*/
getStatus(status, regEndTime) {
getStatus(status, regEndTime, competitionEndTime) {
// 根据后端状态码映射为前端需要的状态
// 1: 报名中, 2: 进行中, 3: 已结束
if (status === 3 || status === '3' || status === 'finished') {
return 'finished'
}
// 根据比赛结束时间判断是否已结束
if (competitionEndTime) {
const compEndDate = new Date(competitionEndTime)
const now = new Date()
if (now > compEndDate) {
return 'finished'
}
}
// 根据报名结束时间判断是否已结束
if (regEndTime) {
const endDate = new Date(regEndTime)