doum
2026-04-29 33c2164b1785a4b3c128f71ff577a989e2d91bdc
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>
@@ -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" 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>
@@ -348,7 +347,9 @@
            idCardImages: [],
            permitImages: [],
            laborContractImages: [],
            socialSecurityImages: []
            socialSecurityImages: [],
            linkPhoneTimer: null,
            idcardTimer: null
         }
      },
      onLoad() {
@@ -357,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' })
@@ -387,7 +400,7 @@
               uni.showToast({ title: '请输入联系人身份证号', icon: 'none' })
               return
            }
            if (!/^\d{18}$/.test(this.form.idcard)) {
            if (this.form.idcard.length !== 18) {
               uni.showToast({ title: '请输入18位身份证号', icon: 'none' })
               return
            }
@@ -589,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() {
@@ -1040,6 +1055,11 @@
   .process-step.active {
      color: #222222;
      font-weight: 600;
   }
   .process-step.done {
      color: #10B2FA;
   }
   .step-dot {