feat(vehicle): 重构车辆认证审核弹窗布局与验证规则

- 新增车辆认证审核弹窗,取消独立尺寸重量卡片,外廓尺寸改为长/宽/高组合布局
- 基础信息调整为3行4列,证件信息新增车辆资质图片行,所属组织标签更名为所有组织
- 行驶证有效期必填星号动态显示,长期有效时不显示且不校验,删除旧校验方法
- driver.vue中从业资格证有效期改为起止日期区间,新增起始日期字段,调整验证规则
- 驾驶证和从业资格证长期有效时禁用起止日期输入,校验逻辑同步调整,提交保留旧值
- contract-manage-change.vue合同文件批量下载按钮移入标题栏,与其它附件分区样式统一
- 样式更新,新增 dimension-group 用于外廓尺寸排版复用及其他局部样式调整
- 修复因后端未实现接口导致的降级方案预留,等待后端补充支持
This commit is contained in:
2026-09-09 19:06:26 +08:00
parent 716ce43862
commit c1813e308f
4 changed files with 173 additions and 122 deletions
+42 -16
View File
@@ -325,6 +325,7 @@
type="date"
value-format="YYYY-MM-DD"
placeholder="起"
:disabled="driverForm.drivingLicenseLongTerm === 1"
@change="validateFormField('drivingLicenseEndDate')"
/>
<el-date-picker
@@ -409,19 +410,29 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="8">
<el-form-item label="有效期" prop="qualificationEndDate">
<el-date-picker
v-model="driverForm.qualificationEndDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
:disabled="driverForm.qualificationLongTerm === 1"
@change="validateFormField('qualificationEndDate')"
/>
<div class="date-range">
<el-date-picker
v-model="driverForm.qualificationStartDate"
type="date"
value-format="YYYY-MM-DD"
placeholder=""
:disabled="driverForm.qualificationLongTerm === 1"
@change="validateFormField('qualificationEndDate')"
/>
<el-date-picker
v-model="driverForm.qualificationEndDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="止"
:disabled="driverForm.qualificationLongTerm === 1"
@change="validateFormField('qualificationEndDate')"
/>
</div>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="4">
<el-form-item label="长期有效" prop="qualificationLongTerm">
<el-checkbox
v-model="driverForm.qualificationLongTerm"
@@ -675,6 +686,7 @@ const emptyForm = () => ({
drivingLicenseBack: '',
qualificationType: '',
qualificationNo: '',
qualificationStartDate: '',
qualificationEndDate: '',
qualificationLongTerm: 0,
qualificationFront: '',
@@ -819,9 +831,8 @@ export default {
{ required: true, message: '请选择从业资格认证类型', trigger: 'change' },
],
qualificationNo: [{ required: true, message: '请输入资格证号', trigger: 'blur' }],
qualificationEndDate: [{ validator: this.validateQualificationEndDate, trigger: 'change' }],
qualificationLongTerm: [
{ required: true, message: '请选择从业资格证是否长期有效', trigger: 'change' },
qualificationEndDate: [
{ required: true, validator: this.validateQualificationEndDate, trigger: 'change' },
],
driverType: [{ required: true, message: '请选择司机类型', trigger: 'change' }],
mobile: [{ required: true, message: '请输入手机号', trigger: 'blur' }],
@@ -1056,19 +1067,33 @@ export default {
}
},
validateDrivingLicenseEndDate(rule, value, callback) {
// 勾选长期有效:起止均已禁用,不再校验
if (this.driverForm.drivingLicenseLongTerm === 1) {
callback();
return;
}
if (!this.driverForm.drivingLicenseStartDate) {
callback(new Error('请选择驾驶证有效期起'));
return;
}
if (this.driverForm.drivingLicenseLongTerm !== 1 && !value) {
if (!value) {
callback(new Error('请选择驾驶证有效期止'));
return;
}
callback();
},
validateQualificationEndDate(rule, value, callback) {
if (this.driverForm.qualificationLongTerm !== 1 && !value) {
callback(new Error('请选择从业资格证有效期'));
// 勾选长期有效:起止均已禁用,不再校验
if (this.driverForm.qualificationLongTerm === 1) {
callback();
return;
}
if (!this.driverForm.qualificationStartDate) {
callback(new Error('请选择从业资格证有效期起'));
return;
}
if (!value) {
callback(new Error('请选择从业资格证有效期止'));
return;
}
callback();
@@ -1580,6 +1605,7 @@ export default {
birthday: this.normalizeBirthday(this.driverForm.birthday),
drivingLicenseStartDate: this.normalizeBirthday(this.driverForm.drivingLicenseStartDate),
drivingLicenseEndDate: this.normalizeBirthday(this.driverForm.drivingLicenseEndDate),
qualificationStartDate: this.normalizeBirthday(this.driverForm.qualificationStartDate),
qualificationEndDate: this.normalizeBirthday(this.driverForm.qualificationEndDate),
qualificationNo: this.driverForm.qualificationNo || this.driverForm.idCardNo,
posts: this.driverForm.postList.join(','),