lin
2026-04-24 867dfffde10a7388acaeb92767eecd92965ff2fa
pages/quanyi/add.vue
@@ -1,7 +1,7 @@
<script>
import offIcon from '@/static/imgs/icons/off.png'
import leftIcon from  '@/static/imgs/icons/left.png'
import kkIcon from  '@/static/imgs/icons/kk.png'
import offIcon from '@/static/img/off.png'
import leftIcon from  '@/static/img/left.png'
import kkIcon from  '@/static/img/kk.png'
import addAddress from "@/pages/quanyi/components/addAddress";
import agreement from "@/pages/quanyi/components/agreement";
@@ -17,7 +17,7 @@
      showTextBox: false,
      loginAct: false,
      $webHost:'https://rbb98765.zrgy-bbg.com',
      protocolChecked: [1],
      protocolChecked: [0],
      offIcon,leftIcon,kkIcon,
      callbackData:{},
      addressDetail: {
@@ -79,9 +79,9 @@
    customStyle() {
      return {
        height: "100rpx",
        background: "#FF1472",
        background: "#EE2626",
        color: "#fff",
        borderRadius: "24rpx",
        borderRadius: "50rpx",
        fontSize: "34rpx",
      };
    },
@@ -100,8 +100,8 @@
    uni.request({
      url: _this.$webHost+'/api/v2/customer/getCstAddress',
      data:{
        customerId: uni.getStorageSync('qxgLogin').customerId,
        sourceId: uni.getStorageSync('qxgLogin').appId
        customerId: uni.getStorageSync('ygxLogin').customerId,
        sourceId: uni.getStorageSync('ygxLogin').appId
      },
      success: function (res) {
        _this.addressDetail = res.data.data;
@@ -110,7 +110,7 @@
    uni.request({
      url: _this.$webHost+'/api/v2/xinheyuan/bank/list/fake/'+uni.getStorageSync('qxgLogin').customerId,
      url: _this.$webHost+'/api/v2/xinheyuan/bank/list/fake/'+uni.getStorageSync('ygxLogin').customerId,
      success(res){
        console.log(res.data.data);
        this.bankList = res.data.data;
@@ -121,7 +121,7 @@
    uni.setStorageSync('windowHeight',uni.getSystemInfoSync().windowHeight)
    uni.request({
      url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
      url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
      method:'get',
      success:function(res){
        const dy = res.data.data[0];
@@ -139,23 +139,46 @@
      }
    })
    uni.request( {
      url: _this.$webHost + "/api/v2/renpin/H5/getPlatformProtocolNew",
      data: {
        customerId: uni.getStorageSync('qxgLogin').customerId,
        appId: uni.getStorageSync('qxgLogin').appId
        customerId: uni.getStorageSync('ygxLogin').customerId,
        appId: uni.getStorageSync('ygxLogin').appId
      },
      method: 'GET',
      success(res) {
        uni.showLoading({})
        _this.getPlatformProtocolNewList = res.data.data;
        _this.showTextBox = true;
        _this.$nextTick(() => {
          _this.$refs.textBox && _this.$refs.textBox.open()
          if(_this.$refs.textBox){
            uni.hideLoading();
            _this.$refs.textBox.open()
          } else {
            setTimeout(() => {
              console.log('setTimeout');
              uni.hideLoading();
              _this.$refs.textBox && _this.$refs.textBox.open()
            }, 400);
          }
        })
      }
    })
  },
  mounted(){
    this.windowHeight = uni.getSystemInfoSync().windowHeight;
    this.interval = setInterval(() => {
      let newHeight = window.innerHeight;
      if (this.windowHeight !== newHeight) {
        this.windowHeight = newHeight;
        this.handleResize();
      }
    }, 200);
  },
  methods: {
    kk(){
@@ -163,6 +186,7 @@
      const _this = this;
      if(this.addressStr.length < 8){
        uni.showToast({
          title: '请输入详细地址',
          icon: 'none'
@@ -172,7 +196,7 @@
      uni.request({
        url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('qxgLogin').customerId,
        url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('ygxLogin').customerId,
        method:'POST',
      })
@@ -180,7 +204,7 @@
        url: _this.$webHost+'/api/v2/pay/memberPurchaseBenefitsPays',
        method:'POST',
        data:{
          customerId: uni.getStorageSync('qxgLogin').customerId,
          customerId: uni.getStorageSync('ygxLogin').customerId,
          memberPeriodConfigId: uni.getStorageSync('memberPeriodConfigInfo').id
        },
        success(){
@@ -199,13 +223,12 @@
      this.$refs.popup.close()
    },
    open(){
      // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center']
      this.$refs.popup.open()
    },
    validateAndCacheCardInfo() {
      const _this = this;
      if(!_this.cardNumber.length || _this.cardNumber.length<14 ){
        return
      }
@@ -228,27 +251,61 @@
        }
      })
     /* uni.request({
        url: "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardBinCheck=true", // 阿里接口
        data: {
          cardNo: _this.cardNumber,
        },
        success: function (res) {
          console.log(res.data.validated);
          if (res.data.validated) {
            for (let i of uni.getStorageSync("bankList")) {
              console.log(i);
              if (res.data.bank === i.bankCode) {
                _this.bankCode = i.bankCode;
                _this.bankName = i.bankName;
                break;
              }
            }
            if(!_this.bankName){
              uni.showToast({
                title: "暂不支持该银行或银行卡号有误",
                icon: "none",
              });
            }
          }
          else {
            uni.showToast({
              title: "暂不支持该银行或银行卡号有误",
              icon: "none",
            });
          }
        },
      });*/
    },
    submit() {
      const _this = this;
      if(!this.loginAct){uni.showToast({title: '请阅读并同意相关协议', icon: 'none'});return;}
      if(!this.protocolChecked[0]){uni.showToast({title: '请阅读并同意相关协议', icon: 'none'});return;}
      if(!_this.cardName){
        uni.showToast({
          title: "请填写您的姓名",
          title: "请填写真实姓名",
          icon: "none",
        });
        return;
      }
      if(!_this.idCardNo){
        uni.showToast({
          title: "请填写您的身份证号",
          title: "请输入身份证号",
          icon: "none",
        });
        return;
      }
      if(!_this.cardNumber){
        uni.showToast({
          title: "请填写银行卡号",
          title: "请输入银行卡号",
          icon: "none",
        });
        return;
@@ -268,10 +325,9 @@
        });
        return
      }
      if(!_this.addressStr){
        uni.showToast({
          title: "请填写您的详细地址",
          title: "请填写详细地址",
          icon: "none",
        });
        return;
@@ -295,7 +351,7 @@
      uni.request({
        url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
        url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
        method:'get',
        success:function(res){
          _this.getPayBindCardInfo = res.data.data;
@@ -309,7 +365,7 @@
        data:{
          ..._this.bindCardId,
          "customerId": uni.getStorageSync('qxgLogin').customerId,
          "customerId": uni.getStorageSync('ygxLogin').customerId,
          "cardPhone" : _this.cardPhone,  //手机号
          "cardNumber": _this.cardNumber, //卡号
@@ -323,12 +379,16 @@
        },
        success(e){
          if(e.data.code!==200){
            _this.$util.Tips({
              title: e.data.data
            });
            // _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('qxgLogin').customerId}`,
            url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
            method:'get',
            success:function(res){
              const  ls =  res.data.data;
@@ -337,13 +397,13 @@
              if(ls.length>1 && !ls[1].bindStatus){
              if(ls.length && !ls[1].bindStatus){
                _this.$refs.codeUi.open()
                _this.isCounting = false;
                _this.countText = '';
                return;
              }
              if(ls.length>2 && !ls[2].bindStatus){
              if(ls.length && !ls[2].bindStatus){
                _this.$refs.setUi.open();
                _this.isCounting = false;
                _this.countText = '';
@@ -353,6 +413,8 @@
              _this.kk()
            }
@@ -363,516 +425,559 @@
    },
    agreeClick () {
      this.loginAct = !this.loginAct
    },
    getSmsCode(){
      const that = this;
      console.log(that.getPayBindCardInfo[0].paymentMethod);
      if(this.isCounting){
        return
      }
      if(that.getPayBindCardInfo[0].bindStatus){
        if(!that.getPayBindCardInfo[1].bindStatus){
          that.$refs.codeUi.open();
      getSmsCode(){
        const that = this;
        console.log(that.getPayBindCardInfo[0].paymentMethod);
        if(this.isCounting){
          return
        }
        if(!that.getPayBindCardInfo[2].bindStatus){
          that.$refs.setUi.open();
        if(that.getPayBindCardInfo[0].bindStatus){
          if(!that.getPayBindCardInfo[1].bindStatus){
            that.$refs.codeUi.open();
            return
          }
          if(!that.getPayBindCardInfo[2].bindStatus){
            that.$refs.setUi.open();
          }
          return
        }
        return
      }
      if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.cardPhone)) return that.$util.Tips({
        title: '请输入正确的手机号码'
      });
        if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.cardPhone)) return uni.showToast({
          title: '请输入正确的手机号码',
          icon: 'none'
        });
      that.isCounting = true;
        that.isCounting = true;
      uni.request({
        url: that.$webHost+'/api/v2/xinheyuan/bankcard/save',
        method:'POST',
        data:{
          "customerId": uni.getStorageSync('qxgLogin').customerId,
          "nameReal": that.cardName, // 名字
          "cardNo":that.cardNumber,
          "idCard": that.idCardNo,
        uni.request({
          url: that.$webHost+'/api/v2/xinheyuan/bankcard/save',
          method:'POST',
          data:{
            "customerId": uni.getStorageSync('ygxLogin').customerId,
            "nameReal": that.cardName, // 名字
            "cardNo":that.cardNumber,
            "idCard": that.idCardNo,
          "bankPhoneNo":that.cardPhone,
          "bankCode": that.bankCode,
          "bankName": that.bankName,
          "phone":  that.cardPhone,  //手机号
          "paymentMethod":  that.getPayBindCardInfo[0].paymentMethod ,
            "bankPhoneNo":that.cardPhone,
            "bankCode": that.bankCode,
            "bankName": that.bankName,
            "phone":  that.cardPhone,  //手机号
            "paymentMethod":  that.getPayBindCardInfo[0].paymentMethod ,
          "preBindType": "prebc",
          "bankId": "1",
            "preBindType": "prebc",
            "bankId": "1",
        },
        success(){
          uni.request({
            url: that.$webHost+'/api/v2/pay/bindCardToCodes',
            method:'POST',
            data:{
              "customerId": uni.getStorageSync('qxgLogin').customerId,
              "cardName": that.cardName, // 名字
              "cardIdNo": that.idCardNo,
          },
          success(){
            uni.request({
              url: that.$webHost+'/api/v2/pay/bindCardToCodes',
              method:'POST',
              data:{
                "customerId": uni.getStorageSync('ygxLogin').customerId,
                "cardName": that.cardName, // 名字
                "cardIdNo": that.idCardNo,
              "cardNumber":that.cardNumber,
              "bankPhoneNo":that.cardPhone,
              "bankCode": that.bankCode,
              "bankName": that.bankName,
              "cardPhone":  that.cardPhone,  //手机号
              "paymentMethod":  that.getPayBindCardInfo[0].paymentMethod ,
                "cardNumber":that.cardNumber,
                "bankPhoneNo":that.cardPhone,
                "bankCode": that.bankCode,
                "bankName": that.bankName,
                "cardPhone":  that.cardPhone,  //手机号
                "paymentMethod":  that.getPayBindCardInfo[0].paymentMethod ,
              "preBindType": "prebc",
              "bankId": "1",
                "preBindType": "prebc",
                "bankId": "1",
            },
            success(res){
              if(res.data.code === 401){
                that.getUserInfo()
                return;
              }
              if(res.data.code !==200){
                uni.showToast({
                  title: res.data.data,
                  icon: 'none'
                })
                return;
              }
              if(res.data.code === 200){
                that.bindCardId = res.data.data;
              } else {
                that.isCounting = false;
                that.countText = '';
                uni.showToast({
                  title: res.data.data,
                  icon: 'none'
                });
                if(!that.getPayBindCardInfo[0].bindStatus){
              },
              success(res){
                if(res.data.code === 401){
                  that.getUserInfo()
                  return;
                }
                if(!that.getPayBindCardInfo[1].bindStatus){
                  that.$refs.codeUi.open()
                  that.isCounting = false;
                  that.countText = '';
                  return
                } if(!that.getPayBindCardInfo[2].bindStatus){
                  that.isCounting = false;
                  that.countText = '';
                  that.$refs.setUi.open()
                  return
                if(res.data.code !==200){
                  uni.showToast({
                    title: res.data.data,
                    icon: 'none'
                  })
                  return;
                }
                if(res.data.code === 200){
                  that.bindCardId = res.data.data;
                } else {
                  that.isCounting = false;
                  that.countText = '';
                  uni.showToast({
                    title: res.data.data,
                    icon: 'none'
                  });
                  if(!that.getPayBindCardInfo[0].bindStatus){
                    return;
                  }
                  if(!that.getPayBindCardInfo[1].bindStatus){
                    that.$refs.codeUi.open()
                    that.isCounting = false;
                    that.countText = '';
                    return
                  } if(!that.getPayBindCardInfo[2].bindStatus){
                    that.isCounting = false;
                    that.countText = '';
                    that.$refs.setUi.open()
                    return
                  }
                }
              }
            })
            }
          })
          let count = 60;
          that.countText = `${count}s秒后重新获取`;
          const timer = setInterval(() => {
            count--;
            let count = 60;
            that.countText = `${count}s秒后重新获取`;
            if (count <= 0) {
              clearInterval(timer);
              that.isCounting = false;
              that.countText = '';
            }
          },1000)
        },
        fail(err){
          that.isCounting = false;
          that.countText = '';
          uni.showToast({
            title: err,
            icon: 'none'
          })
        }
      })
    },
// 二次获取
    getCode(){
      if (this.isCounting_A) {
        return;
      }
      const paymentMethod = this.getPayBindCardInfo[1]['paymentMethod'];
      const _this = this;
      const pro = uni.getStorageSync('qxgLogin')
      pro['userName'] = _this.cardName;
      uni.request({
        url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
        method:'POST',
        data:{
          cardIdNo: _this.idCardNo,
          customerId: pro.customerId,
          cardName: _this.cardName,
          cardNo: _this.cardIdNo,
          cardPhone: _this.cardPhone,
          cardNumber: _this.cardNumber,
          bankName: _this.bankName,
          preBindType: "prebc",
          paymentMethod:paymentMethod,
          againType : true
        },
        success(dt){
          if(dt.data.code === 401){
            _this.getUserInfo()
            return;
          }
          const res = dt.data.data;
          if(!res){
            return;
          }
          _this.callbackData = res;
          _this.bindCardId = res;
          uni.showToast({
            title: "验证码已发送",
            icon: "none",
          });
          // 设置倒计时功能
          let count = 60;
          const timer = setInterval(() => {
            count--;
            if (count <= 0) {
              clearInterval(timer);
              _this.$set(_this, "isCounting_A", false);
            } else {
              _this.$set(_this, "isCounting_A", true);
              _this.$set(_this, "countText_A", `${count}秒后重新获取`);
            }
          }, 1000);
        }
      })
    },
    submitPlan(){
      const _this = this;
      if (!this.verificationCodeT) {
        uni.showToast({
          title: "请输入验证码",
          icon: "none",
        });
        return;
      }
      const callbackData = _this.callbackData;
      const paymentMethod = _this.getPayBindCardInfo[1]['paymentMethod'];
      uni.request({
        url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
        method:'POST',
        data:{
          ...callbackData,
          "customerId": uni.getStorageSync('qxgLogin').customerId,
          "cardPhone" : _this.cardPhone,  //手机号
          "cardNumber": _this.cardNumber, //卡号
          paymentMethod:paymentMethod,
          "cardName" : _this.cardName, // 名字
          "cardIdNo" : _this.cardIdNo,
          "bankName" : _this.bankName,
          "cardNo" :  _this.cardNumber,
          "verificationCode": _this.verificationCodeT,
        },
        success(dts){
          if(dts.data.code!==200){
            return
          }
          uni.request({
            url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
            method:'get',
            success:function(res){
              const  ls =  res.data.data;
              _this.getPayBindCardInfo = res.data.data;
              if(ls.length>2 && !ls[2].bindStatus){
                _this.isCounting_A = false;
                _this.countText_A = '';
                _this.$refs.codeUi.close()
                _this.$refs.setUi.open()
                return;
            const timer = setInterval(() => {
              count--;
              that.countText = `${count}s秒后重新获取`;
              if (count <= 0) {
                clearInterval(timer);
                that.isCounting = false;
                that.countText = '';
              }
              if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
            }
          })
        }
      })
    },
// 三次
    getCode_san(){
      if (this.isCounting_B) {
        return;
      }
      const paymentMethod = this.getPayBindCardInfo[2]['paymentMethod'];
      const _this = this;
      const pro = uni.getStorageSync('qxgLogin')
      pro['userName'] = _this.cardName;
      uni.request({
        url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
        method:'POST',
        data:{
          cardIdNo: _this.idCardNo,
          customerId: pro.customerId,
          cardName: _this.cardName,
          cardNo: _this.cardIdNo,
          cardPhone: _this.cardPhone,
          cardNumber: _this.cardNumber,
          bankName: _this.bankName,
          preBindType: "prebc",
          paymentMethod:paymentMethod,
          againType : true
        },
        success(dt){
          if(dt.data.code ==401){
            _this.getUserInfo()
            return;
          }
          if(dt.data.code !==200){
            },1000)
          },
          fail(err){
            that.isCounting = false;
            that.countText = '';
            uni.showToast({
              title: dt.data.data,
              title: err,
              icon: 'none'
            })
            return;
          }
        })
          const res = dt.data.data;
          if(!res){
            return;
      },
// 二次获取
      getCode(){
        if (this.isCounting_A) {
          return;
        }
        const paymentMethod = this.getPayBindCardInfo[1]['paymentMethod'];
        const _this = this;
        const pro = uni.getStorageSync('ygxLogin')
        pro['userName'] = _this.cardName;
        uni.request({
          url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
          method:'POST',
          data:{
            cardIdNo: _this.idCardNo,
            customerId: pro.customerId,
            cardName: _this.cardName,
            cardNo: _this.cardIdNo,
            cardPhone: _this.cardPhone,
            cardNumber: _this.cardNumber,
            bankName: _this.bankName,
            preBindType: "prebc",
            paymentMethod:paymentMethod,
            againType : true
          },
          success(dt){
            if(dt.data.code === 401){
              _this.getUserInfo()
              return;
            }
            const res = dt.data.data;
            if(!res){
              return;
            }
            _this.callbackData = res;
            _this.bindCardId = res;
            uni.showToast({
              title: "验证码已发送",
              icon: "none",
            });
            // 设置倒计时功能
            let count = 60;
            const timer = setInterval(() => {
              count--;
              if (count <= 0) {
                clearInterval(timer);
                _this.$set(_this, "isCounting_A", false);
              } else {
                _this.$set(_this, "isCounting_A", true);
                _this.$set(_this, "countText_A", `${count}秒后重新获取`);
              }
            }, 1000);
          }
          _this.callbackData = res;
          _this.bindCardId = res;
        })
      },
      submitPlan(){
        const _this = this;
        if (!this.verificationCodeT) {
          uni.showToast({
            title: "验证码已发送",
            title: "请输入验证码",
            icon: "none",
          });
          // 设置倒计时功能
          let count = 60;
          const timer = setInterval(() => {
            count--;
            if (count <= 0) {
              clearInterval(timer);
              _this.$set(_this, "isCounting_B", false);
            } else {
              _this.$set(_this, "isCounting_B", true);
              _this.$set(_this, "countText_B", `${count}秒后重新获取`);
            }
          }, 1000);
          return;
        }
      })
    },
    submitPlan_san(){
      const _this = this;
        const callbackData = _this.callbackData;
        const paymentMethod = _this.getPayBindCardInfo[1]['paymentMethod'];
      if (!this.verificationCodeS) {
        uni.showToast({
          title: "请输入验证码",
          icon: "none",
        });
        return;
      }
        uni.request({
          url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
          method:'POST',
          data:{
            ...callbackData,
      const callbackData = _this.callbackData;
      const paymentMethod = _this.getPayBindCardInfo[2]['paymentMethod'];
            "customerId": uni.getStorageSync('ygxLogin').customerId,
            "cardPhone" : _this.cardPhone,  //手机号
            "cardNumber": _this.cardNumber, //卡号
            paymentMethod:paymentMethod,
            "cardName" : _this.cardName, // 名字
            "cardIdNo" : _this.cardIdNo,
            "bankName" : _this.bankName,
            "cardNo" :  _this.cardNumber,
            "verificationCode": _this.verificationCodeT,
          },
          success(dts){
            if(dts.data.code!==200){
              // _this.$util.Tips({
              //   title: dts.data.data
              // });
           uni.showToast({
             title: dts.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.length>2 && !ls[2].bindStatus){
                  _this.isCounting_A = false;
                  _this.countText_A = '';
                  _this.$refs.codeUi.close()
                  _this.$refs.setUi.open()
                }
                if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
      uni.request({
        url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
        method:'POST',
        data:{
          ...callbackData,
          "customerId": uni.getStorageSync('qxgLogin').customerId,
          "cardPhone" : _this.cardPhone,  //手机号
          "cardNumber": _this.cardNumber, //卡号
          paymentMethod:paymentMethod,
          "cardName" : _this.cardName, // 名字
          "cardIdNo" : _this.cardIdNo,
          "bankName" : _this.bankName,
          "cardNo" :  _this.cardNumber,
          "verificationCode": _this.verificationCodeS,
        },
        success(dts){
          if(dts.data.code!==200){
            _this.showToast({
              title: dts.data.data
            });
              }
            })
          }
        })
          uni.request({
            url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
            method:'get',
            success:function(res){
              const ls = res.data.data;
              _this.getPayBindCardInfo = res.data.data;
              _this.isCounting_B = false;
              _this.countText_B = '';
              _this.$refs.setUi.close()
              _this.$refs.codeUi.close()
              if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
      },
// 三次
      getCode_san(){
        if (this.isCounting_B) {
          return;
        }
        const paymentMethod = this.getPayBindCardInfo[2]['paymentMethod'];
        const _this = this;
        const pro = uni.getStorageSync('ygxLogin')
        pro['userName'] = _this.cardName;
        uni.request({
          url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
          method:'POST',
          data:{
            cardIdNo: _this.idCardNo,
            customerId: pro.customerId,
            cardName: _this.cardName,
            cardNo: _this.cardIdNo,
            cardPhone: _this.cardPhone,
            cardNumber: _this.cardNumber,
            bankName: _this.bankName,
            preBindType: "prebc",
            paymentMethod:paymentMethod,
            againType : true
          },
          success(dt){
            if(dt.data.code ==401){
              _this.getUserInfo()
              return;
            }
          })
            if(dt.data.code !==200){
              uni.showToast({
                title: dt.data.data,
                icon: 'none'
              })
              return;
            }
            const res = dt.data.data;
            if(!res){
              return;
            }
            _this.callbackData = res;
            _this.bindCardId = res;
            uni.showToast({
              title: "验证码已发送",
              icon: "none",
            });
            // 设置倒计时功能
            let count = 60;
            const timer = setInterval(() => {
              count--;
              if (count <= 0) {
                clearInterval(timer);
                _this.$set(_this, "isCounting_B", false);
              } else {
                _this.$set(_this, "isCounting_B", true);
                _this.$set(_this, "countText_B", `${count}秒后重新获取`);
              }
            }, 1000);
          }
        })
      },
      submitPlan_san(){
        const _this = this;
        if (!this.verificationCodeS) {
          uni.showToast({
            title: "请输入验证码",
            icon: "none",
          });
          return;
        }
      })
        const callbackData = _this.callbackData;
        const paymentMethod = _this.getPayBindCardInfo[2]['paymentMethod'];
        uni.request({
          url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
          method:'POST',
          data:{
            ...callbackData,
            "customerId": uni.getStorageSync('ygxLogin').customerId,
            "cardPhone" : _this.cardPhone,  //手机号
            "cardNumber": _this.cardNumber, //卡号
            paymentMethod:paymentMethod,
            "cardName" : _this.cardName, // 名字
            "cardIdNo" : _this.cardIdNo,
            "bankName" : _this.bankName,
            "cardNo" :  _this.cardNumber,
            "verificationCode": _this.verificationCodeS,
          },
          success(dts){
            if(dts.data.code!==200){
              // _this.$util.Tips({
              //   title: dts.data.data
              // });
           uni.showToast({
             title: dts.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;
                _this.isCounting_B = false;
                _this.countText_B = '';
                _this.$refs.setUi.close()
                _this.$refs.codeUi.close()
                if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
              }
            })
          }
        })
      },
      getUserInfo() {
        // const data =   uni.getStorageSync('LOGING_DATA')
        // console.log(data);
        // this.$store.commit("LOGIN", {
        //   'token': data.token
        // });
        // this.$store.commit('UPDATE_USERINFO', {
        //   avatar: data.avatar,
        //   nickname: data.nickname,
        //   phone: data.phone
        // });
        // this.$store.commit("SETUID", data.id)
        uni.reLaunch({
          url: '/pages/index/index'
        });
      },
    },
    getUserInfo() {
      uni.reLaunch({
        url: '/pages/index/index'
      });
    },
  },
  onUnload() {
    onUnload() {
      clearInterval(this.interval);
    },
  }
</script>
<template>
  <view style="background: #fff;padding-bottom: 20rpx;">
  <view style="background: #F7F7F7;padding-bottom: 40rpx;">
    <view >
      <view class="top">为向您提供更好的安全保障,您需要提供银行卡号以完成信息核验</view>
    </view>
    <view style="background: white;height: 20rpx;"></view>
    <view class="form">
      <view class="clo" style="display: flex;background: white">
      <view class="clo">
        <view class="label">
          <text>真实姓名</text>
          <text>持卡人姓名</text>
        </view>
        <view class="inp_box">
          <input  maxlength="8" style="width: 400rpx;"   v-model="cardName" class="inp" placeholder="请填写您的姓名" />
          <input  maxlength="8"   v-model="cardName" class="inp" placeholder="请填写持卡人姓名" />
        </view>
      </view>
      <view class="clo" style="display: flex;background: white">
      <view class="clo">
        <view class="label">
          <text>身份证号</text>
        </view>
        <view class="inp_box">
          <input  maxlength="18" style="width: 400rpx;"   v-model="idCardNo" class="inp" placeholder="请填写您的身份证号" />
          <input  maxlength="18"   v-model="idCardNo" class="inp" placeholder="请填写身份证号" />
        </view>
      </view>
<!--      <view style="background: #F7F7F7;height: 20rpx;"></view>-->
      <view class="clo" style="display: flex">
      <view class="clo">
        <view class="label">
          <text>银行卡号</text>
        </view>
        <view class="inp_box">
          <input  maxlength="30" style="width: 400rpx;"   @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: -40rpx;top: 0;"></image>
          <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" style="display: flex">
      <view class="clo">
        <view class="label">
          <text>所属银行</text>
        </view>
        <view class="inp_box" style="flex: 1;z-index: 1" >
          <view :class="bankName?'':'a3'">{{bankName?bankName:'请输入所属银行'}}</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 class="clo" style="display: flex">
      <view class="clo">
        <view class="label">
          <view>手机号码</view>
          <view>预留手机号</view>
        </view>
        <view class="inp_box" >
          <input  maxlength="11" v-model="cardPhone"  class="inp" placeholder="请填写银行预留手机号" />
        <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" style="display: flex" v-if="!getPayBindCardInfo[0].bindStatus">
      <view class="clo" v-if="getPayBindCardInfo.length && !getPayBindCardInfo[0].bindStatus">
        <view class="label">
          <text>验证码</text>
          <text>手机验证码</text>
        </view>
        <view class="inp_box" style="display: flex;flex: 1">
          <input  maxlength="6" v-model="verificationCode" class="inp" type="number" style="width: 200rpx" placeholder="请输入验证码" />
        <view class="inp_box" style="position: relative;">
          <input  maxlength="6" v-model="verificationCode" class="inp" type="number" placeholder="请填写验证码" />
          <view class="code" style="flex: 1;text-align: right" @click="getSmsCode">
          <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" style="display: flex;margin-bottom: 20rpx;" @click="$refs.address.open()">
      <view class="clo" @click="$refs.address.open()">
        <view class="label" >
          <text>收货地址</text>
        </view>
        <view class="inp_box">
          <view style="font-size: 28rpx;" v-if="addressStr">{{addressStr}}</view>
          <view style="font-size: 28rpx;color: #BDBDBE;" v-else>请填写您的详细地址</view>
          <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>
    <!--    <view class="xieyi">
          <view style="display: flex">
            <checkbox-group @change="checkboxChange">
    <view style=" padding: 0 30rpx;margin-left: 20rpx;">
      <view style="display: flex;">
        <image @click="agreeClick" style="width: 50rpx;height: 50rpx;" :src="!loginAct ? '/static/imgs/check.png' : '/static/imgs/checked.png'" ></image>
        <text class="protocol-text" style="line-height: 50rpx" >
          我已阅读并同意<text style="font-size: 24rpx;color: #4766FE" class="link-text"  @click="$refs.agreement.open()">《相关协议》</text>
        </text>
              <checkbox value="1"   activeBorderColor="none"  activeBackgroundColor="red" style="border-radius: 0"  color="#ffffff"/>
            </checkbox-group>
            <view style="margin-top: 2rpx;"> <text>我已同意</text>
             </view>
          </view>
        </view>-->
    <view style=" padding: 0 30rpx;margin-top: 30rpx;">
      <view style="display: flex;align-items: center;">
        <uv-checkbox-group
            activeColor="#4766FE"
         iconSize="20"
            shape="circle"
            v-model="protocolChecked">
          <uv-checkbox size="22" :name="1" >
         <text class="protocol-text" >
            我已阅读并同意
          </text>
          </uv-checkbox>
          <text style="font-size: 24rpx;" class="link-text"  @click="$refs.agreement.open()">《相关协议》</text>
        </uv-checkbox-group>
      </view>
    </view>
    <view class="sub" v-if="show">
      <button  :class="loginAct?'':'nots'" class="sub_btn" @click="submit">提交</button>
      <button  :class="protocolChecked[0]?'':'nots'" class="sub_btn" @click="submit">提交</button>
    </view>
    <agreement ref="agreement"></agreement>
@@ -891,20 +996,44 @@
    </uni-popup>
    <uv-popup mode="center" round="20" ref="codeUi" :closeOnClickOverlay="false" bgColor="">
    <uv-popup mode="center" round="20" ref="codeUi" :closeOnClickOverlay="false" >
      <view style="padding: 40rpx;width:calc( 100% - 120rpx);margin: auto;border-radius: 40rpx 40rpx 40rpx 40rpx;background-image: url('/static/imgs/codeUiBACK.png');background-repeat: no-repeat;background-size: 100% 100%;padding-top: 60rpx;">
      <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;">
        <view class="head">
          <view
              style="
          text-align: center;
          font-weight: bold;
          font-size: 36rpx;
          position: relative;
          height: 50rpx;
        "
          >
            <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-weight: bold;
          font-size: 36rpx;
          position: relative;
         margin-bottom: 12rpx;
         text-align: center;
        ">短信确认</view>
        <view style="font-size: 28rpx;color: #666666;">为确保安全到账,需再次对您的收款账户进行短信验证</view>
        <view style="font-size: 28rpx;color: #252938;text-align: center;">为确保安全到账,需再次对您的收款账户进行短信验证</view>
        <view class="content" style="margin-top: 40rpx;">
        <view class="content">
          <uv-form
              :labelStyle="lstyle"
              labelPosition="left"
@@ -920,7 +1049,6 @@
            >
              <uv-input
                  shape="circle"
                  :adjustPosition="true"
                  readonly
                  v-model="cardPhone"
@@ -930,10 +1058,9 @@
                  border="none"
                  placeholder="请输入手机号"
                  style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
              ></uv-input>
            </uv-form-item>
            <view style="height: 20rpx;"></view>
            <uv-form-item
                class="item"
@@ -947,10 +1074,12 @@
                  v-model="verificationCodeT"
                  border="none"
                  placeholder="请输入验证码"
                  style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
              >
                <template #suffix>
                  <text
                      class="code"
                      style="color: red;"
                      :class="isCounting_A ? 'ks' : ''"
                      @click="getCode"
                  >{{ isCounting_A ? countText_A : "获取验证码" }}</text
@@ -959,40 +1088,57 @@
              </uv-input>
            </uv-form-item>
            <uv-form-item >
              <view class="but" style="width: 100%;margin-top: 20rpx;font-weight: 600;">
              <view class="but" style="width: 100%;">
                <uv-button
                    :customStyle="customStyle"
                    shape="circle"
                    @click="submitPlan"
                >确定</uv-button
                >确认</uv-button
                >
              </view>
            </uv-form-item>
          </uv-form>
        </view>
      </view>
      <view style="text-align: center;margin-top: 40rpx;">
        <image
            @click="$refs.codeUi.close()"
            src="@/static/imgs/closeA.png"
            style="  width: 50rpx; height: 50rpx; "
        ></image>
      </view>
    </uv-popup>
    <uv-popup mode="center" round="20" ref="setUi" :closeOnClickOverlay="false"  bgColor="" z-index="999">
    <uv-popup mode="center" round="20" ref="setUi" :closeOnClickOverlay="false" >
      <view style="padding: 40rpx;width:calc( 100% - 120rpx);margin: auto;border-radius: 40rpx 40rpx 40rpx 40rpx;background-image: url('/static/imgs/codeUiBACK.png');background-repeat: no-repeat;background-size: 100% 100%;padding-top: 60rpx;">
      <view style="padding: 40rpx;width: 690rpx;background: url('/static/img/smsBg.png') no-repeat top center; background-size: 100%;height: 650rpx;">
        <view class="head">
          <view
              style="
          text-align: center;
          font-weight: bold;
          font-size: 36rpx;
          position: relative;
          height: 50rpx;
        "
          >
            <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-weight: bold;
          font-size: 36rpx;
          position: relative;
         margin-bottom: 12rpx;
         text-align: center;
        ">本人提交确认</view>
        <view style="font-size: 28rpx;color: #666666;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view>
        <view style="font-size: 28rpx;color: #252938;text-align: center;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view>
        <view class="content" style="margin-top: 40rpx;">
        <view class="content">
          <uv-form
              :labelStyle="lstyle"
              labelPosition="left"
@@ -1017,9 +1163,10 @@
                  border="none"
                  placeholder="请输入手机号"
                  style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
              ></uv-input>
            </uv-form-item>
            <view style="height: 20rpx;"></view>
            <uv-form-item
                class="item"
                label=""
@@ -1032,10 +1179,12 @@
                  v-model="verificationCodeS"
                  border="none"
                  placeholder="请输入验证码"
                  style="height: 100rpx;border: 1px solid #EEEEEE;border-radius: 30rpx;padding: 0 20rpx;"
              >
                <template #suffix>
                  <text
                      class="code"
                      style="color: red;"
                      :class="isCounting_B ? 'ks' : ''"
                      @click="getCode_san"
                  >{{ isCounting_B ? countText_B : "获取验证码" }}</text
@@ -1044,24 +1193,17 @@
              </uv-input>
            </uv-form-item>
            <uv-form-item >
              <view class="but" style="width: 100%;margin-top: 20rpx;font-weight: 600;">
              <view class="but" style="width: 100%;">
                <uv-button
                    :customStyle="customStyle"
                    shape="circle"
                    @click="submitPlan_san"
                >确定</uv-button
                >确认</uv-button
                >
              </view>
            </uv-form-item>
          </uv-form>
        </view>
      </view>
      <view style="text-align: center;margin-top: 40rpx;">
        <image
            @click="$refs.setUi.close()"
            src="@/static/imgs/closeA.png"
            style="  width: 50rpx; height: 50rpx; "
        ></image>
      </view>
    </uv-popup>
@@ -1069,14 +1211,14 @@
      <addAddress :addressDetail="addressDetail" @off="$refs.address.close()" @submit="e => addressDetail = e"></addAddress>
    </uv-popup>
    <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">
   .uv-checkbox-group--row {
      align-items: center;
   }
.a3{
  color: #BDBDBE;
  font-size: 30rpx;
@@ -1091,17 +1233,15 @@
}
.form{
  background: #FFFFFF;
  padding-top: 40rpx;
  .clo{
    display: flex;
    background: #FBFBFB !important;
    border-radius: 24rpx 24rpx 24rpx 24rpx;
    border: 2rpx solid #EEEEEE;
    padding: 30rpx 20rpx;
    margin: 0 40rpx 40rpx;
    //display: flex;
    //padding: 30rpx 0rpx;
    padding-bottom: 30rpx;
    margin: 0 40rpx;
    //border-bottom: 1rpx solid #E7E9ED;
    background: #FFFFFF;
    .label{
      width: 160rpx;
      width: 460rpx;
      height: 40rpx;
      font-weight: 600;
@@ -1112,13 +1252,17 @@
    .inp_box{
      position: relative;
      margin-top: 30rpx;
      .inp{
        &::placeholder{
          color: #999999;
          font-size: 30rpx;
        }
        height: 42rpx;
        width: 670rpx;
        height: 100rpx;
        border: 1px solid #EEEEEE;
        border-radius: 20rpx;
        padding-left: 20rpx;
        font-weight: 400;
        font-size: 30rpx;
        color: #333333;
@@ -1130,14 +1274,16 @@
.code_a{
  font-weight: 400;
  font-size: 24rpx;
  color: #FF1472;
  font-size: 28rpx;
  color: #EE2626;
  padding: 16rpx 20rpx;
  //border: 1rpx solid #EE2626;
  //border-radius: 8rpx 8rpx 8rpx 8rpx;
}
.code_k{
  font-weight: 400;
  font-size: 30rpx;
  font-size: 28rpx;
  color: #999999;
}
@@ -1154,12 +1300,12 @@
.sub{
  width: 690rpx;
  bottom: 50rpx;
  padding: 0 10rpx;
  margin-top: 50rpx;
  padding: 0 30rpx;
  margin-top: 40rpx;
  .sub_btn{
    background: #FF1472;
    background: #4766FE;
    border-radius: 50rpx 50rpx 50rpx 50rpx;
    padding: 10rpx;
@@ -1169,13 +1315,7 @@
  }
}
.item{
  background: #FBFBFB;
  border-radius: 24rpx 24rpx 24rpx 24rpx;
  border: 2rpx solid #EEEEEE;
  padding: 0 40rpx;
}
::v-deep  .uni-checkbox-input{
  border-radius: 0;
  transform: scale(0.7);
@@ -1188,7 +1328,6 @@
  color: #BDBDBE;
}
.protocol-text {
  width: calc( 100% - 44rpx);
  font-size: 24rpx;
  color: #8B8D96;
  line-height: 28rpx;
@@ -1199,8 +1338,5 @@
}
.nots{
  opacity: 0.5;
}
.code{
  color: #FF1472;
}
</style>