| | |
| | | </view> |
| | | </view> |
| | | |
| | | <scroll-view class="content" scroll-y="true" show-scrollbar="false"> |
| | | <scroll-view class="content" scroll-y="true" :show-scrollbar="false"> |
| | | <view v-if="loading" class="page-state"><view class="loading-spinner"></view><text>正在加载免费权益</text></view> |
| | | <view v-else-if="loadFailed" class="page-state"><text>免费权益加载失败</text><text class="retry-text" @tap="loadBenefit">重新加载</text></view> |
| | | <view v-else-if="!available" class="page-state empty-state"><text class="empty-title">暂无可用免费券</text><text class="empty-copy">{{unavailableReason}}</text><text class="retry-text" @tap="loadBenefit">重新加载</text></view> |
| | |
| | | <view class="card-divider"></view> |
| | | <view class="benefit-detail"> |
| | | <text class="detail-title">权益详情</text> |
| | | <view class="detail-content"><text>{{description}}</text></view> |
| | | <view class="detail-content"><text>{{quotaDetail != '' ? quotaDetail : description}}</text></view> |
| | | </view> |
| | | </view> |
| | | <view class="content-bottom"></view> |
| | |
| | | const resetCycle = ref('-') |
| | | const countdown = ref(0) |
| | | const validEnd = ref('-') |
| | | const quotaDetail = ref('') |
| | | const description = ref('') |
| | | const codeImage = ref('') |
| | | const codeText = ref('') |
| | |
| | | quotaUsed.value = data.quotaUsed != null ? Number(data.quotaUsed) : 0 |
| | | remainingCount.value = data.quotaRemaining != null ? Number(data.quotaRemaining) : 0 |
| | | resetCycle.value = data.quotaResetCycle != null && String(data.quotaResetCycle) != '' ? String(data.quotaResetCycle) : '-' |
| | | quotaDetail.value = data.quotaDetail != null && String(data.quotaDetail).trim() != '' ? String(data.quotaDetail) : '' |
| | | const familyCard = data.familyCard === true |
| | | couponName.value = familyCard ? '亲属卡共享免费入住权益' : '人才卡免费入住权益' |
| | | description.value = familyCard ? '当前亲属附属卡已自动关联主卡,共享主卡的酒店权益额度;核销成功后将自动扣减主卡剩余次数。' : '核销成功后将自动扣减当前主卡的酒店权益次数。' |
| | |
| | | quotaUsed.value = data.quotaUsed != null ? Number(data.quotaUsed) : quotaUsed.value |
| | | remainingCount.value = data.quotaRemainingBefore != null ? Number(data.quotaRemainingBefore) : remainingCount.value |
| | | resetCycle.value = data.quotaResetCycle != null && String(data.quotaResetCycle) != '' ? String(data.quotaResetCycle) : resetCycle.value |
| | | quotaDetail.value = data.quotaDetail != null && String(data.quotaDetail).trim() != '' ? String(data.quotaDetail) : quotaDetail.value |
| | | const expiresAt = data.expiresAt != null ? String(data.expiresAt).replace('T', ' ') : '' |
| | | validEnd.value = expiresAt.length > 19 ? expiresAt.substring(0, 19) : (expiresAt == '' ? '生成后60秒' : expiresAt) |
| | | description.value = familyCard ? '当前亲属附属卡已自动关联主卡,共享主卡的酒店权益额度;核销成功后将自动扣减主卡剩余次数。' : '核销成功后将自动扣减当前主卡的酒店权益次数。' |