完善功能

This commit is contained in:
wangxiaowei
2026-04-13 01:53:05 +08:00
parent f8ac363bcd
commit 5edfca8ff2
6 changed files with 326 additions and 75 deletions

View File

@ -103,7 +103,7 @@
<text class="modal-title">温馨提示</text>
<view class="close-icon" @click="closeInfoModal">×</view>
</view>
<view class="modal-desc">检测到您未填写相关信息为不影响使用请尽快完善</view>
<view class="modal-desc">{{ infoModalDesc }}</view>
<view class="modal-btn" @click="goToFillInfo">立即去完善</view>
</view>
</view>
@ -115,7 +115,7 @@
<view class="buy-modal-title">会员购买</view>
<view class="plan-list">
<view class="plan-item" :class="{ active: selectedPlan === 1 }" @click="selectPlan(1)">
<view class="plan-item" v-if="info.month_price && info.month_price > 0" :class="{ active: selectedPlan === 1 }" @click="selectPlan(1)">
<view class="plan-name">月卡</view>
<view class="plan-price">
<text style="font-size: 24rpx; margin-right: 4rpx;"></text>
@ -124,7 +124,7 @@
<view class="plan-desc" v-if="info.m_price && info.m_price > 0">指导价{{ info.m_price }}/</view>
<view class="check-mark"></view>
</view>
<view class="plan-item" :class="{ active: selectedPlan === 2 }" @click="selectPlan(2)">
<view class="plan-item" v-if="info.seasonal_price && info.seasonal_price > 0" :class="{ active: selectedPlan === 2 }" @click="selectPlan(2)">
<view class="plan-name">季卡</view>
<view class="plan-price">
<text style="font-size: 24rpx; margin-right: 4rpx;"></text>
@ -135,13 +135,25 @@
</view>
</view>
<view class="buy-modal-tips" v-if="!isRenewal">
开通成功之后需要录入人脸信息
<view class="buy-modal-tips" v-if="!isRenewal" @click="openNoticeModal">
<text style="font-weight: bold; font-size: 32rpx; margin-right: 4rpx;">·</text>查看注意事项
</view>
<view class="buy-modal-btn" @click="confirmBuy">{{ isRenewal ? '立即续费' : '立即开通' }}</view>
</view>
</view>
<!-- 注意事项弹窗 -->
<view class="buy-modal-container" v-if="showNoticeModal">
<view class="buy-modal-mask" @click="closeNoticeModal"></view>
<view class="buy-modal-content" style="height: 500rpx; display: flex; flex-direction: column;">
<view class="buy-modal-title" style="margin-bottom: 30rpx; position: relative;">
注意事项
<view style="position: absolute; right: 0; top: 0; font-size: 40rpx; color: #999; padding: 0 10rpx;" @click="closeNoticeModal">×</view>
</view>
<view class="buy-modal-btn" @click="closeNoticeModal">我知道了</view>
</view>
</view>
<!-- 购买成功弹窗 -->
<view class="success-modal-container" v-if="showSuccessModal">
<view class="success-modal-mask" @click="closeSuccessModal"></view>
@ -167,8 +179,10 @@ export default {
navHeight: 44,
comboType: 'adult', // 套餐类型adult(成人卡) youth(青年卡) family(亲子卡)
showInfoModal: false, // 完善信息提示弹窗
infoModalDesc: '检测到您未填写相关信息,为不影响使用请尽快完善', // 完善信息提示文案
showBuyModal: false, // 会员购买弹窗
showSuccessModal: false, // 购买成功弹窗
showNoticeModal: false, // 注意事项弹窗
selectedPlan: 1, // 选择的套餐 1-月卡 2-季卡
info: {
order: {
@ -215,6 +229,7 @@ export default {
() => {
}
);
},
handleGetDetails() {
@ -224,6 +239,11 @@ export default {
{ id: self.id },
result => {
self.info = result.data;
if (self.info.month_price && self.info.month_price > 0) {
self.selectedPlan = 1;
} else if (self.info.seasonal_price && self.info.seasonal_price > 0) {
self.selectedPlan = 2;
}
console.log("🚀 ~ self.info:", self.info)
},
false,
@ -243,27 +263,37 @@ export default {
if (!self.result) {
// 没有填写过信息,弹出完善信息提示弹窗
self.infoModalDesc = '检测到您未填写相关信息,为不影响使用请尽快完善';
self.showInfoModal = true;
return false;
}
const birthDate = new Date(self.result.both);
const today = new Date();
let age = today.getFullYear() - birthDate.getFullYear();
const m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
const getAge = (dateStr) => {
if (!dateStr) return 0;
const birthDate = new Date(dateStr);
const today = new Date();
let age = today.getFullYear() - birthDate.getFullYear();
const m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
};
let isAgeInvalid = false;
if (self.result && self.result.group_id == 1) {
if (getAge(self.result.both) >= 18) isAgeInvalid = true;
} else if (self.result && self.result.group_id == 3) {
if (self.result.child && self.result.child[0] && getAge(self.result.child[0].both) >= 18) isAgeInvalid = true;
} else if (self.result && self.result.group_id == 4) {
if (self.result.child && self.result.child[0] && getAge(self.result.child[0].both) >= 18) isAgeInvalid = true;
if (self.result.child && self.result.child[1] && getAge(self.result.child[1].both) >= 18) isAgeInvalid = true;
}
if (self.result && self.result.group_id == 1 && age >= 18) {
// 没有填写过信息,弹出完善信息提示弹窗
self.showInfoModal = true;
return false;
}
if (self.result && (self.result.group_id == 3 || self.result.group_id == 4) && age >= 18) {
// 没有填写过信息,弹出完善信息提示弹窗
if (isAgeInvalid) {
// 没有填写过信息或者由于年龄不合规,弹出完善信息提示弹窗
self.showInfoModal = true;
self.infoModalDesc = '所填信息年龄已满18周岁需要重新填写信息';
return false;
}
@ -280,13 +310,15 @@ export default {
}, 100);
// 没有填写过信息,弹出完善信息提示弹窗
self.showInfoModal = true;
self.infoModalDesc = '检测到您未填写相关信息,为不影响使用请尽快完善';
return false;
}
if (self.result.status == 1) {
// 已经审核通过,弹出开通会员弹窗
self.showBuyModal = true;
return false;
return true;
}
},
closeInfoModal() {
@ -347,7 +379,7 @@ export default {
setTimeout(() => {
self.handleGetDetails();
self.showSuccessModal = true;
}, 1000);
}, 200);
},
fail: res => {
setTimeout(() => {
@ -383,6 +415,17 @@ export default {
});
},
openNoticeModal() {
uni.navigateTo({
url: '/bundle/combo/desc'
});
// this.showNoticeModal = true;
},
closeNoticeModal() {
this.showNoticeModal = false;
},
hanldeTakePhoto() {
if (this.result.status == 0) {
setTimeout(() => {
@ -782,7 +825,8 @@ page {
.plan-list {
display: flex;
justify-content: space-between;
justify-content: center;
gap: 4%;
margin-bottom: 40rpx;
.plan-item {