From a59ff44b2eaa7020f0529632d9ec064c4dc38e27 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 28 四月 2026 22:08:46 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun

---
 small-program/pages/store-apply/store-apply.vue |  108 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 70 insertions(+), 38 deletions(-)

diff --git a/small-program/pages/store-apply/store-apply.vue b/small-program/pages/store-apply/store-apply.vue
index aa0aec8..0e07eb8 100644
--- a/small-program/pages/store-apply/store-apply.vue
+++ b/small-program/pages/store-apply/store-apply.vue
@@ -4,12 +4,18 @@
 
 		<view class="process-wrap">
 			<view class="process-step" :class="{ active: currentStep === 1 }" @tap="currentStep = 1">
-				<view class="step-dot"></view>
+				<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="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>
@@ -91,7 +97,7 @@
 
 			<view class="upload-section">
 				<view class="upload-title-row between-row">
-					<view class="label-row"><text class="label">闂ㄥ簵鍐呴儴鎷涚墝</text><text class="required">*</text></view>
+					<view class="label-row"><text class="label">闂ㄥ簵鍐呴儴鐓х墖</text><text class="required">*</text></view>
 					<text class="upload-tip">鏈�澶氫笂浼�3寮犵収鐗�</text>
 				</view>
 				<view class="upload-grid">
@@ -232,14 +238,14 @@
 					</view>
 					<view class="upload-grid double-upload-grid">
 						<view class="upload-box id-upload-box" @click="chooseLegalPersonCardFront">
-							<image v-if="!form.legalPersonCardFront" class="camera-icon" src="/static/icon/ic_camera@2x.png" mode="widthFix"></image>
-							<image v-else class="preview-image" :src=" legalPersonCardFrontUrl" mode="aspectFill"></image>
-							<text v-if="!form.legalPersonCardFront" class="upload-text">涓婁紶浜哄儚闈�</text>
+							<image v-if="!form.idcardImg" class="camera-icon" src="/static/icon/ic_camera@2x.png" mode="widthFix"></image>
+							<image v-else class="preview-image" :src="idcardImgUrl" mode="aspectFill"></image>
+							<text v-if="!form.idcardImg" class="upload-text">涓婁紶浜哄儚闈�</text>
 						</view>
 						<view class="upload-box id-upload-box" @click="chooseLegalPersonCardBack">
-							<image v-if="!form.legalPersonCardBack" class="camera-icon" src="/static/icon/ic_camera@2x.png" mode="widthFix"></image>
-							<image v-else class="preview-image" :src="legalPersonCardBackUrl" mode="aspectFill"></image>
-							<text v-if="!form.legalPersonCardBack" class="upload-text">涓婁紶鍥藉窘闈�</text>
+							<image v-if="!form.idcardImgBack" class="camera-icon" src="/static/icon/ic_camera@2x.png" mode="widthFix"></image>
+							<image v-else class="preview-image" :src="idcardImgBackUrl" mode="aspectFill"></image>
+							<text v-if="!form.idcardImgBack" class="upload-text">涓婁紶鍥藉窘闈�</text>
 						</view>
 					</view>
 				</view>
@@ -317,8 +323,6 @@
 					laborContractImgs: [],
 					socialSecurityImgs: [],
 					legalPersonCard: '',
-					legalPersonCardFront: '',
-					legalPersonCardBack: '',
 					legalPersonName: '',
 					legalPersonPhone: '',
 					aliAccount: '',
@@ -328,8 +332,6 @@
 				businessImgUrl:'',
 				idcardImgUrl: '',
 				idcardImgBackUrl: '',
-				legalPersonCardFrontUrl: '',
-				legalPersonCardBackUrl: '',
 				previewMode: 'filled',
 				imgPrefix: '',
 				currentStep: 1,
@@ -376,8 +378,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 (!/^\d{18}$/.test(this.form.idcard)) {
+					uni.showToast({ title: '璇疯緭鍏�18浣嶈韩浠借瘉鍙�', icon: 'none' })
 					return
 				}
 				if (!this.form.storeFrontImgs || this.form.storeFrontImgs.length === 0) {
@@ -385,7 +396,7 @@
 					return
 				}
 				if (!this.form.storeInteriorImgs || this.form.storeInteriorImgs.length === 0) {
-					uni.showToast({ title: '璇蜂笂浼犻棬搴楀唴閮ㄦ嫑鐗�', icon: 'none' })
+					uni.showToast({ title: '璇蜂笂浼犻棬搴楀唴閮ㄧ収鐗�', icon: 'none' })
 					return
 				}
 				this.currentStep = 2
@@ -430,6 +441,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
@@ -442,11 +459,15 @@
 						uni.showToast({ title: '璇疯緭鍏ユ硶浜鸿韩浠借瘉鍙�', icon: 'none' })
 						return
 					}
-					if (!this.form.legalPersonCardFront) {
+					if (!/^\d{18}$/.test(this.form.legalPersonCard)) {
+						uni.showToast({ title: '璇疯緭鍏�18浣嶈韩浠借瘉鍙�', icon: 'none' })
+						return
+					}
+					if (!this.form.idcardImg) {
 						uni.showToast({ title: '璇蜂笂浼犳硶浜鸿韩浠借瘉浜哄儚闈�', icon: 'none' })
 						return
 					}
-					if (!this.form.legalPersonCardBack) {
+					if (!this.form.idcardImgBack) {
 						uni.showToast({ title: '璇蜂笂浼犳硶浜鸿韩浠借瘉鍥藉窘闈�', icon: 'none' })
 						return
 					}
@@ -454,8 +475,6 @@
 						uni.showToast({ title: '璇蜂笂浼犺惀涓氭墽鐓�', icon: 'none' })
 						return
 					}
-					this.form.idcardImgBack = this.form.legalPersonCardBack
-					this.form.idcardImg = this.form.legalPersonCardFront
 				}
 				if (!this.agreed) {
 					uni.showToast({ title: '璇峰厛闃呰骞跺悓鎰忓崗璁�', icon: 'none' })
@@ -505,9 +524,7 @@
 						this.businessImgUrl=data.businessImgUrl||''
 						this.idcardImgUrl=data.idcardImgUrl||''
 						this.idcardImgBackUrl=data.idcardImgBackUrl||''
-						this.legalPersonCardFrontUrl=data.idcardImgUrl||''
-						this.legalPersonCardBackUrl=data.idcardImgBackUrl||''
-						this.qualificationType = data.companyType === 0 ? 'personal' : 'company'
+						this.qualificationType = data.companyType === 'personal' ? 'personal' : 'company'
 						if (data.storeFrontImgs) {
 							this.storeFrontImages = data.storeFrontImgUrls
 							this.uploadedImagesStoreFront = data.storeFrontImgUrls.map(url => ({ url }))
@@ -536,7 +553,6 @@
 							this.form.socialSecurityImgs = data.socialSecurityImgs
 						}
 						this.form.legalPersonCard = data.legalPersonCard || ''
-						this.form.legalPersonCardBack = data.legalPersonCardBack || ''
 						this.form.businessImg = data.businessImg || ''
 					}
 				} catch (error) {
@@ -704,7 +720,7 @@
 				this.form.storeInteriorImgs = this.idCardImages.map(url => this.getShortPath(url))
 			},
 			async chooseIdCardImage() {
-				const maxCount = 2
+				const maxCount = 3
 				const currentCount = this.idCardImages.length
 				const remainingCount = maxCount - currentCount
 				if (remainingCount <= 0) {
@@ -866,8 +882,8 @@
 						uni.showLoading({ title: '涓婁紶涓�...', mask: true })
 						try {
 							const uploadResults = await this.uploadFiles(tempFilePaths, 1)
-							this.form.legalPersonCardFront = uploadResults[0].imgaddr || uploadResults[0].path || uploadResults[0]
-							this.legalPersonCardFrontUrl = uploadResults[0].url || uploadResults[0].path || uploadResults[0]
+							this.form.idcardImg = uploadResults[0].imgaddr || uploadResults[0].path || uploadResults[0]
+							this.idcardImgUrl = uploadResults[0].url || uploadResults[0].path || uploadResults[0]
 							uni.hideLoading()
 							uni.showToast({ title: '涓婁紶鎴愬姛', icon: 'success' })
 						} catch (error) {
@@ -886,8 +902,8 @@
 						uni.showLoading({ title: '涓婁紶涓�...', mask: true })
 						try {
 							const uploadResults = await this.uploadFiles(tempFilePaths, 1)
-							this.form.legalPersonCardBack = uploadResults[0].imgaddr || uploadResults[0].path || uploadResults[0]
-							this.legalPersonCardBackUrl = uploadResults[0].url || uploadResults[0].path || uploadResults[0]
+							this.form.idcardImgBack = uploadResults[0].imgaddr || uploadResults[0].path || uploadResults[0]
+							this.idcardImgBackUrl = uploadResults[0].url || uploadResults[0].path || uploadResults[0]
 							uni.hideLoading()
 							uni.showToast({ title: '涓婁紶鎴愬姛', icon: 'success' })
 						} catch (error) {
@@ -1027,21 +1043,38 @@
 	}
 
 	.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 {
@@ -1129,7 +1162,6 @@
 
 	.text-input,
 	.select-row {
-		height: 54rpx;
 		margin-top: 14rpx;
 		font-weight: 400;
 		font-size: 30rpx;

--
Gitblit v1.9.3