From f67e33dd60d08237e9c36ceec092c50792387d4a Mon Sep 17 00:00:00 2001
From: lin <1005713861@163.com>
Date: Tue, 26 May 2026 17:43:43 +0800
Subject: [PATCH] feat:星享购 绑卡+权收
---
pages/quanyi/add.vue | 740 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 511 insertions(+), 229 deletions(-)
diff --git a/pages/quanyi/add.vue b/pages/quanyi/add.vue
index ce66b23..3413834 100644
--- a/pages/quanyi/add.vue
+++ b/pages/quanyi/add.vue
@@ -6,10 +6,12 @@
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 {
@@ -69,6 +71,13 @@
},
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}`
@@ -79,7 +88,7 @@
customStyle() {
return {
height: "100rpx",
- background: "#EE2626",
+ background: "#4766FE",
color: "#fff",
borderRadius: "50rpx",
fontSize: "34rpx",
@@ -171,46 +180,47 @@
},
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()
+ // }
+ // })
},
@@ -286,6 +296,15 @@
},
});*/
},
+ 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;}
@@ -302,6 +321,14 @@
icon: "none",
});
return;
+ } else {
+ if (!_this.isValidIDCard(_this.idCardNo)) {
+ uni.showToast({
+ title: "请输入正确的身份证号",
+ icon: "none",
+ });
+ return;
+ }
}
if(!_this.cardNumber){
uni.showToast({
@@ -309,6 +336,14 @@
icon: "none",
});
return;
+ } else {
+ if (!_this.isValidChineseBankCard(_this.cardNumber)) {
+ uni.showToast({
+ title: "请输入正确的银行卡号",
+ icon: "none",
+ });
+ return;
+ }
}
if(!_this.cardPhone){
uni.showToast({
@@ -325,13 +360,54 @@
});
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) {
@@ -357,72 +433,153 @@
_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'
- });
- 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;}
+ // "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()
- }
+ // }
- })
- }
- })
+ // })
+ // }
+ // })
},
@@ -473,7 +630,15 @@
"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',
@@ -853,6 +1018,33 @@
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);
@@ -865,86 +1057,154 @@
<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>
@@ -959,27 +1219,28 @@
</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" >
@@ -999,7 +1260,19 @@
<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="
@@ -1007,21 +1280,9 @@
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="
@@ -1029,10 +1290,10 @@
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
@@ -1047,7 +1308,7 @@
class="item"
label=""
prop="repayTermStr"
-
+ style="position: relative;"
>
<uv-input
:adjustPosition="true"
@@ -1059,15 +1320,16 @@
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"
@@ -1075,18 +1337,20 @@
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%;">
@@ -1104,7 +1368,19 @@
</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="
@@ -1112,21 +1388,9 @@
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="
@@ -1134,10 +1398,10 @@
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
@@ -1152,7 +1416,7 @@
class="item"
label=""
prop="repayTermStr"
-
+ style="position: relative;"
>
<uv-input
:adjustPosition="true"
@@ -1164,15 +1428,16 @@
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"
@@ -1180,18 +1445,20 @@
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%;">
@@ -1211,12 +1478,17 @@
<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;
@@ -1230,12 +1502,21 @@
}
.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{
@@ -1256,11 +1537,12 @@
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;
@@ -1273,7 +1555,7 @@
font-weight: 400;
font-size: 28rpx;
- color: #EE2626;
+ color: #4766FE;
padding: 16rpx 20rpx;
//border: 1rpx solid #EE2626;
//border-radius: 8rpx 8rpx 8rpx 8rpx;
@@ -1303,7 +1585,7 @@
padding: 0 30rpx;
margin-top: 40rpx;
.sub_btn{
- background: #EE2626;
+ background: #4766FE;
border-radius: 50rpx 50rpx 50rpx 50rpx;
padding: 10rpx;
@@ -1326,7 +1608,7 @@
color: #BDBDBE;
}
.protocol-text {
- width: calc( 100% - 44rpx);
+ // width: calc( 100% - 44rpx);
font-size: 24rpx;
color: #8B8D96;
line-height: 28rpx;
--
Gitblit v1.9.3