This commit is contained in:
2026-07-27 17:19:36 +08:00
parent e50d1b8fda
commit 1c7532e0de
132 changed files with 7066 additions and 1241 deletions

View File

@@ -27,7 +27,11 @@
>批量删除
</el-button>
</div>
<el-radio-group v-model="query.expireStatus" class="vehicle-stat" @change="handleExpireChange">
<el-radio-group
v-model="query.expireStatus"
class="vehicle-stat"
@change="handleExpireChange"
>
<el-radio-button label="">全部{{ expiryStat.total }}</el-radio-button>
<el-radio-button label="within30">30天内到期{{ expiryStat.within30 }}</el-radio-button>
<el-radio-button label="expired">已到期{{ expiryStat.expired }}</el-radio-button>
@@ -119,7 +123,7 @@
ref="vehicleForm"
:model="vehicleForm"
:rules="formRules"
label-position="top"
label-position="right"
:disabled="readonly"
class="vehicle-form"
>
@@ -142,33 +146,68 @@
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="vehicleType">
<el-select v-model="vehicleForm.vehicleType" filterable allow-create default-first-option>
<el-option v-for="item in vehicleTypeOptions" :key="item" :label="item" :value="item" />
<el-select
v-model="vehicleForm.vehicleType"
filterable
allow-create
default-first-option
>
<el-option
v-for="item in vehicleTypeOptions"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="业务关系" prop="businessRelation">
<el-select v-model="vehicleForm.businessRelation">
<el-option v-for="item in businessRelationOptions" :key="item" :label="item" :value="item" />
<el-option
v-for="item in businessRelationOptions"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="能源类型" prop="energyType">
<el-select v-model="vehicleForm.energyType" filterable allow-create default-first-option>
<el-option v-for="item in energyTypeOptions" :key="item" :label="item" :value="item" />
<el-select
v-model="vehicleForm.energyType"
filterable
allow-create
default-first-option
>
<el-option
v-for="item in energyTypeOptions"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定载质量(KG)" prop="approvedLoadKg">
<el-input-number v-model="vehicleForm.approvedLoadKg" :min="0" :precision="0" controls-position="right" />
<el-input-number
v-model="vehicleForm.approvedLoadKg"
:min="0"
:precision="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="准牵引总质量(KG)" prop="tractionMassKg">
<el-input-number v-model="vehicleForm.tractionMassKg" :min="0" :precision="0" controls-position="right" />
<el-input-number
v-model="vehicleForm.tractionMassKg"
:min="0"
:precision="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -181,17 +220,32 @@
</el-col>
<el-col :span="6">
<el-form-item label="外廓长度(mm)" prop="outerLength">
<el-input-number v-model="vehicleForm.outerLength" :min="0" :precision="0" controls-position="right" />
<el-input-number
v-model="vehicleForm.outerLength"
:min="0"
:precision="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="外廓宽度(mm)" prop="outerWidth">
<el-input-number v-model="vehicleForm.outerWidth" :min="0" :precision="0" controls-position="right" />
<el-input-number
v-model="vehicleForm.outerWidth"
:min="0"
:precision="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="外廓高度(mm)" prop="outerHeight">
<el-input-number v-model="vehicleForm.outerHeight" :min="0" :precision="0" controls-position="right" />
<el-input-number
v-model="vehicleForm.outerHeight"
:min="0"
:precision="0"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -211,7 +265,11 @@
</el-col>
<el-col :span="4">
<el-form-item label="长期有效" prop="compulsoryScrapLongTerm">
<el-checkbox v-model="vehicleForm.compulsoryScrapLongTerm" :true-label="1" :false-label="0">
<el-checkbox
v-model="vehicleForm.compulsoryScrapLongTerm"
:true-label="1"
:false-label="0"
>
</el-checkbox>
</el-form-item>
@@ -228,7 +286,12 @@
<el-col :span="10">
<el-form-item label="行驶证有效期" prop="drivingLicenseEndDate">
<div class="date-range">
<el-date-picker v-model="vehicleForm.drivingLicenseStartDate" type="date" value-format="YYYY-MM-DD" placeholder="起" />
<el-date-picker
v-model="vehicleForm.drivingLicenseStartDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="起"
/>
<el-date-picker
v-model="vehicleForm.drivingLicenseEndDate"
type="date"
@@ -241,7 +304,11 @@
</el-col>
<el-col :span="4">
<el-form-item label="长期有效" prop="drivingLicenseLongTerm">
<el-checkbox v-model="vehicleForm.drivingLicenseLongTerm" :true-label="1" :false-label="0">
<el-checkbox
v-model="vehicleForm.drivingLicenseLongTerm"
:true-label="1"
:false-label="0"
>
</el-checkbox>
</el-form-item>
@@ -269,7 +336,12 @@
<el-col :span="10">
<el-form-item label="道路运输证有效期" prop="roadTransportCertEndDate">
<div class="date-range">
<el-date-picker v-model="vehicleForm.roadTransportCertStartDate" type="date" value-format="YYYY-MM-DD" placeholder="起" />
<el-date-picker
v-model="vehicleForm.roadTransportCertStartDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="起"
/>
<el-date-picker
v-model="vehicleForm.roadTransportCertEndDate"
type="date"
@@ -282,7 +354,11 @@
</el-col>
<el-col :span="4">
<el-form-item label="长期有效" prop="roadTransportCertLongTerm">
<el-checkbox v-model="vehicleForm.roadTransportCertLongTerm" :true-label="1" :false-label="0">
<el-checkbox
v-model="vehicleForm.roadTransportCertLongTerm"
:true-label="1"
:false-label="0"
>
</el-checkbox>
</el-form-item>
@@ -299,7 +375,11 @@
</el-col>
<el-col :span="4">
<el-form-item label="年审长期有效" prop="annualReviewLongTerm">
<el-checkbox v-model="vehicleForm.annualReviewLongTerm" :true-label="1" :false-label="0">
<el-checkbox
v-model="vehicleForm.annualReviewLongTerm"
:true-label="1"
:false-label="0"
>
</el-checkbox>
</el-form-item>
@@ -326,12 +406,21 @@
</el-col>
<el-col :span="6">
<el-form-item label="机动车登记日期" prop="registrationDate">
<el-date-picker v-model="vehicleForm.registrationDate" type="date" value-format="YYYY-MM-DD" />
<el-date-picker
v-model="vehicleForm.registrationDate"
type="date"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="vehicleForm.remark" type="textarea" maxlength="200" show-word-limit />
<el-input
v-model="vehicleForm.remark"
type="textarea"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -499,16 +588,24 @@ export default {
organizationName: [{ required: true, message: '请输入所属组织', trigger: 'blur' }],
plateNo: [
{ required: true, message: '请输入车牌号', trigger: 'blur' },
{ pattern: /^[\u4e00-\u9fa5][A-Z][A-Z0-9挂学警港澳]{5,6}$/, message: '请输入标准车牌号', trigger: 'blur' },
{
pattern: /^[\u4e00-\u9fa5][A-Z][A-Z0-9挂学警港澳]{5,6}$/,
message: '请输入标准车牌号',
trigger: 'blur',
},
],
vehicleType: [{ required: true, message: '请选择车辆类型', trigger: 'change' }],
approvedLoadKg: [{ required: true, message: '请输入核定载质量', trigger: 'blur' }],
businessRelation: [{ required: true, message: '请选择业务关系', trigger: 'change' }],
energyType: [{ required: true, message: '请选择能源类型', trigger: 'change' }],
drivingLicenseNo: [{ required: true, message: '请输入行驶证档案编号', trigger: 'blur' }],
drivingLicenseEndDate: [{ validator: this.validateDrivingLicenseEndDate, trigger: 'change' }],
drivingLicenseEndDate: [
{ validator: this.validateDrivingLicenseEndDate, trigger: 'change' },
],
roadTransportCertNo: [{ required: true, message: '请输入道路运输证号', trigger: 'blur' }],
roadTransportCertEndDate: [{ validator: this.validateRoadTransportCertEndDate, trigger: 'change' }],
roadTransportCertEndDate: [
{ validator: this.validateRoadTransportCertEndDate, trigger: 'change' },
],
annualReviewEndDate: [{ validator: this.validateAnnualReviewEndDate, trigger: 'change' }],
registrationNo: [{ required: true, message: '请输入机动车登记编号', trigger: 'blur' }],
remark: [{ max: 200, message: '备注最多200字', trigger: 'blur' }],
@@ -708,7 +805,10 @@ export default {
type: 'warning',
}).then(() => {
NProgress.start();
exportBlob('/blade-transport/transport-vehicle/export-transport-vehicle', this.buildExportParams())
exportBlob(
'/blade-transport/transport-vehicle/export-transport-vehicle',
this.buildExportParams()
)
.then(res => {
downloadXls(res.data, `车辆管理${this.$dayjs().format('YYYY-MM-DD HH:mm:ss')}.xlsx`);
})