| | |
| | | <text class="service-title">{{merchantName}}</text> |
| | | </view> |
| | | <view class="talent-tag"><text>{{applicableCards}}</text></view> |
| | | <text class="service-desc">{{servicePointText}}</text> |
| | | <text class="service-tip">{{tipText}}</text> |
| | | <view class="rights-card"> |
| | | <text class="rights-label">权益详情</text> |
| | | <text class="rights-content">{{rightsText}}</text> |
| | | </view> |
| | | <text v-if="tipText != ''" class="service-tip">{{tipText}}</text> |
| | | <view v-if="!available" class="unavailable-note"><text>{{unavailableReason}}</text></view> |
| | | </view> |
| | | |
| | |
| | | const merchantName = ref('自助洗车服务') |
| | | const applicableCards = ref('') |
| | | const servicePointText = ref('') |
| | | const rightsText = ref('') |
| | | const tipText = ref('') |
| | | const available = ref(false) |
| | | const unavailableReason = ref('洗车服务当前不可用') |
| | |
| | | navRight.value = info.windowWidth - capsule.right |
| | | // #endif |
| | | if (options != null && options['merchantId'] != null) merchantId.value = options['merchantId'] as string |
| | | if (options != null && options['name'] != null && merchantName.value == '自助洗车服务') merchantName.value = options['name'] as string |
| | | if (options != null && options['name'] != null && merchantName.value == '自助洗车服务') merchantName.value = decodeURIComponent(options['name'] as string) |
| | | const session = getSession() |
| | | if (session != null && session.talentId != null) talentId.value = session.talentId as string |
| | | if (talentId.value != '') { |
| | | getTalentCardProfile(talentId.value, (data: any) => { const card = data != null ? data.card : null; if (card != null && card.id != null) cardId.value = '' + card.id; loadMerchantDetail() }, () => { loadMerchantDetail() }) |
| | | getTalentCardProfile(talentId.value, (data: any) => { |
| | | const card = data != null ? data.card : null |
| | | cardId.value = card != null && card.id != null ? '' + card.id : '' |
| | | loadMerchantDetail() |
| | | }, () => { loadMerchantDetail() }) |
| | | } else { |
| | | loadMerchantDetail() |
| | | } |
| | |
| | | getCarWashMerchantDetail(merchantId.value, cardId.value, (data: any) => { |
| | | if (data == null) { merchantLoading.value = false; merchantError.value = true; return } |
| | | merchantName.value = data.merchantName != null && data.merchantName != '' ? data.merchantName as string : merchantName.value |
| | | applicableCards.value = data.applicableCards != null ? data.applicableCards as string : '请咨询商家' |
| | | servicePointText.value = data.servicePointText != null ? data.servicePointText as string : '请咨询商家' |
| | | tipText.value = data.tipText != null ? data.tipText as string : '请按现场指引操作' |
| | | applicableCards.value = data.applicableCards != null && data.applicableCards != '' ? data.applicableCards as string : '请咨询商家' |
| | | servicePointText.value = data.servicePointText != null && data.servicePointText != '' ? data.servicePointText as string : '请咨询商家' |
| | | rightsText.value = data.rightsText != null && data.rightsText != '' ? data.rightsText as string : servicePointText.value |
| | | tipText.value = data.tipText != null ? data.tipText as string : '' |
| | | available.value = data.available === true |
| | | unavailableReason.value = data.unavailableReason != null && data.unavailableReason != '' ? data.unavailableReason as string : '洗车服务当前不可用' |
| | | externalLinkType.value = data.externalLinkType != null ? data.externalLinkType as string : '' |
| | |
| | | return |
| | | } |
| | | if (externalLinkType.value == 'web' && externalWebUrl.value.startsWith('https://')) { |
| | | uni.navigateTo({ url: '/pages/external-webview/external-webview?source=carWash&merchantId=' + encodeURIComponent(merchantId.value) }) |
| | | uni.navigateTo({ url: '/pages/external-webview/external-webview?source=carWash&merchantId=' + encodeURIComponent(merchantId.value) + '&talentCardId=' + encodeURIComponent(cardId.value) }) |
| | | return |
| | | } |
| | | showPhoneForm.value = true |
| | |
| | | .talent-tag { display: flex; max-width: 100%; width: fit-content; min-height: 47rpx; margin-top: 25rpx; box-sizing: border-box; padding: 8rpx 17rpx; border-radius: 24rpx; background-image: linear-gradient(90deg, #FFF0E5 0%, #FFE8D7 100%); justify-content: center; align-items: center; } |
| | | .talent-tag text { max-width: 540rpx; color: #D86B35; font-size: 23rpx; line-height: 31rpx; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } |
| | | .service-desc { display: block; margin-top: 24rpx; color: #6F7887; font-size: 25rpx; line-height: 39rpx; } |
| | | .rights-card { display: flex; margin-top: 24rpx; box-sizing: border-box; padding: 24rpx; border-radius: 20rpx; background-color: #FFF8F2; flex-direction: column; } |
| | | .rights-label { color: #D86B35; font-size: 24rpx; line-height: 34rpx; font-weight: 700; } |
| | | .rights-content { margin-top: 10rpx; color: #4D5663; font-size: 26rpx; line-height: 40rpx; } |
| | | .service-tip { display: block; margin-top: 16rpx; color: #9CA6B5; font-size: 22rpx; line-height: 34rpx; } |
| | | .unavailable-note { margin-top: 16rpx; text-align: center; } |
| | | .unavailable-note text { color: #D86B35; font-size: 23rpx; line-height: 34rpx; } |