| New file |
| | |
| | | <script> |
| | | import { |
| | | payBindCardToCodes, |
| | | payVerifySMSCodes, |
| | | xinheyuanBankcardSave, |
| | | } from "@/api/modules/user"; |
| | | export default { |
| | | props: { |
| | | bankDetail: { |
| | | type: Object, |
| | | default() { |
| | | return {}; |
| | | }, |
| | | }, |
| | | queryBind: { |
| | | type: Object, |
| | | default() { |
| | | return {}; |
| | | }, |
| | | }, |
| | | }, |
| | | computed: { |
| | | customStyle() { |
| | | return { |
| | | height: "100rpx", |
| | | background: "#EE2626", |
| | | color: "#fff", |
| | | borderRadius: "50rpx", |
| | | fontSize: "34rpx", |
| | | }; |
| | | }, |
| | | inputStyle() { |
| | | return { |
| | | fontWeight: "400", |
| | | fontSize: "30rpx", |
| | | }; |
| | | }, |
| | | }, |
| | | |
| | | created() { |
| | | this.detail = this.bankDetail; |
| | | this.detail.verificationCode = ""; |
| | | this.detail.bankName = this.queryBind.bankName; |
| | | this.detail.bankId = this.queryBind.cardNumber; |
| | | this.detail.bankPhoneNo = this.queryBind.cardPhone; |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | lstyle: { |
| | | color: "#333333", |
| | | fontSize: "30rpx", |
| | | fontWeight: "bold", |
| | | }, |
| | | |
| | | isCounting: false, |
| | | countText: "", |
| | | detail: { |
| | | bankName: "", |
| | | verificationCode: "", |
| | | }, |
| | | bankList: [], |
| | | bankCode: "", |
| | | callbackData: "", |
| | | }; |
| | | }, |
| | | methods: { |
| | | |
| | | submitPlan() { |
| | | const _this = this; |
| | | const pro = uni.getStorageSync("params"); |
| | | |
| | | if (!this.detail.bankPhoneNo) { |
| | | uni.showToast({ |
| | | title: "请输入手机号", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | if (!this.detail.verificationCode) { |
| | | uni.showToast({ |
| | | title: "请输入验证码", |
| | | icon: "none", |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | const callbackData = uni.getStorageSync("callbackData"); |
| | | const paymentMethod = uni.getStorageSync("payBindCardInf")[2]['paymentMethod']; |
| | | payVerifySMSCodes({ |
| | | ...callbackData, |
| | | customerId: pro.customerId, |
| | | cardName: uni.getStorageSync("userName"), // 真实姓名 |
| | | bankName: _this.detail.bankName, |
| | | cardIdNo: uni.getStorageSync("idCardNo"), |
| | | |
| | | cardPhone: _this.detail.bankPhoneNo, |
| | | paymentMethod:paymentMethod, |
| | | cardNumber: _this.detail.bankId, |
| | | verificationCode: _this.detail.verificationCode, //短信 |
| | | }).then((res) => { |
| | | if(res){ |
| | | this.$emit("submit", this.detail); |
| | | } |
| | | }); |
| | | }, |
| | | off() { |
| | | this.$emit("off"); |
| | | }, |
| | | getCode() { |
| | | if (this.isCounting) { |
| | | return; |
| | | } |
| | | const paymentMethod = uni.getStorageSync("payBindCardInf")[2]['paymentMethod']; |
| | | const _this = this; |
| | | const pro = uni.getStorageSync("params"); |
| | | xinheyuanBankcardSave({ |
| | | customerId: pro.customerId, |
| | | nameReal: uni.getStorageSync("userName"), |
| | | cardNo: _this.detail.bankId, |
| | | idCard: uni.getStorageSync("idCardNo"), |
| | | bankId: "1", |
| | | bankPhoneNo: _this.detail.bankPhoneNo, |
| | | bankCode: _this.bankCode, |
| | | bankName: _this.detail.bankName, |
| | | phone: _this.detail.bankPhoneNo, |
| | | preBindType: "prebc", |
| | | }).then((res) => { |
| | | payBindCardToCodes({ |
| | | cardIdNo: uni.getStorageSync("idCardNo"), |
| | | customerId: pro.customerId, |
| | | cardName: uni.getStorageSync("userName"), |
| | | cardNo: _this.detail.bankId, |
| | | cardPhone: _this.detail.bankPhoneNo, |
| | | cardNumber: _this.detail.bankId, |
| | | bankName: _this.detail.bankName, |
| | | preBindType: "prebc", |
| | | paymentMethod:paymentMethod, |
| | | againType : true |
| | | }).then((res) => { |
| | | if(!res){ |
| | | return |
| | | } |
| | | _this.callbackData = res; |
| | | uni.setStorageSync("callbackData", res); |
| | | |
| | | uni.showToast({ |
| | | title: "验证码已发送", |
| | | icon: "none", |
| | | }); |
| | | uni.setStorageSync("YF", 1); |
| | | |
| | | // 设置倒计时功能 |
| | | let count = 60; |
| | | const timer = setInterval(() => { |
| | | count--; |
| | | if (count <= 0) { |
| | | clearInterval(timer); |
| | | _this.$set(_this, "isCounting", false); |
| | | } else { |
| | | _this.$set(_this, "isCounting", true); |
| | | _this.$set(_this, "countText", `${count}秒后重新获取`); |
| | | } |
| | | }, 1000); |
| | | }); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <template> |
| | | <view> |
| | | <view class="head"> |
| | | <view |
| | | style=" |
| | | text-align: center; |
| | | font-weight: bold; |
| | | font-size: 36rpx; |
| | | position: relative; |
| | | height: 50rpx; |
| | | " |
| | | > |
| | | |
| | | <image |
| | | @click="off" |
| | | src="@/static/img/close.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; |
| | | padding-left: 38rpx; |
| | | ">本人提交确认</view> |
| | | <view style="font-size: 28rpx;color: #252938; padding-left: 38rpx;padding-right: 30rpx;">根据合规要求我们将进行本人提交意愿确认的短信校验,请注意查看短信验证码</view> |
| | | <view class="con"> |
| | | <u-form |
| | | :labelStyle="lstyle" |
| | | labelPosition="left" |
| | | :model="detail" |
| | | ref="form" |
| | | labelWidth="100" |
| | | > |
| | | |
| | | <u-form-item |
| | | class="item" |
| | | label="手机号" |
| | | prop="repayTermStr" |
| | | borderBottom |
| | | > |
| | | <u-input |
| | | :adjustPosition="true" |
| | | maxlength="11" |
| | | :customStyle="inputStyle" |
| | | disabledColor="none" |
| | | inputAlign="right" |
| | | v-model="detail.bankPhoneNo" |
| | | border="none" |
| | | placeholder="请输入手机号" |
| | | ></u-input> |
| | | </u-form-item> |
| | | |
| | | <u-form-item |
| | | class="item" |
| | | label="短信验证码" |
| | | prop="needVerify" |
| | | > |
| | | <u-input |
| | | :adjustPosition="true" |
| | | maxlength="6" |
| | | inputAlign="right" |
| | | v-model="detail.verificationCode" |
| | | border="none" |
| | | placeholder="请输入验证码" |
| | | > |
| | | <template #suffix> |
| | | <text |
| | | class="code" |
| | | :class="isCounting ? 'ks' : ''" |
| | | @click="getCode" |
| | | >{{ isCounting ? countText : "获取验证码" }}</text |
| | | > |
| | | </template> |
| | | </u-input> |
| | | </u-form-item> |
| | | <u-form-item > |
| | | <view class="but"> |
| | | <u-button |
| | | :customStyle="customStyle" |
| | | shape="circle" |
| | | @click="submitPlan" |
| | | >确认提交</u-button |
| | | > |
| | | </view> |
| | | </u-form-item> |
| | | </u-form> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <style scoped lang="scss"> |
| | | .ks { |
| | | color: #999999 !important; |
| | | } |
| | | .but { |
| | | width: 100%; |
| | | margin-top: 46rpx; |
| | | .pack { |
| | | text-align: center; |
| | | margin-top: 20rpx; |
| | | font-size: 30rpx; |
| | | display: flex; |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | .head { |
| | | margin-top: 40rpx; |
| | | padding: 0 40rpx; |
| | | |
| | | font-size: 32rpx; |
| | | color: #252938; |
| | | .title { |
| | | display: flex; |
| | | flex-direction: row; |
| | | text-align: center; |
| | | color: #252938; |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | .num { |
| | | color: #4766fe; |
| | | display: contents; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .con { |
| | | padding: 0 38rpx; |
| | | .pt40 { |
| | | padding-top: 40rpx; |
| | | } |
| | | .mr { |
| | | margin-right: 20rpx; |
| | | } |
| | | .code { |
| | | margin-left: 40rpx; |
| | | font-size: 24rpx; |
| | | color: #4766fe; |
| | | background: none; |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | } |
| | | } |
| | | </style> |