From 8771da2ccf6f7c3fd2a8c89a1a0e230c6386db7f Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期一, 17 十一月 2025 15:40:48 +0800
Subject: [PATCH] feat(api): 新增多个API接口并优化配置

---
 pages/pay/addCardCode.vue |  141 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 0 deletions(-)

diff --git a/pages/pay/addCardCode.vue b/pages/pay/addCardCode.vue
new file mode 100644
index 0000000..1d72a36
--- /dev/null
+++ b/pages/pay/addCardCode.vue
@@ -0,0 +1,141 @@
+<template>
+	<view>
+		<view class="u-p-30 color-666">宸插彂閫佽嚦鎵嬫満鍙穥{form.mobile|mobile_asterisk}}</view>
+		<u--form class="bg-fff u-p-h-30" labelWidth="80" :model="form" :rules="rules" ref="uForm">
+			<u-form-item label="楠岃瘉鐮�" prop="code">
+				<u--input v-model="form.code" border="none" placeholder="璇疯緭鍏ユ墜鏈洪獙璇佺爜"></u--input>
+				<u-button slot="right" @click="getCode" type="error" size="mini" plain :text="tips"></u-button>
+			</u-form-item>
+		</u--form>
+		<view class="u-p-40">
+			<u-button @click="doBind" :loading="loading" :disabled="loading" type="error" text="纭缁戝崱"></u-button>
+		</view>
+		<u-toast ref="uToast"></u-toast>
+		<u-code :seconds="seconds" ref="uCode" @change="codeChange"></u-code>
+	</view>
+</template>
+
+<script>
+	import {
+		signUpToApply,
+		bindCard
+	} from '@/common/api/index'
+	const bankName = require("@/common/bankName.js");
+	export default {
+		data() {
+			return {
+				tips: '',
+				seconds: 60,
+				loading: false,
+				form: {
+					acctName: '',
+					cardNo: '',
+					bankName: '',
+					cardType: 'DC',
+					validdate: '',
+					cvv2: '',
+					idNo: '',
+					mobile: '18737516907',
+					thpinfo: '',
+					code: ''
+				},
+				rules: {
+					code: [{
+						required: true,
+						message: '楠岃瘉鐮佷笉鑳戒负绌�',
+						trigger: 'blur'
+					}, {
+						// 鑷畾涔夐獙璇佸嚱鏁帮紝瑙佷笂璇存槑
+						validator: (rule, value, callback) => {
+							// 涓婇潰鏈夎锛岃繑鍥瀟rue琛ㄧず鏍¢獙閫氳繃锛岃繑鍥瀎alse琛ㄧず涓嶉�氳繃
+							// uni.$u.test.mobile()灏辨槸杩斿洖true鎴栬�協alse鐨�
+							return uni.$u.test.code(value, 6);
+						},
+						message: '楠岃瘉鐮佹牸寮忎笉姝g‘',
+						trigger: 'change'
+					}]
+				}
+			};
+		},
+		filters: {
+			mobile_asterisk(mobile) {
+				if (uni.$u.test.isEmpty(mobile)) {
+					return ''
+				}
+				return mobile.substr(0, 4) +
+					"****" + mobile.substr(8, 3);
+			}
+		},
+		onLoad(opt) {
+			opt.acctName = decodeURIComponent(opt.acctName || '')
+			opt.bankName = decodeURIComponent(opt.bankName || '')
+			this.form = opt
+		},
+		onReady() {
+			//濡傛灉闇�瑕佸吋瀹瑰井淇″皬绋嬪簭锛屽苟涓旀牎楠岃鍒欎腑鍚湁鏂规硶绛夛紝鍙兘閫氳繃setRules鏂规硶璁剧疆瑙勫垯銆�
+			this.$refs.uForm.setRules(this.rules)
+			this.$refs.uCode.start();
+		},
+		methods: {
+			codeChange(text) {
+				this.tips = text;
+			},
+			getCode() {
+				if (this.$refs.uCode.canGetCode) {
+					// 妯℃嫙鍚戝悗绔姹傞獙璇佺爜
+					uni.showLoading({
+						title: '姝e湪鑾峰彇楠岃瘉鐮�'
+					})
+					const params = uni.$u.deepClone(this.form);
+					delete params.thpinfo
+					delete params.code
+					delete params.bankName
+					delete params.cardType
+					signUpToApply(params).then(res => {
+						this.form.thpinfo = res
+						uni.hideLoading();
+						uni.$u.toast('楠岃瘉鐮佸凡鍙戦��');
+						// 閫氱煡楠岃瘉鐮佺粍浠跺唴閮ㄥ紑濮嬪�掕鏃�
+						this.$refs.uCode.start();
+					}).catch(() => {
+						uni.$u.toast('楠岃瘉鐮佸彂閫佸け璐�');
+						uni.hideLoading();
+					})
+				} else {
+					uni.$u.toast('鍊掕鏃剁粨鏉熷悗鍐嶅彂閫�');
+				}
+			},
+			doBind() {
+				this.$refs.uForm.validate().then(res => {
+					this.loading = true
+					const params = uni.$u.deepClone(this.form);
+					delete params.bankName
+					delete params.cardType
+					bindCard(params).then(res => {
+						this.loading = false
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '鎴愬姛',
+							message: "缁戝崱鎴愬姛",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png',
+							complete: () => {
+								uni.navigateBack({
+									delta: 3
+								})
+							}
+						})
+
+					}).catch(() => {
+						this.loading = false
+					})
+				}).catch(errors => {
+
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

--
Gitblit v1.9.1