From 3f9032e92fdd383bfefc87a0bec9b242e1223851 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 09 六月 2026 17:08:44 +0800
Subject: [PATCH] 改bug
---
small-program/pages/store-apply/store-apply.vue | 77 +++++++++++++++++++++++++++++++-------
1 files changed, 62 insertions(+), 15 deletions(-)
diff --git a/small-program/pages/store-apply/store-apply.vue b/small-program/pages/store-apply/store-apply.vue
index f8d394e..25ea130 100644
--- a/small-program/pages/store-apply/store-apply.vue
+++ b/small-program/pages/store-apply/store-apply.vue
@@ -3,7 +3,7 @@
<view class="top-gradient"></view>
<view class="process-wrap">
- <view class="process-step" :class="{ active: currentStep === 1 }" @tap="currentStep = 1">
+ <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>
@@ -11,7 +11,7 @@
<text>闂ㄥ簵淇℃伅</text>
</view>
<view class="process-line"></view>
- <view class="process-step" :class="{ active: currentStep === 2 }" @tap="currentStep = 2">
+ <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>
@@ -32,7 +32,7 @@
<view class="form-group select-group">
<view class="label-row"><text class="label">鎵�鍦ㄥ煄甯�</text><text class="required">*</text></view>
- <view class="select-row" @click="showAreaPicker = true">
+ <view class="select-row" :class="{ disabled: isShopRejected }" @click="!isShopRejected && (showAreaPicker = true)">
<text class="select-text" :class="{ placeholder: !fullAreaName }">{{ fullAreaName || '璇烽�夋嫨鐪佸競鍖�' }}</text>
<u-icon name="arrow-right" size="18" color="#9FA6B2"></u-icon>
</view>
@@ -67,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" :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" :value="form.idcard" @input="handleIdcardInput" placeholder="璇疯緭鍏ヨ仈绯讳汉韬唤璇佸彿" placeholder-style="color: #c1c7d0;" />
</view>
<view class="divider"></view>
@@ -133,9 +132,9 @@
<view class="form-group subject-first-group">
<view class="label-row"><text class="label">闂ㄥ簵绫诲瀷</text><text class="required">*</text></view>
- <view class="switch-row type-switch-row">
- <view class="switch-pill" :class="{ active: form.companyType ===0 }" @tap="form.companyType =0">涓汉</view>
- <view class="switch-pill" :class="{ active: form.companyType ===1}" @tap="form.companyType =1">浼佷笟</view>
+ <view class="switch-row type-switch-row" :class="{ disabled: isShopRejected }">
+ <view class="switch-pill" :class="{ active: form.companyType ===0 }" @tap="!isShopRejected && (form.companyType =0)">涓汉</view>
+ <view class="switch-pill" :class="{ active: form.companyType ===1}" @tap="!isShopRejected && (form.companyType =1)">浼佷笟</view>
</view>
</view>
@@ -267,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>
@@ -296,6 +295,9 @@
fullAreaName() {
const arr = [this.form.provinceName, this.form.cityName, this.form.areaName].filter(Boolean)
return arr.join('/')
+ },
+ isShopRejected() {
+ return this.userInfo && this.userInfo.shopAuditStatus === 5
}
},
data() {
@@ -348,7 +350,9 @@
idCardImages: [],
permitImages: [],
laborContractImages: [],
- socialSecurityImages: []
+ socialSecurityImages: [],
+ linkPhoneTimer: null,
+ idcardTimer: null
}
},
onLoad() {
@@ -357,6 +361,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' })
@@ -378,8 +394,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) {
@@ -432,6 +457,11 @@
uni.showToast({ title: '璇疯緭鍏ユ硶浜烘墜鏈哄彿', icon: 'none' })
return
}
+ const mobileRegex = /^1\d{10}$/
+ if (!mobileRegex.test(this.form.legalPersonPhone)) {
+ uni.showToast({ title: '璇疯緭鍏�1寮�澶寸殑11浣嶆硶浜烘墜鏈哄彿', icon: 'none' })
+ return
+ }
if (!this.form.aliAccount) {
uni.showToast({ title: '璇疯緭鍏ヤ紒涓氭敮浠樺疂璐﹀彿', icon: 'none' })
return
@@ -442,6 +472,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) {
@@ -471,7 +505,7 @@
uni.navigateBack()
}, 1500)
}else {
- uni.showToast({ title: res.msg || '鎻愪氦澶辫触', icon: 'none' })
+ uni.showToast({ title: res.message || '鎻愪氦澶辫触', icon: 'none' })
}
} catch (error) {
uni.hideLoading()
@@ -570,7 +604,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() {
@@ -1021,6 +1057,11 @@
.process-step.active {
color: #222222;
+ font-weight: 600;
+ }
+
+ .process-step.done {
+ color: #10B2FA;
}
.step-dot {
@@ -1228,6 +1269,12 @@
.type-switch-row {
margin-top: 32rpx;
}
+
+ .type-switch-row.disabled,
+ .select-row.disabled {
+ opacity: 0.5;
+ pointer-events: none;
+ }
.switch-pill {
width: 208rpx;
--
Gitblit v1.9.3