修复bug

This commit is contained in:
zhouyanli
2026-08-13 14:12:11 +08:00
parent 94146ce27a
commit 32765cc004
12 changed files with 145 additions and 48 deletions

View File

@@ -94,10 +94,13 @@
</view>
<view class="action-buttons">
<button v-if="activeTab === 'list' && activity.applied === false && activity.statusText !== '已结束'" class="action-btn signup-btn"
<button v-if="activeTab === 'list' && activity.applied === false && activity.statusText !== '已结束' && !isDeadlinePassed(activity) && !isQuotaFull(activity)" class="action-btn signup-btn"
@tap.stop="signupActivity(activity)">
立即报名
</button>
<view v-if="activeTab === 'list' && activity.applied === false && activity.statusText !== '已结束' && getDisabledText(activity)" class="action-btn disabled-btn">
{{ getDisabledText(activity) }}
</view>
<button v-if="activeTab === 'list' && activity.applied === true && activity.statusText !== '已结束'" class="action-btn signup-btn"
@tap.stop="cancelActivity(activity)">
取消报名
@@ -316,6 +319,37 @@ const formatDate = (date) => {
return moment(date).format('YYYY-MM-DD HH:mm')
}
/**
* 报名是否已截止applyDeadline 已过)
* @param {object} activity - 活动对象
* @returns {boolean}
*/
const isDeadlinePassed = (activity) => {
if (!activity.applyDeadline) return false
return moment().isAfter(moment(activity.applyDeadline))
}
/**
* 报名名额是否已满quota 为 0 表示不限名额)
* @param {object} activity - 活动对象
* @returns {boolean}
*/
const isQuotaFull = (activity) => {
if (!activity.quota) return false
return (Number(activity.appliedCount) || 0) >= Number(activity.quota)
}
/**
* 获取报名不可用时的置灰文案
* @param {object} activity - 活动对象
* @returns {string} 截止返回“报名已结束”,已满返回“名额已满”,否则空字符串
*/
const getDisabledText = (activity) => {
if (isDeadlinePassed(activity)) return '报名已结束'
if (isQuotaFull(activity)) return '名额已满'
return ''
}
/**
* 报名活动(跳转详情页)
* @param {object} activity - 活动对象
@@ -633,6 +667,12 @@ watch(() => myFilter.value, () => {
background-color: #0056cc;
}
.disabled-btn {
background-color: #f2f3f5;
color: #999;
text-align: center;
}
/* 加载更多 */
.load-more-container {
display: flex;