From fa4c7baec36d58b4bdca66159ece743b5a45a9c8 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 11 六月 2026 10:15:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
app/pages/driver-certification/driver-certification.vue | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 101 insertions(+), 9 deletions(-)
diff --git a/app/pages/driver-certification/driver-certification.vue b/app/pages/driver-certification/driver-certification.vue
index 83d2ab5..e1966bc 100644
--- a/app/pages/driver-certification/driver-certification.vue
+++ b/app/pages/driver-certification/driver-certification.vue
@@ -95,7 +95,9 @@
<view class="driver-cert-card__upload-list">
<view class="driver-cert-card__upload-item" @click="handleUpload('idcardImg', 1)" style="height: 196rpx;">
<template v-if="previewImages.idcardImg">
- <image class="driver-cert-card__upload-img" :src="previewImages.idcardImg" mode="widthFix"></image>
+ <view class="driver-cert-card__upload-img">
+ <image style="height: 100%;" :src="previewImages.idcardImg" mode="heightFix"></image>
+ </view>
<view class="driver-cert-card__upload-remove" @click.stop="removeImage('idcardImg')">鍒犻櫎</view>
</template>
<template v-else>
@@ -105,7 +107,9 @@
</view>
<view class="driver-cert-card__upload-item" @click="handleUpload('idcardImgBack', 1)" style="height: 196rpx;">
<template v-if="previewImages.idcardImgBack">
- <image class="driver-cert-card__upload-img" :src="previewImages.idcardImgBack" mode="widthFix"></image>
+ <view class="driver-cert-card__upload-img">
+ <image style="height: 100%;" :src="previewImages.idcardImgBack" mode="heightFix"></image>
+ </view>
<view class="driver-cert-card__upload-remove" @click.stop="removeImage('idcardImgBack')">鍒犻櫎</view>
</template>
<template v-else>
@@ -184,7 +188,7 @@
</view>
</view>
- <view class="driver-cert-card__upload-block driver-cert-card__upload-block--stacked">
+ <view v-if="needLicense" class="driver-cert-card__upload-block driver-cert-card__upload-block--stacked">
<view class="driver-cert-card__upload-title-row">
<text class="driver-cert-card__label">椹鹃┒璇佺収鐗�</text>
<text class="driver-cert-card__required">*</text>
@@ -223,7 +227,12 @@
<view class="driver-cert-page__bottom-bar">
<view v-if="currentStep === 2" class="driver-cert-page__agreement" @click="isAgreed = !isAgreed">
<image class="driver-cert-page__agreement-icon" :src="isAgreed ? '/static/image/ic_accept_sel@2x.png' : '/static/image/ic_accept@2x.png'" mode="widthFix"></image>
- <text class="driver-cert-page__agreement-text">鎴戝凡闃呰骞跺悓鎰忋�婇闄╁0鏄庛�嬨�併�婅鏉庡瘎瀛樺憳椤荤煡銆嬪強銆婃湇鍔″崗璁��</text>
+ <text class="driver-cert-page__agreement-text">鎴戝凡闃呰骞跺悓鎰�</text>
+ <text class="driver-cert-page__agreement-link" @click.stop="openAgreement('errandRiskCommitment')">銆婇闄╂壙璇恒��</text>
+ <text class="driver-cert-page__agreement-text">銆�</text>
+ <text class="driver-cert-page__agreement-link" @click.stop="openAgreement('errandLuggageStorageNotice')">銆婅鏉庡瘎瀛橀』鐭ャ��</text>
+ <text class="driver-cert-page__agreement-text">鍙�</text>
+ <text class="driver-cert-page__agreement-link" @click.stop="openAgreement('errandServiceAgreement')">銆婃湇鍔″崗璁��</text>
</view>
<view class="driver-cert-page__actions" :class="{ 'driver-cert-page__actions--dual': currentStep === 2 }">
@@ -269,11 +278,20 @@
:minDate="datePickerMode === 'end' ? this.form.cardStartDate : 0"
@confirm="confirmDate"
@cancel="showDatePicker = false" />
+
+ <u-popup :show="showDriverCertPopup" mode="center" :mask-click="false" round="24">
+ <view class="driver-cert-notice">
+ <text class="driver-cert-notice__title">鍙告満璁よ瘉</text>
+ <text class="driver-cert-notice__content">瀹炲悕淇℃伅浠呯敤浜庡徃鏈轰粠涓氳祫璐ㄥ鏍搞�佸瘎瀛樿鍗曞饱绾︽牳楠屼笌璐︽埛瀹夊叏闃叉姢锛屾垜浠壙璇轰弗鏍间繚鎶ゆ偍鐨勯殣绉併�傛劅璋㈡偍鐨勪俊浠汇��</text>
+ <button class="driver-cert-notice__button" @click="acknowledgeDriverCertNotice">宸茬煡鏅�</button>
+ </view>
+ </u-popup>
</view>
</template>
<script>
import { mapState } from 'vuex'
+ import { chooseImageWithNotice } from '@/utils/utils'
export default {
data() {
return {
@@ -313,6 +331,7 @@
color: '',
carType: ''
},
+ needLicense: false,
showCarTypePicker: false,
carTypeList: [],
carTypeColumns: [],
@@ -334,18 +353,24 @@
otherImgUrls: []
},
isAgreed: false,
- imgPrefix: ''
+ imgPrefix: '',
+ showDriverCertPopup: false
}
},
computed: {
...mapState(['userInfo'])
},
onLoad() {
+ this.showDriverCertPopup = this.userInfo.auditStatus == 99 && !uni.getStorageSync('driver_cert_notice_agreed')
this.getAreaList()
this.getCategoryList()
this.getVerifyDetail()
},
methods: {
+ acknowledgeDriverCertNotice() {
+ uni.setStorageSync('driver_cert_notice_agreed', true)
+ this.showDriverCertPopup = false
+ },
getMaritalStatusText(value) {
if (!value && value !== 0) return '璇烽�夋嫨'
const item = this.maritalOptions.find(option => option.value === String(value))
@@ -371,6 +396,10 @@
this.vehicleForm.plateNumber = res.data.carCode || ''
this.vehicleForm.carType = res.data.carType || ''
this.vehicleForm.color = res.data.carColor || ''
+ if (this.carTypeList.length > 0) {
+ const selectedCarType = this.carTypeList.find(item => item.id === res.data.carType)
+ this.needLicense = selectedCarType && selectedCarType.otherField === 1
+ }
this.previewImages.idcardImg = res.data.idcardImg ? res.data.imgPrefix + res.data.idcardImg : ''
this.previewImages.idcardImgBack = res.data.idcardImgBack ? res.data.imgPrefix + res.data.idcardImgBack : ''
this.form.carImgUrls = (res.data.carImgList || []).map(item => item.fileurl)
@@ -395,7 +424,7 @@
uni.showToast({ title: `鏈�澶氫笂浼�${maxCount}寮燻, icon: 'none' })
return
}
- uni.chooseImage({
+ chooseImageWithNotice({
count: maxCount,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
@@ -405,7 +434,7 @@
const tempFilePaths = allTempPaths.slice(0, remaining)
this.uploadFiles(field, tempFilePaths, maxCount)
}
- })
+ }).catch(() => {})
},
uploadFiles(field, tempFilePaths, maxCount) {
const uploadPath = this.uploadPaths[field]
@@ -485,6 +514,10 @@
text: item.name
}
})]
+ if (this.vehicleForm.carType) {
+ const selectedCarType = this.carTypeList.find(item => item.id === this.vehicleForm.carType)
+ this.needLicense = selectedCarType && selectedCarType.otherField === 1
+ }
}
})
},
@@ -496,6 +529,9 @@
confirmCarType(e) {
const { id, text } = e.value[0]
this.vehicleForm.carType = id
+ const selectedCarType = this.carTypeList.find(item => item.id === id)
+ console.log(selectedCarType)
+ this.needLicense = selectedCarType && selectedCarType.otherField === '1'
this.showCarTypePicker = false
},
openDatePicker(mode) {
@@ -652,7 +688,7 @@
uni.showToast({ title: '璇蜂笂浼犺溅杈嗙収鐗�', icon: 'none' })
return false
}
- if (this.form.licenseImgUrls.length === 0) {
+ if (this.needLicense && this.form.licenseImgUrls.length === 0) {
uni.showToast({ title: '璇蜂笂浼犻┚椹惰瘉鐓х墖', icon: 'none' })
return false
}
@@ -689,6 +725,11 @@
uni.pageScrollTo({
scrollTop: 0,
duration: 0
+ })
+ },
+ openAgreement(type) {
+ uni.navigateTo({
+ url: '/pages/agreement/agreement?type=' + type
})
}
}
@@ -864,6 +905,12 @@
line-height: 1.6;
color: #98a0ad;
}
+
+ &__agreement-link {
+ font-size: 22rpx;
+ line-height: 1.6;
+ color: #106EFA;
+ }
}
.driver-cert-card {
@@ -1003,7 +1050,12 @@
&__upload-img {
width: 100%;
+ height: 100%;
border-radius: 8rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
}
&__upload-remove {
@@ -1028,4 +1080,44 @@
color: #b7bdc7;
}
}
-</style>
\ No newline at end of file
+
+ .driver-cert-notice {
+ width: 620rpx;
+ padding: 48rpx 36rpx 36rpx;
+ background: #ffffff;
+ border-radius: 24rpx;
+ box-sizing: border-box;
+
+ &__title {
+ display: block;
+ text-align: center;
+ font-size: 34rpx;
+ font-weight: 600;
+ color: #222222;
+ }
+
+ &__content {
+ display: block;
+ margin-top: 28rpx;
+ font-size: 28rpx;
+ line-height: 1.7;
+ color: #555555;
+ }
+
+ &__button {
+ margin-top: 40rpx;
+ width: 100%;
+ height: 88rpx;
+ line-height: 88rpx;
+ border-radius: 44rpx;
+ background: #106efa;
+ font-size: 28rpx;
+ color: #ffffff;
+ padding: 0;
+
+ &::after {
+ border: 0;
+ }
+ }
+ }
+</style>
--
Gitblit v1.9.3