doum
2026-04-29 59b1f0e9967902aa10f5e017d5a0bdfd1b60c9ea
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>
@@ -27,7 +33,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">
               <text class="select-text" :class="{ placeholder: !form.areaName }">{{ form.areaName || '请选择省市区' }}</text>
               <text class="select-text" :class="{ placeholder: !fullAreaName }">{{ fullAreaName || '请选择省市区' }}</text>
               <u-icon name="arrow-right" size="18" color="#9FA6B2"></u-icon>
            </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">
@@ -128,15 +134,21 @@
         <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: qualificationType === 'personal' }" @tap="switchQualification('personal')">个人</view>
               <view class="switch-pill" :class="{ active: qualificationType === 'company' }" @tap="switchQualification('company')">企业</view>
               <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>
         </view>
         <template v-if="qualificationType === 'personal'">
         <template v-if="form.companyType ===0">
            <view class="form-group compact-group">
               <view class="label-row"><text class="label">支付宝账号</text><text class="required">*</text></view>
               <input class="text-input" v-model="form.aliAccount" placeholder="请输入个人支付宝账号" placeholder-class="placeholder" />
            </view>
            <view class="divider"></view>
            <view class="form-group compact-group">
               <view class="label-row"><text class="label">支付宝姓名</text><text class="required">*</text></view>
               <input class="text-input" v-model="form.aliName" placeholder="请输入支付宝姓名" placeholder-class="placeholder" />
            </view>
            <view class="divider"></view>
@@ -147,12 +159,12 @@
               <view class="upload-grid double-upload-grid">
                  <view class="upload-box id-upload-box" @click="chooseIdCardFront">
                     <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="getFullPath(form.idcardImg)" mode="aspectFill"></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="chooseIdCardBack">
                     <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="getFullPath(form.idcardImgBack)" mode="aspectFill"></image>
                     <image v-else class="preview-image" :src="idcardImgBackUrl" mode="aspectFill"></image>
                     <text v-if="!form.idcardImgBack" class="upload-text">上传国徽面</text>
                  </view>
               </view>
@@ -197,10 +209,20 @@
               <input class="text-input" v-model="form.legalPersonName" placeholder="请输入法人姓名" placeholder-style="color: #c1c7d0;" />
            </view>
            <view class="divider"></view>
            <view class="form-group compact-group">
               <view class="label-row"><text class="label">法人手机号</text><text class="required">*</text></view>
               <input class="text-input" v-model="form.legalPersonPhone" placeholder="请输入法人姓名" placeholder-style="color: #c1c7d0;" />
            </view>
            <view class="divider"></view>
            <view class="form-group compact-group">
               <view class="label-row"><text class="label">企业支付宝账号</text><text class="required">*</text></view>
               <input class="text-input" v-model="form.aliAccount" placeholder="请输入企业支付宝账号" placeholder-style="color: #c1c7d0;" />
            </view>
            <view class="divider"></view>
            <view class="form-group compact-group">
               <view class="label-row"><text class="label">支付宝姓名</text><text class="required">*</text></view>
               <input class="text-input" v-model="form.aliName" placeholder="请输入支付宝姓名" placeholder-style="color: #c1c7d0;" />
            </view>
            <view class="divider"></view>
@@ -216,14 +238,14 @@
               </view>
               <view class="upload-grid double-upload-grid">
                  <view class="upload-box id-upload-box" @click="chooseLegalPersonCardFront">
                     <image v-if="!form.legalPersonCard" class="camera-icon" src="/static/icon/ic_camera@2x.png" mode="widthFix"></image>
                     <image v-else class="preview-image" :src="getFullPath(form.legalPersonCard)" mode="aspectFill"></image>
                     <text v-if="!form.legalPersonCard" 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="getFullPath(form.legalPersonCardBack)" 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>
@@ -235,12 +257,23 @@
               <view class="upload-grid">
                  <view class="upload-box license-upload-box" @click="chooseBusinessImage">
                     <image v-if="!form.businessImg" class="camera-icon" src="/static/icon/ic_camera@2x.png" mode="widthFix"></image>
                     <image v-else class="preview-image" :src="getFullPath(form.businessImg)" mode="aspectFill"></image>
                     <image v-else class="preview-image" :src="businessImgUrl" mode="aspectFill"></image>
                     <text v-if="!form.businessImg" class="upload-text">点击上传</text>
                  </view>
               </view>
            </view>
         </template>
         <view class="agreement-row">
            <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-text">、</text>
               <text class="agreement-link" @click="goToService(6)">《行李寄存须知》</text>
               <text class="agreement-text">及</text>
               <text class="agreement-link" @click="goToService(7)">《代理点合作协议》</text>
            </view>
         </view>
      </view>
      <view class="bottom-btn-wrap">
@@ -259,14 +292,22 @@
   import { mapState } from 'vuex'
   export default {
      computed: {
         ...mapState(['userInfo'])
         ...mapState(['userInfo']),
         fullAreaName() {
            const arr = [this.form.provinceName, this.form.cityName, this.form.areaName].filter(Boolean)
            return arr.join('/')
         }
      },
      data() {
         return {
            agreed:false,
            form: {
               telephone: '',
               companyType: 0,
               name: '',
               provinceName: '',
               cityName: '',
               areaName: '',
               areaId: '',
               longitude: '',
               latitude: '',
@@ -282,16 +323,18 @@
               laborContractImgs: [],
               socialSecurityImgs: [],
               legalPersonCard: '',
               legalPersonCardBack: '',
               legalPersonName: '',
               legalPersonPhone: '',
               aliAccount: '',
               aliName: '',
               businessImg: ''
            },
            businessImgUrl:'',
            idcardImgUrl: '',
            idcardImgBackUrl: '',
            previewMode: 'filled',
            imgPrefix: '',
            currentStep: 1,
            qualificationType: 'company',
            showAreaPicker: false,
            areaList: [],
            areaColumns: [],
@@ -303,7 +346,6 @@
            uploadedSocialSecurityImages: [],
            storeFrontImages: [],
            idCardImages: [],
            businessImages: [],
            permitImages: [],
            laborContractImages: [],
            socialSecurityImages: []
@@ -336,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) {
@@ -345,15 +396,16 @@
               return
            }
            if (!this.form.storeInteriorImgs || this.form.storeInteriorImgs.length === 0) {
               uni.showToast({ title: '请上传门店内部招牌', icon: 'none' })
               uni.showToast({ title: '请上传门店内部照片', icon: 'none' })
               return
            }
            this.currentStep = 2
         },
         switchQualification(type) {
            this.qualificationType = type
            this.form.companyType = type === 'personal' ? 0 : 1
         },
         goToService(type) {
            uni.navigateTo({
               url: '/pages/rich-text/rich-text?type='+type
            })
         },
         async submitApply() {
            if (this.form.companyType === 0) {
               if (!this.form.idcardImg) {
@@ -362,6 +414,14 @@
               }
               if (!this.form.idcardImgBack) {
                  uni.showToast({ title: '请上传身份证国徽面', icon: 'none' })
                  return
               }
               if (!this.form.aliAccount) {
                  uni.showToast({ title: '请输入个人支付宝账号', icon: 'none' })
                  return
               }
               if (!this.form.aliName) {
                  uni.showToast({ title: '请输入支付宝姓名', icon: 'none' })
                  return
               }
               if (!this.form.laborContractImgs || this.form.laborContractImgs.length === 0) {
@@ -377,15 +437,37 @@
                  uni.showToast({ title: '请输入法人姓名', icon: 'none' })
                  return
               }
               if (!this.form.legalPersonPhone) {
                  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
               }
               if (!this.form.aliName) {
                  uni.showToast({ title: '请输入支付宝姓名', icon: 'none' })
                  return
               }
               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) {
                  uni.showToast({ title: '请上传法人身份证人像面', icon: 'none' })
                  return
               }
               if (!this.form.legalPersonCardBack) {
               if (!this.form.idcardImgBack) {
                  uni.showToast({ title: '请上传法人身份证国徽面', icon: 'none' })
                  return
               }
@@ -393,6 +475,10 @@
                  uni.showToast({ title: '请上传营业执照', icon: 'none' })
                  return
               }
            }
            if (!this.agreed) {
               uni.showToast({ title: '请先阅读并同意协议', icon: 'none' })
               return
            }
            uni.showLoading({ title: '提交中...', mask: true })
            try {
@@ -403,7 +489,7 @@
                  setTimeout(() => {
                     uni.navigateBack()
                  }, 1500)
               } else {
               }else {
                  uni.showToast({ title: res.msg || '提交失败', icon: 'none' })
               }
            } catch (error) {
@@ -417,9 +503,12 @@
               if (res.code === 200 && res.data) {
                  const data = res.data
                  const imgPrefix = data.imgPrefix || ''
                  this.imgPrefix = data.imgPrefix || ''
                  this.form.name = data.name || ''
                  this.form.areaId = data.areaId || ''
                  this.form.provinceName = data.provinceName || ''
                  this.form.cityName = data.cityName || ''
                  this.form.areaName = data.areaName || ''
                  this.form.areaId = data.areaId || ''
                  this.form.address = data.address || ''
                  this.form.longitude = data.longitude || ''
                  this.form.latitude = data.latitude || ''
@@ -427,64 +516,44 @@
                  this.form.linkPhone = data.linkPhone || ''
                  this.form.idcard = data.idcard || ''
                  this.form.aliAccount = data.aliAccount || ''
                  this.form.aliName = data.aliName || ''
                  this.form.companyType = data.companyType || 0
                  this.form.telephone = data.telephone || this.userInfo.telephone || ''
                  this.form.legalPersonName = data.legalPersonName || ''
                  this.form.legalPersonPhone = data.legalPersonPhone || ''
                  this.qualificationType = data.companyType === 0 ? 'personal' : 'company'
                  this.businessImgUrl=data.businessImgUrl||''
                  this.idcardImgUrl=data.idcardImgUrl||''
                  this.idcardImgBackUrl=data.idcardImgBackUrl||''
                  this.qualificationType = data.companyType === 'personal' ? 'personal' : 'company'
                  if (data.storeFrontImgs) {
                     let storeFrontImgs = data.storeFrontImgs
                     if (typeof storeFrontImgs === 'string') {
                        storeFrontImgs = storeFrontImgs.split(',')
                     }
                     this.storeFrontImages = storeFrontImgs
                     this.uploadedImagesStoreFront = storeFrontImgs.map(url => ({ url: imgPrefix + url }))
                     this.form.storeFrontImgs = storeFrontImgs
                     this.storeFrontImages = data.storeFrontImgUrls
                     this.uploadedImagesStoreFront = data.storeFrontImgUrls.map(url => ({ url }))
                     this.form.storeFrontImgs = data.storeFrontImgs
                  }
                  if (data.storeInteriorImgs) {
                     let storeInteriorImgs = data.storeInteriorImgs
                     if (typeof storeInteriorImgs === 'string') {
                        storeInteriorImgs = storeInteriorImgs.split(',')
                     }
                     this.idCardImages = storeInteriorImgs
                     this.uploadedImagesIdCard = storeInteriorImgs.map(url => ({ url: imgPrefix + url }))
                     this.form.storeInteriorImgs = storeInteriorImgs
                     this.idCardImages = data.storeInteriorImgUrls
                     this.uploadedImagesIdCard = data.storeInteriorImgUrls.map(url => ({ url }))
                     this.form.storeInteriorImgs = data.storeInteriorImgs
                  }
                  if (data.otherMaterialImgs) {
                     let otherMaterialImgs = data.otherMaterialImgs
                     if (typeof otherMaterialImgs === 'string') {
                        otherMaterialImgs = otherMaterialImgs.split(',')
                     }
                     this.permitImages = otherMaterialImgs
                     this.uploadedImagesPermit = otherMaterialImgs.map(url => ({ url: imgPrefix + url }))
                     this.form.otherMaterialImgs = otherMaterialImgs
                     this.permitImages = data.otherMaterialImgUrls
                     this.uploadedImagesPermit = data.otherMaterialImgUrls.map(url => ({ url }))
                     this.form.otherMaterialImgs = data.otherMaterialImgs
                  }
                  this.form.idcardImg = data.idcardImg ? imgPrefix + data.idcardImg : ''
                  this.form.idcardImgBack = data.idcardImgBack ? imgPrefix + data.idcardImgBack : ''
                  this.form.idcardImg = data.idcardImg || ''
                  this.form.idcardImgBack = data.idcardImgBack || ''
                  if (data.laborContractImgs) {
                     let laborContractImgs = data.laborContractImgs
                     if (typeof laborContractImgs === 'string') {
                        laborContractImgs = laborContractImgs.split(',')
                     }
                     this.laborContractImages = laborContractImgs
                     this.uploadedLaborContractImages = laborContractImgs.map(url => ({ url: imgPrefix + url }))
                     this.form.laborContractImgs = laborContractImgs
                     this.laborContractImages = data.laborContractImgUrls
                     this.uploadedLaborContractImages = data.laborContractImgUrls.map(url => ({ url }))
                     this.form.laborContractImgs = data.laborContractImgs
                  }
                  if (data.socialSecurityImgs) {
                     let socialSecurityImgs = data.socialSecurityImgs
                     if (typeof socialSecurityImgs === 'string') {
                        socialSecurityImgs = socialSecurityImgs.split(',')
                     }
                     this.socialSecurityImages = socialSecurityImgs
                     this.uploadedSocialSecurityImages = socialSecurityImgs.map(url => ({ url: imgPrefix + url }))
                     this.form.socialSecurityImgs = socialSecurityImgs
                     this.socialSecurityImages = data.socialSecurityImgUrls
                     this.uploadedSocialSecurityImages = data.socialSecurityImgUrls.map(url => ({ url }))
                     this.form.socialSecurityImgs = data.socialSecurityImgs
                  }
                  this.form.legalPersonCard = data.legalPersonCard ? imgPrefix + data.legalPersonCard : ''
                  this.form.legalPersonCardBack = data.legalPersonCardBack ? imgPrefix + data.legalPersonCardBack : ''
                  this.form.businessImg = data.businessImg ? imgPrefix + data.businessImg : ''
                  if (data.businessImg) {
                     this.businessImages = [data.businessImg]
                  }
                  this.form.legalPersonCard = data.legalPersonCard || ''
                  this.form.businessImg = data.businessImg || ''
               }
            } catch (error) {
               console.log('获取店铺信息失败', error)
@@ -633,7 +702,7 @@
                     const fullPaths = uploadResults.map(item => item.url || item.path || item)
                     this.uploadedImagesStoreFront = [...this.uploadedImagesStoreFront, ...fullPaths.map(url => ({ url }))]
                     this.storeFrontImages = [...this.storeFrontImages, ...fullPaths]
                     this.form.storeFrontImgs = this.storeFrontImages.map(url => this.getShortPath(url))
                     this.form.storeFrontImgs= [...this.form.storeFrontImgs, ...uploadResults.map(item => item.imgaddr)]
                     uni.hideLoading()
                     uni.showToast({
                        title: '上传成功',
@@ -651,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) {
@@ -676,7 +745,7 @@
                     const fullPaths = uploadResults.map(item => item.url || item.path || item)
                     this.uploadedImagesIdCard = [...this.uploadedImagesIdCard, ...fullPaths.map(url => ({ url }))]
                     this.idCardImages = [...this.idCardImages, ...fullPaths]
                     this.form.storeInteriorImgs = this.idCardImages.map(url => this.getShortPath(url))
                     this.form.storeInteriorImgs= [...this.form.storeInteriorImgs, ...uploadResults.map(item => item.imgaddr)]
                     uni.hideLoading()
                     uni.showToast({
                        title: '上传成功',
@@ -694,18 +763,8 @@
            this.form.businessImg = this.businessImages.map(url => this.getShortPath(url)).join(',')
         },
         async chooseBusinessImage() {
            const maxCount = 3
            const currentCount = this.businessImages.length
            const remainingCount = maxCount - currentCount
            if (remainingCount <= 0) {
               uni.showToast({
                  title: `最多上传${maxCount}张图片`,
                  icon: 'none'
               })
               return
            }
            uni.chooseImage({
               count: remainingCount,
               count: 1,
               sizeType: ['compressed'],
               sourceType: ['album', 'camera'],
               success: async (res) => {
@@ -715,11 +774,10 @@
                     mask: true
                  })
                  try {
                     const uploadResults = await this.uploadFiles(tempFilePaths, maxCount)
                     const fullPaths = uploadResults.map(item => item.url || item.path || item)
                     this.uploadedImagesBusiness = [...this.uploadedImagesBusiness, ...fullPaths.map(url => ({ url }))]
                     this.businessImages = [...this.businessImages, ...fullPaths]
                     this.form.businessImg = this.businessImages.map(url => this.getShortPath(url)).join(',')
                     const uploadResults = await this.uploadFiles(tempFilePaths, 1)
                     this.form.businessImg = uploadResults[0].imgaddr
                     this.businessImgUrl = uploadResults[0].url
                     console.log("=======================",this.businessImgUrl)
                     uni.hideLoading()
                     uni.showToast({
                        title: '上传成功',
@@ -762,7 +820,7 @@
                     const fullPaths = uploadResults.map(item => item.url || item.path || item)
                     this.uploadedImagesPermit = [...this.uploadedImagesPermit, ...fullPaths.map(url => ({ url }))]
                     this.permitImages = [...this.permitImages, ...fullPaths]
                     this.form.otherMaterialImgs = this.permitImages.map(url => this.getShortPath(url))
                     this.form.otherMaterialImgs= [...this.form.otherMaterialImgs, ...uploadResults.map(item => item.imgaddr)]
                     uni.hideLoading()
                     uni.showToast({
                        title: '上传成功',
@@ -784,7 +842,8 @@
                  uni.showLoading({ title: '上传中...', mask: true })
                  try {
                     const uploadResults = await this.uploadFiles(tempFilePaths, 1)
                     this.form.idcardImg = this.getShortPath(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) {
@@ -803,7 +862,8 @@
                  uni.showLoading({ title: '上传中...', mask: true })
                  try {
                     const uploadResults = await this.uploadFiles(tempFilePaths, 1)
                     this.form.idcardImgBack = this.getShortPath(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) {
@@ -822,7 +882,8 @@
                  uni.showLoading({ title: '上传中...', mask: true })
                  try {
                     const uploadResults = await this.uploadFiles(tempFilePaths, 1)
                     this.form.legalPersonCard = this.getShortPath(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) {
@@ -841,7 +902,8 @@
                  uni.showLoading({ title: '上传中...', mask: true })
                  try {
                     const uploadResults = await this.uploadFiles(tempFilePaths, 1)
                     this.form.legalPersonCardBack = this.getShortPath(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) {
@@ -875,7 +937,7 @@
                     const fullPaths = uploadResults.map(item => item.url || item.path || item)
                     this.uploadedLaborContractImages = [...this.uploadedLaborContractImages, ...fullPaths.map(url => ({ url }))]
                     this.laborContractImages = [...this.laborContractImages, ...fullPaths]
                     this.form.laborContractImgs = this.laborContractImages.map(url => this.getShortPath(url))
                     this.form.laborContractImgs= [...this.form.laborContractImgs, ...uploadResults.map(item => item.imgaddr)]
                     uni.hideLoading()
                     uni.showToast({ title: '上传成功', icon: 'success' })
                  } catch (error) {
@@ -891,11 +953,10 @@
         },
         getShortPath(url) {
            if (!url) return ''
            const baseUrl = this.$baseUrl || ''
            if (url.startsWith('http')) {
               return url
               return url.replace(this.imgPrefix, '')
            }
            return url.replace(baseUrl, '')
            return url
         },
         getFullPath(url) {
            if (!url) return ''
@@ -924,7 +985,7 @@
                     const fullPaths = uploadResults.map(item => item.url || item.path || item)
                     this.uploadedSocialSecurityImages = [...this.uploadedSocialSecurityImages, ...fullPaths.map(url => ({ url }))]
                     this.socialSecurityImages = [...this.socialSecurityImages, ...fullPaths]
                     this.form.socialSecurityImgs = this.socialSecurityImages.map(url => this.getShortPath(url))
                     this.form.socialSecurityImgs= [...this.form.socialSecurityImgs, ...uploadResults.map(item => item.imgaddr)]
                     uni.hideLoading()
                     uni.showToast({ title: '上传成功', icon: 'success' })
                  } catch (error) {
@@ -982,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 {
@@ -1084,7 +1162,6 @@
   .text-input,
   .select-row {
      height: 54rpx;
      margin-top: 14rpx;
      font-weight: 400;
      font-size: 30rpx;
@@ -1269,7 +1346,33 @@
      color: #666666;
      margin-top: 12rpx;
   }
.agreement-row {
      margin-top: 60rpx;
      display: flex;
      align-items: flex-start;
   }
   .agree-icon {
      width: 34rpx;
      height: 34rpx;
      margin-top: 4rpx;
      flex-shrink: 0;
   }
   .agreement-text-wrap {
      margin-left: 14rpx;
      flex: 1;
      font-size: 24rpx;
      line-height: 1.8;
   }
   .agreement-text {
      color: #555555;
   }
   .agreement-link {
      color: #2E68C4;
   }
   .preview-image {
      width: 100%;
      height: 100%;