From 7a0b33a5f2e0ba589bf35a1b8d896700a21f94a4 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 30 四月 2026 16:00:55 +0800
Subject: [PATCH] 支付宝支付dddadd

---
 small-program/pages/store-apply/store-apply.vue |  107 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 84 insertions(+), 23 deletions(-)

diff --git a/small-program/pages/store-apply/store-apply.vue b/small-program/pages/store-apply/store-apply.vue
index c38dea0..864b022 100644
--- a/small-program/pages/store-apply/store-apply.vue
+++ b/small-program/pages/store-apply/store-apply.vue
@@ -3,13 +3,19 @@
 		<view class="top-gradient"></view>
 
 		<view class="process-wrap">
-			<view class="process-step" :class="{ active: currentStep === 1 }" @tap="currentStep = 1">
-				<view class="step-dot"></view>
+			<view class="process-step" :class="{ active: currentStep === 1, done: currentStep > 1 }" @tap="currentStep = 1">
+				<view class="step-dot" :class="{ 'step-dot--done': currentStep > 1 }">
+					<view v-if="currentStep === 1" class="step-dot__inner"></view>
+					<u-icon v-else name="checkmark" color="#ffffff" size="14"></u-icon>
+				</view>
 				<text>闂ㄥ簵淇℃伅</text>
 			</view>
 			<view class="process-line"></view>
-			<view class="process-step" :class="{ active: currentStep === 2 }" @tap="currentStep = 2">
-				<view class="step-dot step-index">2</view>
+			<view class="process-step" :class="{ active: currentStep === 2, done: currentStep > 2 }" @tap="currentStep = 2">
+				<view class="step-dot" :class="{ 'step-dot--inactive': currentStep !== 2 }">
+					<view v-if="currentStep === 2" class="step-dot__inner"></view>
+					<text v-else class="step-dot__index">2</text>
+				</view>
 				<text>涓讳綋璧勮川</text>
 			</view>
 		</view>
@@ -61,15 +67,14 @@
 			<view class="form-group phone-group">
 				<view class="label-row"><text class="label">鑱旂郴浜虹數璇�</text><text class="required">*</text></view>
 				<view class="input-with-icon">
-					<input class="text-input" type="number" maxlength="11" v-model="form.linkPhone" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" placeholder-style="color: #c1c7d0;" />
-					<view class="clear-icon"></view>
+					<input class="text-input" type="number" maxlength="11" :value="form.linkPhone" @input="handleLinkPhoneInput" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" placeholder-style="color: #c1c7d0;" />
 				</view>
 			</view>
 			<view class="divider"></view>
 
 			<view class="form-group">
 				<view class="label-row"><text class="label">鑱旂郴浜鸿韩浠借瘉鍙�</text><text class="required">*</text></view>
-				<input class="text-input" type="idcard" maxlength="18" v-model="form.idcard" placeholder="璇疯緭鍏ヨ仈绯讳汉韬唤璇佸彿" placeholder-style="color: #c1c7d0;" />
+				<input class="text-input" type="idcard" maxlength="18" :value="form.idcard" @input="handleIdcardInput" placeholder="璇疯緭鍏ヨ仈绯讳汉韬唤璇佸彿" placeholder-style="color: #c1c7d0;" />
 			</view>
 			<view class="divider"></view>
 
@@ -261,11 +266,11 @@
 				<image class="agree-icon" :src="agreed ? '/static/icon/ic_accept_sel@2x.png' : '/static/icon/ic_accept@2x.png'" mode="aspectFit" @tap="agreed = !agreed"></image>
 				<view class="agreement-text-wrap">
 					<text class="agreement-text">鎴戝凡闃呰骞跺悓鎰�</text>
-					<text class="agreement-link" @click="goToService(5)">銆婇闄╂壙璇恒��</text>
+					<text class="agreement-link" @click="goToService(6)">銆婇闄╂壙璇恒��</text>
 					<text class="agreement-text">銆�</text>
-					<text class="agreement-link" @click="goToService(6)">銆婅鏉庡瘎瀛橀』鐭ャ��</text>
+					<text class="agreement-link" @click="goToService(7)">銆婅鏉庡瘎瀛橀』鐭ャ��</text>
 					<text class="agreement-text">鍙�</text>
-					<text class="agreement-link" @click="goToService(7)">銆婁唬鐞嗙偣鍚堜綔鍗忚銆�</text>
+					<text class="agreement-link" @click="goToService(8)">銆婁唬鐞嗙偣鍚堜綔鍗忚銆�</text>
 				</view>
 			</view>
 		</view>
@@ -342,7 +347,9 @@
 				idCardImages: [],
 				permitImages: [],
 				laborContractImages: [],
-				socialSecurityImages: []
+				socialSecurityImages: [],
+				linkPhoneTimer: null,
+				idcardTimer: null
 			}
 		},
 		onLoad() {
@@ -351,6 +358,18 @@
 			this.getMyShopData()
 		},
 		methods: {
+			handleLinkPhoneInput(e) {
+				if (this.linkPhoneTimer) clearTimeout(this.linkPhoneTimer)
+				this.linkPhoneTimer = setTimeout(() => {
+					this.form.linkPhone = e.detail.value
+				}, 100)
+			},
+			handleIdcardInput(e) {
+				if (this.idcardTimer) clearTimeout(this.idcardTimer)
+				this.idcardTimer = setTimeout(() => {
+					this.form.idcard = e.detail.value
+				}, 100)
+			},
 			goToStep2() {
 				if (!this.form.name) {
 					uni.showToast({ title: '璇疯緭鍏ラ棬搴楀悕绉�', icon: 'none' })
@@ -372,8 +391,17 @@
 					uni.showToast({ title: '璇疯緭鍏ヨ仈绯讳汉鐢佃瘽', icon: 'none' })
 					return
 				}
+				const mobileRegex = /^1\d{10}$/
+				if (!mobileRegex.test(this.form.linkPhone)) {
+					uni.showToast({ title: '璇疯緭鍏ユ纭殑鎵嬫満鍙�', icon: 'none' })
+					return
+				}
 				if (!this.form.idcard) {
 					uni.showToast({ title: '璇疯緭鍏ヨ仈绯讳汉韬唤璇佸彿', icon: 'none' })
+					return
+				}
+				if (this.form.idcard.length !== 18) {
+					uni.showToast({ title: '璇疯緭鍏�18浣嶈韩浠借瘉鍙�', icon: 'none' })
 					return
 				}
 				if (!this.form.storeFrontImgs || this.form.storeFrontImgs.length === 0) {
@@ -426,6 +454,12 @@
 						uni.showToast({ title: '璇疯緭鍏ユ硶浜烘墜鏈哄彿', icon: 'none' })
 						return
 					}
+					const mobileRegex = /^1\d{10}$/
+					const landlineRegex = /^\d{3,4}-?\d{7,8}$/
+					if (!mobileRegex.test(this.form.legalPersonPhone) && !landlineRegex.test(this.form.legalPersonPhone)) {
+						uni.showToast({ title: '璇疯緭鍏ユ纭殑鎵嬫満鍙锋垨鍥哄畾鐢佃瘽', icon: 'none' })
+						return
+					}
 					if (!this.form.aliAccount) {
 						uni.showToast({ title: '璇疯緭鍏ヤ紒涓氭敮浠樺疂璐﹀彿', icon: 'none' })
 						return
@@ -436,6 +470,10 @@
 					}
 					if (!this.form.legalPersonCard) {
 						uni.showToast({ title: '璇疯緭鍏ユ硶浜鸿韩浠借瘉鍙�', icon: 'none' })
+						return
+					}
+					if (!/^\d{18}$/.test(this.form.legalPersonCard)) {
+						uni.showToast({ title: '璇疯緭鍏�18浣嶈韩浠借瘉鍙�', icon: 'none' })
 						return
 					}
 					if (!this.form.idcardImg) {
@@ -564,7 +602,9 @@
 			},
 			confirmArea(e) {
 				this.form.areaId = e.value[e.value.length - 1].id
-				this.form.areaName = e.value[0].text + '/' + e.value[1].text + '/' + e.value[2].text
+				this.form.provinceName = e.value[0].text
+				this.form.cityName = e.value[1].text
+				this.form.areaName = e.value[2].text
 				this.showAreaPicker = false
 			},
 			chooseAddress() {
@@ -1015,24 +1055,46 @@
 
 	.process-step.active {
 		color: #222222;
+		font-weight: 600;
+	}
+
+	.process-step.done {
+		color: #10B2FA;
 	}
 
 	.step-dot {
-		width: 26rpx;
-		height: 26rpx;
+		width: 50rpx;
+		height: 50rpx;
 		border-radius: 50%;
-		background: #16b0fa;
+		background: #afe4fe;
 		margin-bottom: 14rpx;
-		border: 5rpx solid #a2e2ff;
-	}
-
-	.step-index {
-		background: #b9bdc6;
-		font-size: 18rpx;
-		color: #ffffff;
 		display: flex;
 		align-items: center;
 		justify-content: center;
+		box-sizing: border-box;
+
+		&__inner {
+			width: 26rpx;
+			height: 26rpx;
+			border-radius: 50%;
+			background: #13b2fc;
+			box-sizing: border-box;
+		}
+
+		&__index {
+			font-size: 30rpx;
+			font-weight: 400;
+			color: #ffffff;
+			line-height: 1;
+		}
+
+		&--inactive {
+			background: #8C939F;
+		}
+
+		&--done {
+			background: #10B2FA;
+		}
 	}
 
 	.process-line {
@@ -1120,7 +1182,6 @@
 
 	.text-input,
 	.select-row {
-		height: 54rpx;
 		margin-top: 14rpx;
 		font-weight: 400;
 		font-size: 30rpx;

--
Gitblit v1.9.3