| | |
| | | |
| | | <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> |
| | |
| | | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | laborContractImgs: [], |
| | | socialSecurityImgs: [], |
| | | legalPersonCard: '', |
| | | legalPersonCardFront: '', |
| | | legalPersonCardBack: '', |
| | | legalPersonName: '', |
| | | legalPersonPhone: '', |
| | | aliAccount: '', |
| | |
| | | businessImgUrl:'', |
| | | idcardImgUrl: '', |
| | | idcardImgBackUrl: '', |
| | | legalPersonCardFrontUrl: '', |
| | | legalPersonCardBackUrl: '', |
| | | previewMode: 'filled', |
| | | imgPrefix: '', |
| | | currentStep: 1, |
| | |
| | | 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) { |
| | |
| | | return |
| | | } |
| | | if (!this.form.storeInteriorImgs || this.form.storeInteriorImgs.length === 0) { |
| | | uni.showToast({ title: '请上传门店内部招牌', icon: 'none' }) |
| | | uni.showToast({ title: '请上传门店内部照片', icon: 'none' }) |
| | | return |
| | | } |
| | | this.currentStep = 2 |
| | |
| | | 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 |
| | |
| | | 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 |
| | | } |
| | |
| | | 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' }) |
| | |
| | | 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 })) |
| | |
| | | this.form.socialSecurityImgs = data.socialSecurityImgs |
| | | } |
| | | this.form.legalPersonCard = data.legalPersonCard || '' |
| | | this.form.legalPersonCardBack = data.legalPersonCardBack || '' |
| | | this.form.businessImg = data.businessImg || '' |
| | | } |
| | | } catch (error) { |
| | |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | .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 { |
| | |
| | | |
| | | .text-input, |
| | | .select-row { |
| | | height: 54rpx; |
| | | margin-top: 14rpx; |
| | | font-weight: 400; |
| | | font-size: 30rpx; |