diff --git a/src/api/vehicle/annual-inspection-record.js b/src/api/vehicle/annual-inspection-record.js index 51cbd4d..e0ee82a 100644 --- a/src/api/vehicle/annual-inspection-record.js +++ b/src/api/vehicle/annual-inspection-record.js @@ -47,3 +47,11 @@ export const update = row => { data: row, }); }; + +export const getExpiryStat = params => { + return request({ + url: '/blade-transport/annual-inspection-record/expiry-stat', + method: 'get', + params, + }); +}; diff --git a/src/option/business/waybill-manage.js b/src/option/business/waybill-manage.js index 60b94e6..fe51191 100644 --- a/src/option/business/waybill-manage.js +++ b/src/option/business/waybill-manage.js @@ -19,6 +19,12 @@ const transportTypeDict = { const isEmpty = value => value === undefined || value === null || value === ''; const normalizeNumericDisplayValue = value => (Number(value) === -1 ? '' : value); +const formatMoneyDisplay = value => { + if (isEmpty(value) || Number(value) === -1) return ''; + const number = Number(value); + if (!Number.isFinite(number)) return ''; + return number.toFixed(2); +}; const parseJsonArray = value => { if (Array.isArray(value)) return value; @@ -342,10 +348,10 @@ const formatUnitPrice = row => { return billingUnit ? `${billingPrice}(${billingUnit})` : billingPrice; }; -const formatAmount = (row, props) => getFirstValue(row, props); +const formatAmount = (row, props) => formatMoneyDisplay(getFirstValue(row, props)); -const sumAmount = list => - list.reduce((sum, item) => { +const sumAmount = (rows = []) => + rows.reduce((sum, item) => { const value = getFirstValue(item, ['freightAmount', 'amount', 'totalAmount']); return isEmpty(value) ? sum : sum + Number(value || 0); }, 0); @@ -364,7 +370,7 @@ const calculateFreightTotal = rows => { return sum + Number(item.unitPrice || 0) * Number(item.quantity || 0); }, 0); if (!hasAmountField) return ''; - return Number.isFinite(total) ? Number(total.toFixed(2)).toString() : ''; + return Number.isFinite(total) ? total.toFixed(2) : ''; }; const formatFreight = row => { @@ -372,9 +378,9 @@ const formatFreight = row => { if (!isEmpty(value)) return value; const freight = parseJsonObject(row.freightJson); const freightValue = getFirstValue(freight, ['freightAmount', 'transportFee']); - if (!isEmpty(freightValue)) return freightValue; + if (!isEmpty(freightValue)) return formatMoneyDisplay(freightValue); const total = sumAmount(Array.isArray(freight.freightItems) ? freight.freightItems : []); - return total ? total : ''; + return total ? formatMoneyDisplay(total) : ''; }; const formatOtherFeeTotal = row => { @@ -391,10 +397,10 @@ const formatFreightTotal = row => { const otherFeeTotal = !isEmpty(otherFee) ? otherFee : formatOtherFeeTotal(row); if (!isEmpty(calculated)) { const total = Number(calculated || 0) + Number(otherFeeTotal || 0); - return Number.isFinite(total) ? Number(total.toFixed(2)).toString() : calculated; + return Number.isFinite(total) ? total.toFixed(2) : calculated; } const value = getFirstValue(freight, ['totalFreightAmount', 'totalFreight', 'totalAmount']); - if (!isEmpty(value)) return value; + if (!isEmpty(value)) return formatMoneyDisplay(value); return formatAmount(row, ['freightTotal', 'totalFreight', 'totalAmount']); }; diff --git a/src/option/vehicle/accident-record.js b/src/option/vehicle/accident-record.js index 458e597..2cb0ab6 100644 --- a/src/option/vehicle/accident-record.js +++ b/src/option/vehicle/accident-record.js @@ -70,14 +70,16 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 140, span: 12, - placeholder: '输入车牌号/船号查询选择', + placeholder: '请选择车牌号/船号', rules: [ - { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, + { required: true, message: '请选择车牌号/船号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, diff --git a/src/option/vehicle/annual-inspection-record.js b/src/option/vehicle/annual-inspection-record.js index dbf10ff..29c480d 100644 --- a/src/option/vehicle/annual-inspection-record.js +++ b/src/option/vehicle/annual-inspection-record.js @@ -75,14 +75,16 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 140, span: 12, - placeholder: '输入车牌号/船号查询选择', + placeholder: '请选择车牌号/船号', rules: [ - { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, + { required: true, message: '请选择车牌号/船号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, @@ -105,6 +107,7 @@ export const option = { type: 'date', format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', + slot: true, minWidth: 140, span: 12, placeholder: '请输入', @@ -191,23 +194,12 @@ export const option = { formslot: true, }, { - label: '检测评定开始日期', - prop: 'inspectionAssessmentDateStart', - type: 'date', - format: 'YYYY-MM-DD', - valueFormat: 'YYYY-MM-DD', - search: true, - hide: true, - addDisplay: false, - editDisplay: false, - viewDisplay: false, - }, - { - label: '检测评定结束日期', - prop: 'inspectionAssessmentDateEnd', + label: '检测评定日期', + prop: 'inspectionAssessmentDateRange', type: 'date', format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', + searchRange: true, search: true, hide: true, addDisplay: false, diff --git a/src/option/vehicle/equipment-ledger.js b/src/option/vehicle/equipment-ledger.js index 3f0e4ab..d2905b6 100644 --- a/src/option/vehicle/equipment-ledger.js +++ b/src/option/vehicle/equipment-ledger.js @@ -54,9 +54,11 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', searchOrder: 4, span: 12, order: 10, diff --git a/src/option/vehicle/etc-record.js b/src/option/vehicle/etc-record.js index e14b301..196c952 100644 --- a/src/option/vehicle/etc-record.js +++ b/src/option/vehicle/etc-record.js @@ -49,14 +49,16 @@ export const option = { { label: '车牌号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 140, span: 12, - placeholder: '输入车牌号模糊查询选择', + placeholder: '请选择车牌号', rules: [ - { required: true, message: '请输入车牌号', trigger: 'blur' }, + { required: true, message: '请选择车牌号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, diff --git a/src/option/vehicle/insurance-record.js b/src/option/vehicle/insurance-record.js index 62f6f90..9058d43 100644 --- a/src/option/vehicle/insurance-record.js +++ b/src/option/vehicle/insurance-record.js @@ -78,17 +78,20 @@ export const option = { prop: 'policyFile', formslot: true, hide: true, + viewDisplay: false, span: 24, }, { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 140, rules: [ - { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, + { required: true, message: '请选择车牌号/船号', trigger: 'change' }, { max: 50, message: '最多 50 个字符', trigger: 'blur' }, ], }, @@ -108,6 +111,7 @@ export const option = { rules: [ { required: true, message: '请输入保单号', trigger: 'blur' }, { max: 80, message: '最多 80 个字符', trigger: 'blur' }, + { pattern: /^[a-zA-Z0-9]+$/, message: '保单号只能输入数字、字母', trigger: 'blur' }, ], }, { diff --git a/src/option/vehicle/mileage-record.js b/src/option/vehicle/mileage-record.js index d8cd492..474ba66 100644 --- a/src/option/vehicle/mileage-record.js +++ b/src/option/vehicle/mileage-record.js @@ -40,13 +40,15 @@ export const option = { { label: '车牌号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', searchSpan: 6, minWidth: 130, rules: [ - { required: true, message: '请输入车牌号', trigger: 'blur' }, + { required: true, message: '请选择车牌号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, diff --git a/src/option/vehicle/oil-electric-record.js b/src/option/vehicle/oil-electric-record.js index cd2eca5..a351190 100644 --- a/src/option/vehicle/oil-electric-record.js +++ b/src/option/vehicle/oil-electric-record.js @@ -92,13 +92,15 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 150, - placeholder: '输入车牌号/船号查询选择', + placeholder: '请选择车牌号/船号', rules: [ - { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, + { required: true, message: '请选择车牌号/船号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, diff --git a/src/option/vehicle/other-expense-record.js b/src/option/vehicle/other-expense-record.js index 115850c..535a4c9 100644 --- a/src/option/vehicle/other-expense-record.js +++ b/src/option/vehicle/other-expense-record.js @@ -17,16 +17,6 @@ export const vehicleTypeDic = [ { label: '船舶', value: '船舶' }, ]; -export const expenseTypeDic = [ - { label: '过路费', value: '过路费' }, - { label: '停车费', value: '停车费' }, - { label: '维修费', value: '维修费' }, - { label: '保险费', value: '保险费' }, - { label: '年检费', value: '年检费' }, - { label: '装卸费', value: '装卸费' }, - { label: '其他', value: '其他' }, -]; - export const option = { height: 'auto', calcHeight: 32, @@ -68,14 +58,16 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 150, span: 12, - placeholder: '输入车牌号/船号查询选择', + placeholder: '请选择车牌号/船号', rules: [ - { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, + { required: true, message: '请选择车牌号/船号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, @@ -95,7 +87,7 @@ export const option = { label: '费用类型', prop: 'expenseType', type: 'select', - dicData: expenseTypeDic, + dicData: [], search: true, minWidth: 150, span: 12, diff --git a/src/option/vehicle/tire-replacement-record.js b/src/option/vehicle/tire-replacement-record.js index 0154a9f..4ca62fa 100644 --- a/src/option/vehicle/tire-replacement-record.js +++ b/src/option/vehicle/tire-replacement-record.js @@ -49,14 +49,16 @@ export const option = { { label: '车牌号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 130, span: 12, - placeholder: '输入车牌号查询选择', + placeholder: '请选择车牌号', rules: [ - { required: true, message: '请输入车牌号', trigger: 'blur' }, + { required: true, message: '请选择车牌号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, diff --git a/src/option/vehicle/transport-change-record.js b/src/option/vehicle/transport-change-record.js index edc75dd..c90dea6 100644 --- a/src/option/vehicle/transport-change-record.js +++ b/src/option/vehicle/transport-change-record.js @@ -47,11 +47,13 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 140, - placeholder: '输入车牌号/船号模糊查询选择', + placeholder: '请选择车牌号/船号', rules: [{ max: 30, message: '最多 30 个字符', trigger: 'blur' }], }, { diff --git a/src/option/vehicle/violation-record.js b/src/option/vehicle/violation-record.js index ba18932..cc6fe20 100644 --- a/src/option/vehicle/violation-record.js +++ b/src/option/vehicle/violation-record.js @@ -70,14 +70,16 @@ export const option = { { label: '车牌号/船号', prop: 'vehicleNo', + type: 'select', slot: true, formslot: true, search: true, + searchType: 'input', minWidth: 140, span: 12, - placeholder: '输入车牌号/船号查询选择', + placeholder: '请选择车牌号/船号', rules: [ - { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, + { required: true, message: '请选择车牌号/船号', trigger: 'change' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, @@ -117,13 +119,13 @@ export const option = { { label: '日期', prop: 'violationTime', - type: 'datetime', - format: 'YYYY-MM-DD HH:mm:ss', + type: 'date', + format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD HH:mm:ss', - minWidth: 170, + minWidth: 140, span: 12, placeholder: '请选择', - rules: [{ required: true, message: '请选择时间', trigger: 'click' }], + rules: [{ required: true, message: '请选择日期', trigger: 'click' }], }, { label: '地点', diff --git a/src/views/base/insurance-ocr-template.vue b/src/views/base/insurance-ocr-template.vue index d1085de..8a015e6 100644 --- a/src/views/base/insurance-ocr-template.vue +++ b/src/views/base/insurance-ocr-template.vue @@ -20,6 +20,16 @@ 批量删除 @@ -441,6 +443,7 @@ @@ -449,6 +452,7 @@ @@ -479,7 +483,7 @@ - + - + @@ -569,6 +579,7 @@ v-model="vehicleForm.drivingLicenseEndDate" type="date" value-format="YYYY-MM-DD" + placeholder="请选择" :disabled="vehicleForm.drivingLicenseLongTerm === 1" /> - + @@ -594,6 +609,7 @@ v-model="vehicleForm.roadTransportCertEndDate" type="date" value-format="YYYY-MM-DD" + placeholder="请选择" :disabled="vehicleForm.roadTransportCertLongTerm === 1" /> - + @@ -640,12 +661,17 @@ v-model="vehicleForm.registrationDate" type="date" value-format="YYYY-MM-DD" + placeholder="请选择" /> - + @@ -1780,9 +1806,10 @@ export default { } -// 大尺寸证件照:按身份证 1.586:1 比例缩放(约真实尺寸 75%,240×151),左对齐显示 +// 证件照上传:宽度与同列表单项(输入框)对齐,高度按身份证 1.586:1 比例自适应 :deep(.vehicle-uploader) { display: block; + width: 100%; } :deep(.vehicle-uploader .el-upload), @@ -1797,17 +1824,17 @@ export default { overflow: hidden; } -// 大尺寸模式:缩成 1.586:1 比例,左对齐(不再 100% 占栏) :deep(.vehicle-uploader--large) { display: block; - width: 240px; + width: 100%; margin: 0; } :deep(.vehicle-uploader--large .el-upload), :deep(.vehicle-uploader--large.el-upload) { width: 100%; - height: 151px; + height: auto; + aspect-ratio: 1.586 / 1; } :deep(.vehicle-uploader__image) { diff --git a/src/views/vehicle/accident-record.vue b/src/views/vehicle/accident-record.vue index 01da248..91b56e0 100644 --- a/src/views/vehicle/accident-record.vue +++ b/src/views/vehicle/accident-record.vue @@ -60,15 +60,44 @@ + + + +