From 069d0e92ff9921c54317acddb4fcab88a0f71798 Mon Sep 17 00:00:00 2001 From: "weicw1996@qq.com" Date: Sat, 3 Oct 2026 17:57:01 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E8=BD=A6=E8=BE=86=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E8=AF=A6=E6=83=85=E5=AD=97=E6=AE=B5=E5=85=83=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9A=84=E6=97=A7=E9=94=AE=E5=90=8D=EF=BC=8C=E6=AD=A2?= =?UTF-8?q?=E6=9C=9F=E4=B9=8B=E5=A4=96=E4=B8=8D=E5=86=8D=E8=A2=AB=E9=95=BF?= =?UTF-8?q?=E6=9C=9F=E6=9C=89=E6=95=88=E9=81=AE=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 车辆字段整组停留在改造前的旧键名(licenseNo / licenseValidStart / licenseValidEnd / licenseLongTerm / roadTransportNo / roadTransportValid* / engineNo),而快照早已改名成 drivingLicense* / roadTransportCert* / registration*。键名对不上不报错——每个字段都算「没有值」, 于是车辆审核详情里行驶证与道路运输证两组全显示「—」,真值全落到未翻译的「其他字段」组里 露着 camelCase 键名,审核员既看不到内容、也 diff 不出变更。 - 按 VehicleCertSubmitRequest 重写车辆四组字段(基本信息 / 行驶证 / 道路运输证 / 机动车登记本), 补上此前漏登记的所有人、外廓尺寸、核定载质量、准牵引总质量、能源类型、业务关系、机动车登记编号与六张图; - longTermKey 只挂在被长期有效作废掉的那个字段(有效期止、强制报废日期)上: 起期是独立日期,挂上去会把真实值显示成「长期有效」,还让审核员看不到起期的改动。 --- src/utils/cert-audit.js | 82 +++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/src/utils/cert-audit.js b/src/utils/cert-audit.js index f248e1f..9044ab4 100644 --- a/src/utils/cert-audit.js +++ b/src/utils/cert-audit.js @@ -93,6 +93,11 @@ export const formatCertDateTime = value => { * * 字段名与后端提交 DTO 的 JSON 键一致(司机 PersonCertSubmitRequest / 车辆 VehicleCertSubmitRequest), * 两侧快照共用同一套结构,故同时用于标签与比较规则。 + * + * `longTermKey` 只挂在**被长期有效作废掉的那个字段**上,也就是各组的「有效期止」与强制报废日期: + * 勾了长期有效,它们显示「长期有效」、比较时按同一个值算(避免每次审核都报「已变更」)。 + * 「有效期起」不挂:起期是一个独立的日期,长期有效并不会让它失效, + * 挂上去等于把它自己的值藏起来、还让审核员看不到起期的改动。 */ const CERT_SNAPSHOT_GROUPS = { driver: [ @@ -103,12 +108,7 @@ const CERT_SNAPSHOT_GROUPS = { { key: 'idCardNo', label: '身份证号' }, { key: 'idCardFrontUrl', label: '身份证正面照', type: TYPE_IMAGE }, { key: 'idCardBackUrl', label: '身份证反面照', type: TYPE_IMAGE }, - { - key: 'idCardValidStart', - label: '身份证有效期起', - type: TYPE_DATE, - longTermKey: 'idCardLongTerm', - }, + { key: 'idCardValidStart', label: '身份证有效期起', type: TYPE_DATE }, { key: 'idCardValidEnd', label: '身份证有效期止', @@ -126,12 +126,7 @@ const CERT_SNAPSHOT_GROUPS = { { key: 'driverClass', label: '准驾车型' }, { key: 'driverLicenseFrontUrl', label: '驾驶证主页照片', type: TYPE_IMAGE }, { key: 'driverLicenseBackUrl', label: '驾驶证副页照片', type: TYPE_IMAGE }, - { - key: 'driverValidStart', - label: '驾驶证有效期起', - type: TYPE_DATE, - longTermKey: 'driverLongTerm', - }, + { key: 'driverValidStart', label: '驾驶证有效期起', type: TYPE_DATE }, { key: 'driverValidEnd', label: '驾驶证有效期止', @@ -150,6 +145,13 @@ const CERT_SNAPSHOT_GROUPS = { ], }, ], + /* + * ⚠️ 车辆字段名与 PersonCertSubmitRequest 不同:这一组曾经整组用着改造前的旧键名 + * (licenseNo / licenseValidEnd / roadTransportNo …),而快照早已改名成 drivingLicense* / + * roadTransportCert*。键名对不上**不报错**——每个字段都算「没有值」, + * 于是车辆审核详情里行驶证与道路运输证两组全显示「—」,真值全落到未翻译的「其他字段」组, + * 审核员既看不到内容、也 diff 不出变更。字段名一律以 VehicleCertSubmitRequest 为准。 + */ vehicle: [ { title: '车辆基本信息', @@ -157,49 +159,57 @@ const CERT_SNAPSHOT_GROUPS = { { key: 'plateNo', label: '车牌号' }, { key: 'vehicleType', label: '车辆类型' }, { key: 'plateColor', label: '车牌颜色' }, + { key: 'ownerName', label: '所有人' }, { key: 'vin', label: '车辆识别代号(车架号)' }, - { key: 'engineNo', label: '发动机号' }, + { key: 'outerLength', label: '外廓长度(mm)' }, + { key: 'outerWidth', label: '外廓宽度(mm)' }, + { key: 'outerHeight', label: '外廓高度(mm)' }, + { key: 'approvedLoadKg', label: '核定载质量(KG)' }, + { key: 'tractionMassKg', label: '准牵引总质量(KG)' }, + { key: 'energyType', label: '能源类型' }, + { key: 'businessRelation', label: '业务关系' }, ], }, { title: '行驶证信息', fields: [ - { key: 'licenseNo', label: '行驶证档案编号' }, - { key: 'licenseFrontUrl', label: '行驶证主页照片', type: TYPE_IMAGE }, - { key: 'licenseBackUrl', label: '行驶证副页照片', type: TYPE_IMAGE }, + { key: 'compulsoryScrapDate', label: '强制报废日期', type: TYPE_DATE, longTermKey: 'compulsoryScrapLongTerm' }, + { key: 'compulsoryScrapLongTerm', label: '强制报废长期有效', type: TYPE_LONG_TERM }, + { key: 'drivingLicenseNo', label: '行驶证档案编号' }, + { key: 'drivingLicenseImage', label: '行驶证主页正面', type: TYPE_IMAGE }, + { key: 'drivingLicenseMainBack', label: '行驶证主页反面', type: TYPE_IMAGE }, + { key: 'drivingLicenseViceFront', label: '行驶证副页正面', type: TYPE_IMAGE }, + { key: 'drivingLicenseViceBack', label: '行驶证副页反面', type: TYPE_IMAGE }, + { key: 'drivingLicenseStartDate', label: '行驶证有效期起', type: TYPE_DATE }, { - key: 'licenseValidStart', - label: '行驶证有效期起', - type: TYPE_DATE, - longTermKey: 'licenseLongTerm', - }, - { - key: 'licenseValidEnd', + key: 'drivingLicenseEndDate', label: '行驶证有效期止', type: TYPE_DATE, - longTermKey: 'licenseLongTerm', + longTermKey: 'drivingLicenseLongTerm', }, - { key: 'licenseLongTerm', label: '行驶证长期有效', type: TYPE_LONG_TERM }, + { key: 'drivingLicenseLongTerm', label: '行驶证长期有效', type: TYPE_LONG_TERM }, ], }, { title: '道路运输证信息', fields: [ - { key: 'roadTransportNo', label: '道路运输证号' }, - { key: 'roadTransportUrl', label: '道路运输证照片', type: TYPE_IMAGE }, + { key: 'roadTransportCertNo', label: '道路运输证号' }, + { key: 'roadTransportCertImage', label: '道路运输证照片', type: TYPE_IMAGE }, + { key: 'roadTransportCertStartDate', label: '道路运输证有效期起', type: TYPE_DATE }, { - key: 'roadTransportValidStart', - label: '道路运输证有效期起', - type: TYPE_DATE, - longTermKey: 'roadTransportLongTerm', - }, - { - key: 'roadTransportValidEnd', + key: 'roadTransportCertEndDate', label: '道路运输证有效期止', type: TYPE_DATE, - longTermKey: 'roadTransportLongTerm', + longTermKey: 'roadTransportCertLongTerm', }, - { key: 'roadTransportLongTerm', label: '道路运输证长期有效', type: TYPE_LONG_TERM }, + { key: 'roadTransportCertLongTerm', label: '道路运输证长期有效', type: TYPE_LONG_TERM }, + ], + }, + { + title: '机动车登记本信息', + fields: [ + { key: 'registrationNo', label: '机动车登记编号' }, + { key: 'registrationImage', label: '机动车登记本照片', type: TYPE_IMAGE }, ], }, ],