问题:TgDatePicker(src/components/ToggleForm/src/TgDatePicker.vue)设置了 value-format="YYYY-MM-DD",要求 modelValue 为对应格式的字符串。后端返回的 birthday 是毫秒时间戳(如 -1086249600000,小于 1970 年为负数),ProcessForm.vue 里 init() / open() 直接用 Object.assign(dataForm, res) 把负数时间戳塞进 dataForm.birthday,导致日期选择器无法解析、回显为空。
修复:在 init() 和 open() 中 Object.assign 后加一行格式化:
dataForm.birthday = res.birthday ? formatTime(res.birthday, 'yyyy-MM-dd') : ''
与 getInfo() 身份证解析返回的 'yyyy-MM-dd' 字符串格式保持一致,也符合 TgDatePicker 的 value-format。
验证:ESLint 0 错误;vue-tsc 过滤 ProcessForm 无报错。
问题:用户反馈丙方「证件号码」上一个人有数据、下一个人没有时不会清除。检查 fillContractForm 发现以下字段都是「条件赋值」或「从未赋值」,上一份合同的数据会残留:
partyCGenderText、partyCIdCard、partyCPapersType、partyCBirth(仅在对应字段存在时才赋值)partyCZip、partyCCommAddr、partyCAccountName、partyCBank、partyCAccount(从未从家属数据回填)partyCSign、partyCDate(仅外部签名数据传入时才赋值)elderGenderText/elderIdCard/elderPapersType/elderBirth、日期 startDate/endDate、费用 totalFee/deposit*、房间 roomType/roomNo。修复:在两个组件的 fillContractForm 开头统一清空可能残留的字段,再按原有逻辑重新回填。这样新合同缺少对应数据时,字段会回到空值而非保留旧值。
涉及文件:
src/views/elderly/contracts/components/ContractBody.vuesrc/views/elderly/contracts/components/ContractBodyHubei.vue验证:ESLint 0 错误;vue-tsc 过滤 ContractBody 无报错。