From 7ad48ddf4ca20d0f1f894cbfe4946b2a8d7041ab Mon Sep 17 00:00:00 2001
From: lin <1005713861@163.com>
Date: Fri, 17 Apr 2026 15:05:01 +0800
Subject: [PATCH] feat: 星享购提交
---
pages/quanyi/components/code/index.vue | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 323 insertions(+), 0 deletions(-)
diff --git a/pages/quanyi/components/code/index.vue b/pages/quanyi/components/code/index.vue
new file mode 100644
index 0000000..f6663b3
--- /dev/null
+++ b/pages/quanyi/components/code/index.vue
@@ -0,0 +1,323 @@
+<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")[1]['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")[1]['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;">为确保安全到账,需再次对您的收款账户进行短信验证</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>
--
Gitblit v1.9.3