@@ -560,8 +578,10 @@ const emptyForm = () => ({
organizationName: '',
useDepartment: '',
plateNo: '',
+ ownerName: '',
plateColor: '',
vehicleType: '',
+ vin: '',
outerLength: undefined,
outerWidth: undefined,
outerHeight: undefined,
@@ -650,6 +670,8 @@ export default {
{ validator: this.validatePlateNo, trigger: 'change' },
],
vehicleType: [{ required: true, message: '请选择车辆类型', trigger: 'change' }],
+ ownerName: [{ required: true, message: '请输入所有人', trigger: 'blur' }],
+ vin: [{ validator: this.validateVin, trigger: 'blur' }],
approvedLoadKg: [{ required: true, message: '请输入核定载质量', trigger: 'blur' }],
businessRelation: [{ required: true, message: '请选择业务关系', trigger: 'change' }],
energyType: [{ required: true, message: '请选择能源类型', trigger: 'change' }],
@@ -783,6 +805,24 @@ export default {
}
callback();
},
+ // 车辆识别代号(车架号)为选填:留空放行,填了就必须是 17 位
+ validateVin(rule, value, callback) {
+ const vin = String(value || '')
+ .trim()
+ .toUpperCase();
+ if (!vin) {
+ callback();
+ return;
+ }
+ if (!/^[A-HJ-NPR-Z0-9]{17}$/.test(vin)) {
+ callback(new Error('车架号必须是17位字母数字(不含 I、O、Q)'));
+ return;
+ }
+ if (this.vehicleForm.vin !== vin) {
+ this.vehicleForm.vin = vin;
+ }
+ callback();
+ },
validateAnnualReviewEndDate(rule, value, callback) {
if (this.vehicleForm.annualReviewLongTerm !== 1 && !value) {
callback(new Error('请选择道路运输年审有效期'));