| | |
| | | import agreement from "@/pages/quanyi/components/agreement"; |
| | | |
| | | import textBox from "@/components/textBox/index.vue"; |
| | | |
| | | import provincesCity from '@/components/picker/provincesCity' |
| | | export default { |
| | | name: "add", |
| | | components: { |
| | | addAddress,agreement,textBox |
| | | addAddress,agreement,textBox,provincesCity |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | |
| | | computed: { |
| | | provincesCityStr() { |
| | | if(this.addressDetail.provinceName || this.addressDetail.cityName || this.addressDetail.areaName) { |
| | | return `${this.addressDetail.provinceName}${this.addressDetail.cityName}${this.addressDetail.areaName}` |
| | | } else { |
| | | return '' |
| | | } |
| | | }, |
| | | addressStr() { |
| | | if(this.addressDetail.provinceName || this.addressDetail.cityName || this.addressDetail.areaName) { |
| | | return `${this.addressDetail.provinceName}${this.addressDetail.cityName}${this.addressDetail.areaName}${this.addressDetail.detailAddr}` |
| | |
| | | customStyle() { |
| | | return { |
| | | height: "100rpx", |
| | | background: "#EE2626", |
| | | background: "#4766FE", |
| | | color: "#fff", |
| | | borderRadius: "50rpx", |
| | | fontSize: "34rpx", |
| | |
| | | |
| | | }, |
| | | mounted(){ |
| | | // this.$refs.codeUi.open() |
| | | this.windowHeight = uni.getSystemInfoSync().windowHeight; |
| | | this.interval = setInterval(() => { |
| | | let newHeight = window.innerHeight; |
| | | if (this.windowHeight !== newHeight) { |
| | | this.windowHeight = newHeight; |
| | | this.handleResize(); |
| | | } |
| | | }, 200); |
| | | // this.interval = setInterval(() => { |
| | | // let newHeight = window.innerHeight; |
| | | // if (this.windowHeight !== newHeight) { |
| | | // this.windowHeight = newHeight; |
| | | // this.handleResize(); |
| | | // } |
| | | // }, 200); |
| | | }, |
| | | methods: { |
| | | kk(){ |
| | | |
| | | const _this = this; |
| | | _this.getUserInfo() |
| | | // if(this.addressStr.length < 8){ |
| | | |
| | | if(this.addressStr.length < 8){ |
| | | // uni.showToast({ |
| | | // title: '请输入详细地址', |
| | | // icon: 'none' |
| | | // }); |
| | | // return |
| | | // } |
| | | |
| | | uni.showToast({ |
| | | title: '请输入详细地址', |
| | | icon: 'none' |
| | | }); |
| | | return |
| | | } |
| | | // 移到上面了,先保存地址再走下面的接口 |
| | | // uni.request({ |
| | | // url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('ygxLogin').customerId, |
| | | // method:'POST', |
| | | // }) |
| | | |
| | | |
| | | uni.request({ |
| | | url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('ygxLogin').customerId, |
| | | method:'POST', |
| | | }) |
| | | |
| | | uni.request({ |
| | | url: _this.$webHost+'/api/v2/pay/memberPurchaseBenefitsPays', |
| | | method:'POST', |
| | | data:{ |
| | | customerId: uni.getStorageSync('ygxLogin').customerId, |
| | | memberPeriodConfigId: uni.getStorageSync('memberPeriodConfigInfo').id |
| | | }, |
| | | success(){ |
| | | _this.getUserInfo() |
| | | } |
| | | }) |
| | | // uni.request({ |
| | | // url: _this.$webHost+'/api/v2/pay/memberPurchaseBenefitsPays', |
| | | // method:'POST', |
| | | // data:{ |
| | | // customerId: uni.getStorageSync('ygxLogin').customerId, |
| | | // memberPeriodConfigId: uni.getStorageSync('memberPeriodConfigInfo').id |
| | | // }, |
| | | // success(){ |
| | | // _this.getUserInfo() |
| | | // } |
| | | // }) |
| | | |
| | | }, |
| | | |
| | |
| | | }, |
| | | });*/ |
| | | }, |
| | | isValidIDCard(IDCard) { |
| | | // 正则:15位纯数字 或 18位(前17位数字 + 最后一位数字/X) |
| | | const idCardReg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/; |
| | | return idCardReg.test(IDCard) |
| | | }, |
| | | isValidChineseBankCard(cardNumber) { |
| | | const length = cardNumber.length; |
| | | return length === 16 || length === 19; |
| | | }, |
| | | submit() { |
| | | const _this = this; |
| | | if(!this.protocolChecked[0]){uni.showToast({title: '请阅读并同意相关协议', icon: 'none'});return;} |
| | |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } else { |
| | | if (!_this.isValidIDCard(_this.idCardNo)) { |
| | | uni.showToast({ |
| | | title: "请输入正确的身份证号", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | if(!_this.cardNumber){ |
| | | uni.showToast({ |
| | |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } else { |
| | | if (!_this.isValidChineseBankCard(_this.cardNumber)) { |
| | | uni.showToast({ |
| | | title: "请输入正确的银行卡号", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | if(!_this.cardPhone){ |
| | | uni.showToast({ |
| | |
| | | }); |
| | | return |
| | | } |
| | | if(!_this.addressStr){ |
| | | uni.showToast({ |
| | | title: "请填写详细地址", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | // 旧的地址判断 |
| | | // if(!_this.addressStr){ |
| | | // uni.showToast({ |
| | | // title: "请填写详细地址", |
| | | // icon: "none", |
| | | // }); |
| | | // return; |
| | | // } |
| | | // 新增地址移到外面判断 |
| | | if (!_this.addressDetail.consignee) { |
| | | uni.showToast({ |
| | | title: "请输入收件人姓名 ", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | if (!_this.addressDetail.contactPhone) { |
| | | uni.showToast({ |
| | | title: "请输入收件人联系电话", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(_this.addressDetail.contactPhone)) return uni.showToast({ |
| | | title: '请输入正确的收件人联系电话', |
| | | icon: 'none' |
| | | }); |
| | | if (!_this.addressDetail.provinceCode) { |
| | | uni.showToast({ |
| | | title: "请输入收件人所在地", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | if (!_this.addressDetail.detailAddr) { |
| | | uni.showToast({ |
| | | title: "请输入收件人详细地址", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | if (_this.addressDetail.detailAddr.length < 8) { |
| | | uni.showToast({ |
| | | title: "详细地址需大于等于8个字符", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if(_this.getPayBindCardInfo[0].bindStatus) { |
| | |
| | | _this.getPayBindCardInfo = res.data.data; |
| | | } |
| | | }) |
| | | |
| | | // 保存地址:地址保存成功后再走提交接口 |
| | | uni.request({ |
| | | url: _this.$webHost + "/api/v2/customer/appAddCstAddress", |
| | | method: "POST", |
| | | data: { |
| | | ..._this.addressDetail, |
| | | customerId: uni.getStorageSync('ygxLogin').customerId, |
| | | sourceId: uni.getStorageSync('ygxLogin').appId |
| | | }, |
| | | success: function (res) { |
| | | if(res.data.code==200){ |
| | | uni.request({ |
| | | url: _this.$webHost+'/api/v2/pay/verifySMSCodes', |
| | | method:'POST', |
| | | data:{ |
| | | ..._this.bindCardId, |
| | | |
| | | "customerId": uni.getStorageSync('ygxLogin').customerId, |
| | | "cardPhone" : _this.cardPhone, //手机号 |
| | | |
| | | "cardNumber": _this.cardNumber, //卡号 |
| | | |
| | | "cardName" : _this.cardName, // 名字 |
| | | "cardIdNo" : _this.cardIdNo, |
| | | "bankName" : _this.bankName, |
| | | "cardNo" : _this.cardNumber, |
| | | |
| | | "verificationCode": _this.verificationCode, |
| | | }, |
| | | success(e){ |
| | | if(e.data.code!==200){ |
| | | uni.showToast({ |
| | | title: e.data.data, |
| | | icon: 'none' |
| | | }); |
| | | return; |
| | | } |
| | | uni.request({ |
| | | url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`, |
| | | method:'get', |
| | | success:function(res){ |
| | | const ls = res.data.data; |
| | | _this.getPayBindCardInfo = res.data.data; |
| | | if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;} |
| | | |
| | | |
| | | |
| | | if(ls.length && !ls[1].bindStatus){ |
| | | _this.$refs.codeUi.open() |
| | | _this.isCounting = false; |
| | | _this.countText = ''; |
| | | return; |
| | | } |
| | | if(ls.length && !ls[2].bindStatus){ |
| | | _this.$refs.setUi.open(); |
| | | _this.isCounting = false; |
| | | _this.countText = ''; |
| | | return; |
| | | } |
| | | if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;} |
| | | |
| | | |
| | | |
| | | _this.kk() |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.data.msg, |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | uni.request({ |
| | | url: _this.$webHost+'/api/v2/pay/verifySMSCodes', |
| | | method:'POST', |
| | | data:{ |
| | | ..._this.bindCardId, |
| | | // uni.request({ |
| | | // url: _this.$webHost+'/api/v2/pay/verifySMSCodes', |
| | | // method:'POST', |
| | | // data:{ |
| | | // ..._this.bindCardId, |
| | | |
| | | "customerId": uni.getStorageSync('ygxLogin').customerId, |
| | | "cardPhone" : _this.cardPhone, //手机号 |
| | | // "customerId": uni.getStorageSync('ygxLogin').customerId, |
| | | // "cardPhone" : _this.cardPhone, //手机号 |
| | | |
| | | "cardNumber": _this.cardNumber, //卡号 |
| | | // "cardNumber": _this.cardNumber, //卡号 |
| | | |
| | | "cardName" : _this.cardName, // 名字 |
| | | "cardIdNo" : _this.cardIdNo, |
| | | "bankName" : _this.bankName, |
| | | "cardNo" : _this.cardNumber, |
| | | // "cardName" : _this.cardName, // 名字 |
| | | // "cardIdNo" : _this.cardIdNo, |
| | | // "bankName" : _this.bankName, |
| | | // "cardNo" : _this.cardNumber, |
| | | |
| | | "verificationCode": _this.verificationCode, |
| | | }, |
| | | success(e){ |
| | | if(e.data.code!==200){ |
| | | // _this.$util.Tips({ |
| | | // title: e.data.data |
| | | // }); |
| | | uni.showToast({ |
| | | title: e.data.data, |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | uni.request({ |
| | | url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`, |
| | | method:'get', |
| | | success:function(res){ |
| | | const ls = res.data.data; |
| | | _this.getPayBindCardInfo = res.data.data; |
| | | if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;} |
| | | // "verificationCode": _this.verificationCode, |
| | | // }, |
| | | // success(e){ |
| | | // if(e.data.code!==200){ |
| | | // // _this.$util.Tips({ |
| | | // // title: e.data.data |
| | | // // }); |
| | | // uni.showToast({ |
| | | // title: e.data.data, |
| | | // icon: 'none' |
| | | // }); |
| | | // return; |
| | | // } |
| | | // uni.request({ |
| | | // url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`, |
| | | // method:'get', |
| | | // success:function(res){ |
| | | // const ls = res.data.data; |
| | | // _this.getPayBindCardInfo = res.data.data; |
| | | // if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;} |
| | | |
| | | |
| | | |
| | | if(ls.length && !ls[1].bindStatus){ |
| | | _this.$refs.codeUi.open() |
| | | _this.isCounting = false; |
| | | _this.countText = ''; |
| | | return; |
| | | } |
| | | if(ls.length && !ls[2].bindStatus){ |
| | | _this.$refs.setUi.open(); |
| | | _this.isCounting = false; |
| | | _this.countText = ''; |
| | | return; |
| | | } |
| | | if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;} |
| | | // if(ls.length && !ls[1].bindStatus){ |
| | | // _this.$refs.codeUi.open() |
| | | // _this.isCounting = false; |
| | | // _this.countText = ''; |
| | | // return; |
| | | // } |
| | | // if(ls.length && !ls[2].bindStatus){ |
| | | // _this.$refs.setUi.open(); |
| | | // _this.isCounting = false; |
| | | // _this.countText = ''; |
| | | // return; |
| | | // } |
| | | // if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;} |
| | | |
| | | |
| | | |
| | | _this.kk() |
| | | // _this.kk() |
| | | |
| | | |
| | | |
| | | } |
| | | // } |
| | | |
| | | }) |
| | | } |
| | | }) |
| | | // }) |
| | | // } |
| | | // }) |
| | | |
| | | |
| | | }, |
| | |
| | | }); |
| | | |
| | | |
| | | that.isCounting = true; |
| | | // that.isCounting = true; |
| | | |
| | | |
| | | |
| | |
| | | "bankId": "1", |
| | | |
| | | }, |
| | | success(){ |
| | | success(response){ |
| | | if(response.data.code != 200) { |
| | | uni.showToast({ |
| | | title: response.data.data, |
| | | icon: 'none' |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | uni.request({ |
| | | url: that.$webHost+'/api/v2/pay/bindCardToCodes', |
| | | method:'POST', |
| | |
| | | }) |
| | | return; |
| | | } |
| | | |
| | | that.isCounting = true; |
| | | if(res.data.code === 200){ |
| | | that.bindCardId = res.data.data; |
| | | } else { |
| | |
| | | url: '/pages/index/index' |
| | | }); |
| | | }, |
| | | |
| | | openProvincesCity() { |
| | | let defaultData = [] |
| | | if(this.addressDetail.provinceCode && this.addressDetail.cityCode) { |
| | | defaultData = [this.addressDetail.provinceCode, this.addressDetail.cityCode] |
| | | } |
| | | |
| | | this.$refs.provincesCity.open(defaultData) |
| | | }, |
| | | provincesCityChange(e) { |
| | | if(e.value.length > 0) { |
| | | this.addressDetail.provinceCode = e.value[0].code |
| | | this.addressDetail.provinceName = e.value[0].title |
| | | |
| | | this.addressDetail.cityCode = e.value[1].code |
| | | this.addressDetail.cityName = e.value[1].title |
| | | |
| | | if(e.value[2]) { |
| | | this.addressDetail.areaCode = e.value[2].code |
| | | this.addressDetail.areaName = e.value[2].title |
| | | } else { |
| | | this.addressDetail.areaCode = "" |
| | | this.addressDetail.areaName = "" |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | onUnload() { |
| | | clearInterval(this.interval); |
| | |
| | | <view > |
| | | <view class="top">为向您提供更好的安全保障,您需要提供银行卡号以完成信息核验</view> |
| | | </view> |
| | | <view style="background: white;height: 20rpx;"></view> |
| | | <view style="height: 20rpx;"></view> |
| | | |
| | | <view class="form"> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>真实姓名</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="8" v-model="cardName" class="inp" placeholder="请填写真实姓名" /> |
| | | </view> |
| | | <view class="form-item-title" style="margin: 40rpx;font-size: 32rpx;color: #333333;font-weight: 600;">请输入您的真实身份</view> |
| | | <view class="form-item-ct"> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>持卡人姓名</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="8" v-model="cardName" class="inp" placeholder="请输入持卡人姓名" /> |
| | | </view> |
| | | |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>身份证号</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="18" v-model="idCardNo" class="inp" placeholder="请填写身份证号" /> |
| | | </view> |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>身份证号</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="18" v-model="idCardNo" class="inp" placeholder="请输入身份证号码" /> |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | <!-- <view style="background: #F7F7F7;height: 20rpx;"></view>--> |
| | | <view class="form-item-title" style="margin: 40rpx;font-size: 32rpx;color: #333333;font-weight: 600;">请输入您的银行卡信息</view> |
| | | <view class="form-item-ct"> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>银行卡号</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input type="number" maxlength="30" @blur="validateAndCacheCardInfo" v-model="cardNumber" class="inp" placeholder="请输入银行卡号" /> |
| | | <image @click="cardNumber=''" v-show="!bindStatus && cardNumber" :src="offIcon" style="width: 40rpx;height: 40rpx;position: absolute;right: 0rpx;top: 30rpx;"></image> |
| | | </view> |
| | | |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>银行卡号</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="30" @blur="validateAndCacheCardInfo" v-model="cardNumber" class="inp" placeholder="请输入银行卡号" /> |
| | | <image @click="cardNumber=''" v-show="!bindStatus && cardNumber" :src="offIcon" style="width: 40rpx;height: 40rpx;position: absolute;right: 0rpx;top: 30rpx;"></image> |
| | | </view> |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>银行卡名称</text> |
| | | </view> |
| | | <view class="inp_box" style="z-index: 1" > |
| | | <view style="width: 606rpx;height: 100rpx;border-radius: 30rpx;padding-left: 20rpx;line-height: 100rpx;background-color: #F7F7F7;" :class="bankName?'':'a3'">{{bankName?bankName:'请输入银行卡名称'}}</view> |
| | | |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>所属银行</text> |
| | | </view> |
| | | <view class="inp_box" style="z-index: 1" > |
| | | <view style="width: 670rpx;height: 100rpx;border: 1px solid #EEEEEE;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;" :class="bankName?'':'a3'">{{bankName?bankName:'请输入所属银行'}}</view> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <view>预留手机号</view> |
| | | </view> |
| | | <view class="inp_box" style="position: relative;"> |
| | | <input maxlength="11" v-model="cardPhone" class="inp" placeholder="请输入银行预留手机号" /> |
| | | <!-- <view class="code" style="position: absolute;top: 30rpx;right: 0;" @click="getSmsCode">--> |
| | | <!-- <text :class="isCounting?'code_k':'code_a'">{{ isCounting ? countText : '获取验证码' }}</text>--> |
| | | <!-- </view>--> |
| | | </view> |
| | | |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <view>银行预留手机号</view> |
| | | </view> |
| | | <view class="inp_box" style="position: relative;"> |
| | | <input maxlength="11" v-model="cardPhone" class="inp" placeholder="请填写手机号" /> |
| | | <!-- <view class="code" style="position: absolute;top: 30rpx;right: 0;" @click="getSmsCode">--> |
| | | <!-- <text :class="isCounting?'code_k':'code_a'">{{ isCounting ? countText : '获取验证码' }}</text>--> |
| | | <!-- </view>--> |
| | | </view> |
| | | </view> |
| | | <view class="clo" v-if="getPayBindCardInfo.length && !getPayBindCardInfo[0].bindStatus"> |
| | | <view class="label"> |
| | | <text>短信验证码</text> |
| | | </view> |
| | | <view class="inp_box" style="position: relative;"> |
| | | <input maxlength="6" v-model="verificationCode" class="inp" type="number" placeholder="请输入手机短信验证码" /> |
| | | |
| | | </view> |
| | | <view class="clo" v-if="getPayBindCardInfo.length && !getPayBindCardInfo[0].bindStatus"> |
| | | <view class="label"> |
| | | <text>验证码</text> |
| | | </view> |
| | | <view class="inp_box" style="position: relative;"> |
| | | <input maxlength="6" v-model="verificationCode" class="inp" type="number" placeholder="请填写验证码" /> |
| | | <view class="code" style="position: absolute;top: 30rpx;right: 0;" @click="getSmsCode"> |
| | | <text :class="isCounting?'code_k':'code_a'">{{ isCounting ? countText : '获取验证码' }}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="code" style="position: absolute;top: 30rpx;right: 0;" @click="getSmsCode"> |
| | | <text :class="isCounting?'code_k':'code_a'">{{ isCounting ? countText : '获取验证码' }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | <view class="clo" @click="$refs.address.open()"> |
| | | <view class="label" > |
| | | <text>收货地址</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <view style="font-size: 28rpx;width: 670rpx;height: 100rpx;border: 1px solid #EEEEEE;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;" v-if="addressStr">{{addressStr}}</view> |
| | | <view style="font-size: 28rpx;color: #BDBDBE;width: 670rpx;height: 100rpx;border: 1px solid #EEEEEE;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;" v-else>请填写收货地址</view> |
| | | </view> |
| | | |
| | | </view> |
| | | <view class="form-item-title" style="margin: 40rpx;font-size: 32rpx;color: #333333;font-weight: 600;">请输入您的收货地址</view> |
| | | <view class="form-item-ct"> |
| | | <!-- 旧的地址弹窗 --> |
| | | <!-- <view class="clo" @click="$refs.address.open()"> |
| | | <view class="label" > |
| | | <text>收货地址</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <view style="font-size: 28rpx;width: 606rpx;height: 100rpx;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;background-color: #F7F7F7;" v-if="addressStr">{{addressStr}}</view> |
| | | <view style="font-size: 28rpx;color: #BDBDBE;width: 606rpx;height: 100rpx;border-radius: 20rpx;padding-left: 20rpx;line-height: 100rpx;background-color: #F7F7F7;" v-else>请输入收货地址</view> |
| | | </view> |
| | | </view> --> |
| | | <!-- 新增的地址放外面了 --> |
| | | <uv-form> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>收件人姓名</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="20" v-model="addressDetail.consignee" class="inp" placeholder="请输入收件人姓名" /> |
| | | </view> |
| | | </view> |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>收件人联系电话</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="11" v-model="addressDetail.contactPhone" class="inp" placeholder="请输入收件人联系电话" /> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="clo" @click="openProvincesCity()"> |
| | | <view class="label"> |
| | | <text>收件人所在地</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input disabled="true" v-model="provincesCityStr" class="inp" placeholder="请输入收件人所在地" /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <uv-form-item |
| | | @click="openProvincesCity()" |
| | | > |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>收件人所在地</text> |
| | | </view> |
| | | <view class="inp_box" style="position: relative;"> |
| | | <uv-input |
| | | class="inp" |
| | | style="width: 610rpx;" |
| | | :adjustPosition="true" |
| | | :disabled="true" |
| | | disabledColor="none" |
| | | inputAlign="left" |
| | | v-model="provincesCityStr" |
| | | border="none" |
| | | placeholder="请输入收件人所在地" |
| | | ></uv-input> |
| | | <uv-icon name="arrow-down" style="position: absolute;top: 40rpx;right: 20rpx;"></uv-icon> |
| | | </view> |
| | | </view> |
| | | </uv-form-item> |
| | | |
| | | |
| | | <view class="clo"> |
| | | <view class="label"> |
| | | <text>收件人详细地址</text> |
| | | </view> |
| | | <view class="inp_box"> |
| | | <input maxlength="30" v-model="addressDetail.detailAddr" class="inp" placeholder="请输入收件人详细地址" /> |
| | | </view> |
| | | </view> |
| | | </uv-form> |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | |
| | | </view> |
| | | </view>--> |
| | | |
| | | <view style=" padding: 0 30rpx;margin-top: 30rpx;"> |
| | | <view style="display: flex;"> |
| | | <uv-checkbox-group |
| | | activeColor="red" |
| | | shape="circle" |
| | | v-model="protocolChecked"> |
| | | <uv-checkbox size="14" :name="1" > |
| | | |
| | | </uv-checkbox> |
| | | <text class="protocol-text" > |
| | | 我已阅读并同意 |
| | | <text style="font-size: 24rpx;" class="link-text" @click="$refs.agreement.open()">《相关协议》</text> |
| | | </text> |
| | | </uv-checkbox-group> |
| | | |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | <view class="sub" v-if="show"> |
| | | <button :class="protocolChecked[0]?'':'nots'" class="sub_btn" @click="submit">提交</button> |
| | | </view> |
| | | <view style=" padding: 0 30rpx;margin-top: 30rpx;"> |
| | | <view style="display: flex;font-size: 28rpx;align-items: center;"> |
| | | <uv-checkbox-group |
| | | style="align-items: center;" |
| | | activeColor="#4766FE" |
| | | shape="circle" |
| | | v-model="protocolChecked"> |
| | | <uv-checkbox size="22" :name="1" iconSize="20"> |
| | | 我已阅读并同意 |
| | | </uv-checkbox> |
| | | <text class="protocol-text" > |
| | | <text style="font-size: 28rpx;" class="link-text" @click="$refs.agreement.open()">《相关协议》</text> |
| | | </text> |
| | | </uv-checkbox-group> |
| | | |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | <agreement ref="agreement"></agreement> |
| | | <uni-popup ref="popup" type="bottom" > |
| | |
| | | |
| | | <uv-popup mode="center" round="20" ref="codeUi" :closeOnClickOverlay="false" > |
| | | |
| | | <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;"> |
| | | <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;position: relative;"> |
| | | <image |
| | | @click="$refs.codeUi.close()" |
| | | src="@/static/img/off.png" |
| | | style=" |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | position: absolute; |
| | | left: 320rpx; |
| | | bottom: -70rpx; |
| | | z-index: 6; |
| | | " |
| | | ></image> |
| | | <view class="head"> |
| | | <view |
| | | style=" |
| | |
| | | font-weight: bold; |
| | | font-size: 36rpx; |
| | | position: relative; |
| | | height: 50rpx; |
| | | height: 30rpx; |
| | | " |
| | | > |
| | | |
| | | <image |
| | | @click="$refs.codeUi.close()" |
| | | src="@/static/img/off.png" |
| | | style=" |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | position: absolute; |
| | | right: 0; |
| | | top: -2rpx; |
| | | " |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | <view style=" |
| | |
| | | font-size: 36rpx; |
| | | position: relative; |
| | | margin-bottom: 12rpx; |
| | | text-align: center; |
| | | text-align: left; |
| | | |
| | | ">短信确认</view> |
| | | <view style="font-size: 28rpx;color: #252938;text-align: center;">为确保安全到账,需再次对您的收款账户进行短信验证</view> |
| | | <view style="font-size: 28rpx;color: #252938;text-align: left;">为确保安全到账,需再次对您的收款账户进行短信验证</view> |
| | | |
| | | <view class="content"> |
| | | <uv-form |
| | |
| | | class="item" |
| | | label="" |
| | | prop="repayTermStr" |
| | | |
| | | style="position: relative;" |
| | | > |
| | | <uv-input |
| | | :adjustPosition="true" |
| | |
| | | |
| | | border="none" |
| | | placeholder="请输入手机号" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 50rpx;" |
| | | ></uv-input> |
| | | <image src="/static/img/phoneIcon.png" style="width: 44rpx;height: 44rpx;position: absolute;left: 10rpx;"></image> |
| | | </uv-form-item> |
| | | |
| | | <uv-form-item |
| | | class="item" |
| | | label="" |
| | | prop="needVerify" |
| | | |
| | | style="position: relative;" |
| | | > |
| | | <uv-input |
| | | :adjustPosition="true" |
| | |
| | | v-model="verificationCodeT" |
| | | border="none" |
| | | placeholder="请输入验证码" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;" |
| | | type="number" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 50rpx;" |
| | | > |
| | | <template #suffix> |
| | | <text |
| | | class="code" |
| | | style="color: red;" |
| | | style="color: #4766FE;" |
| | | :class="isCounting_A ? 'ks' : ''" |
| | | @click="getCode" |
| | | >{{ isCounting_A ? countText_A : "获取验证码" }}</text |
| | | > |
| | | </template> |
| | | </uv-input> |
| | | <image src="/static/img/codeIcon.png" style="width: 44rpx;height: 44rpx;position: absolute;left: 10rpx;"></image> |
| | | </uv-form-item> |
| | | <uv-form-item > |
| | | <view class="but" style="width: 100%;"> |
| | |
| | | </uv-popup> |
| | | <uv-popup mode="center" round="20" ref="setUi" :closeOnClickOverlay="false" > |
| | | |
| | | <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;"> |
| | | <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;position: relative;"> |
| | | <image |
| | | @click="$refs.setUi.close()" |
| | | src="@/static/img/off.png" |
| | | style=" |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | position: absolute; |
| | | left: 320rpx; |
| | | bottom: -70rpx; |
| | | z-index: 6; |
| | | " |
| | | ></image> |
| | | <view class="head"> |
| | | <view |
| | | style=" |
| | |
| | | font-weight: bold; |
| | | font-size: 36rpx; |
| | | position: relative; |
| | | height: 50rpx; |
| | | height: 30rpx; |
| | | " |
| | | > |
| | | |
| | | <image |
| | | @click="$refs.setUi.close()" |
| | | src="@/static/img/off.png" |
| | | style=" |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | position: absolute; |
| | | right: 0; |
| | | top: -2rpx; |
| | | " |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | <view style=" |
| | |
| | | font-size: 36rpx; |
| | | position: relative; |
| | | margin-bottom: 12rpx; |
| | | text-align: center; |
| | | text-align: left; |
| | | |
| | | ">本人提交确认</view> |
| | | <view style="font-size: 28rpx;color: #252938;text-align: center;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view> |
| | | <view style="font-size: 28rpx;color: #252938;text-align: left;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view> |
| | | |
| | | <view class="content"> |
| | | <uv-form |
| | |
| | | class="item" |
| | | label="" |
| | | prop="repayTermStr" |
| | | |
| | | style="position: relative;" |
| | | > |
| | | <uv-input |
| | | :adjustPosition="true" |
| | |
| | | |
| | | border="none" |
| | | placeholder="请输入手机号" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 50rpx;" |
| | | ></uv-input> |
| | | <image src="/static/img/phoneIcon.png" style="width: 44rpx;height: 44rpx;position: absolute;left: 10rpx;"></image> |
| | | </uv-form-item> |
| | | |
| | | <uv-form-item |
| | | class="item" |
| | | label="" |
| | | prop="needVerify" |
| | | |
| | | style="position: relative;" |
| | | > |
| | | <uv-input |
| | | :adjustPosition="true" |
| | |
| | | v-model="verificationCodeS" |
| | | border="none" |
| | | placeholder="请输入验证码" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;" |
| | | type="number" |
| | | style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 50rpx;" |
| | | > |
| | | <template #suffix> |
| | | <text |
| | | class="code" |
| | | style="color: red;" |
| | | style="color: #4766FE;" |
| | | :class="isCounting_B ? 'ks' : ''" |
| | | @click="getCode_san" |
| | | >{{ isCounting_B ? countText_B : "获取验证码" }}</text |
| | | > |
| | | </template> |
| | | </uv-input> |
| | | <image src="/static/img/codeIcon.png" style="width: 44rpx;height: 44rpx;position: absolute;left: 10rpx;"></image> |
| | | </uv-form-item> |
| | | <uv-form-item > |
| | | <view class="but" style="width: 100%;"> |
| | |
| | | <uv-popup mode="bottom" round="20" ref="address" > |
| | | <addAddress :addressDetail="addressDetail" @off="$refs.address.close()" @submit="e => addressDetail = e"></addAddress> |
| | | </uv-popup> |
| | | |
| | | <provincesCity ref="provincesCity" @confirm="provincesCityChange" /> |
| | | |
| | | <!-- <text-box v-if="showTextBox" ref="textBox" :getPlatformProtocolNewList="getPlatformProtocolNewList"></text-box> --> |
| | | <text-box v-if="showTextBox" ref="textBox" :getPlatformProtocolNewList="getPlatformProtocolNewList"></text-box> |
| | | </view> |
| | | </template> |
| | | |
| | | <style scoped lang="scss"> |
| | | ::v-deep .uv-popup .uv-popup__content { |
| | | overflow: visible; |
| | | } |
| | | .a3{ |
| | | color: #BDBDBE; |
| | | font-size: 30rpx; |
| | |
| | | |
| | | } |
| | | .form{ |
| | | background: #FFFFFF; |
| | | .form-item-ct{ |
| | | margin: 0 40rpx; |
| | | background-color: #ffffff; |
| | | padding: 30rpx; |
| | | border-radius: 50rpx; |
| | | } |
| | | .form-item-title{ |
| | | border-left: 8rpx solid #4766FE; /* 定义左边框 */ |
| | | padding-left: 20rpx; |
| | | } |
| | | .clo{ |
| | | //display: flex; |
| | | //padding: 30rpx 0rpx; |
| | | padding-bottom: 30rpx; |
| | | margin: 0 40rpx; |
| | | // margin: 0 40rpx; |
| | | //border-bottom: 1rpx solid #E7E9ED; |
| | | background: #FFFFFF; |
| | | .label{ |
| | |
| | | color: #999999; |
| | | font-size: 30rpx; |
| | | } |
| | | width: 670rpx; |
| | | width: 596rpx; |
| | | height: 100rpx; |
| | | border: 1px solid #EEEEEE; |
| | | border-radius: 20rpx; |
| | | padding-left: 20rpx; |
| | | // border: 1px solid #EEEEEE; |
| | | background-color: #F7F7F7; |
| | | border-radius: 30rpx; |
| | | padding-left: 20rpx !important; |
| | | font-weight: 400; |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | |
| | | |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #EE2626; |
| | | color: #4766FE; |
| | | padding: 16rpx 20rpx; |
| | | //border: 1rpx solid #EE2626; |
| | | //border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | |
| | | padding: 0 30rpx; |
| | | margin-top: 40rpx; |
| | | .sub_btn{ |
| | | background: #EE2626; |
| | | background: #4766FE; |
| | | border-radius: 50rpx 50rpx 50rpx 50rpx; |
| | | padding: 10rpx; |
| | | |
| | |
| | | color: #BDBDBE; |
| | | } |
| | | .protocol-text { |
| | | width: calc( 100% - 44rpx); |
| | | // width: calc( 100% - 44rpx); |
| | | font-size: 24rpx; |
| | | color: #8B8D96; |
| | | line-height: 28rpx; |