This commit is contained in:
2026-05-07 10:27:55 +08:00
2 changed files with 40 additions and 4 deletions
@@ -800,18 +800,37 @@ const apply = {
.filter(index => index > -1)
},
getBlockClass(block) {
const expired = this.isExpiredAvailabilityBlock(block)
return {
'apply-block': true,
'apply-block--available': block.status === 'available' && !this.selectedBlockKeys.includes(block.key),
'apply-block--available': block.status === 'available' && !expired && !this.selectedBlockKeys.includes(block.key),
'apply-block--reserved': block.status === 'reserved',
'apply-block--closed': block.status === 'closed',
'apply-block--closed': block.status === 'closed' || expired,
'apply-block--selected': this.selectedBlockKeys.includes(block.key),
}
},
/**
* 前端按当天当前时间再做一层兜底判断,避免预约弹窗长时间停留后,
* 之前可选的全天候时间块在开始后仍被继续点选。
*/
isExpiredAvailabilityBlock(block) {
if (!block || !block.startDateTime) {
return false
}
const start = this.$moment(block.startDateTime)
if (!start.isValid()) {
return false
}
return start.isSame(this.$moment(), 'day') && !start.isAfter(this.$moment())
},
onAvailabilityBlockClick(block) {
if (!block || !block.key) {
return
}
if (this.isExpiredAvailabilityBlock(block) && !this.selectedBlockKeys.includes(block.key)) {
this.$message.warning('该时段开始时间已过,请选择其他时段')
return
}
if (block.status !== 'available' && !this.selectedBlockKeys.includes(block.key)) {
this.$message.warning(block.status === 'reserved' ? '该时段已被预约,请选择其他时段' : '该时段当前不可预约')
return
@@ -860,7 +879,7 @@ const apply = {
}
for (let i = startIndex; i <= endIndex; i++) {
const block = this.availabilityBlocks[i]
if (!block || block.status !== 'available') {
if (!block || block.status !== 'available' || this.isExpiredAvailabilityBlock(block)) {
return false
}
if (i > startIndex) {