# 2026-09-16 工作日志 ## 能力评估新增「评估编号」自定义输入 + 自动生成 ### 需求 评估弹窗第一步(评估基本信息)中,在「长者姓名」上方新增一行「评估编号」: - 可手动输入 - 新增时默认自动生成 - 打印预览(Print.vue)已支持 `evaluationCode`,需保证数据落库后正常回显 ### 改动文件 1. **`src/views/elderly/assess/types.ts`** - 在 `syntheticAbilityFormType.dataForm` 中增加 `evaluationCode?: string`。 2. **`src/views/elderly/assess/synthetic-ability/Form.vue`** - 默认表单对象增加 `evaluationCode: ''`。 - 模板在「长者姓名」上方新增一行「评估编号」`el-input`(`maxlength="64"`)。 - 新增 `generateEvaluationCode()`:格式 `NLPG + YYYYMMDD + 4位随机数`(与打印预览已有示例一致)。 - `open(tId, id)`:无 `id`(新增)时自动生成默认编号;有 `id`(编辑)时由后端 `res.evaluationCode` 回填。 - `handleChangeEvaluationAgency` 切换评估机构时保留 `evaluationCode`,避免编号被清空。 ## 能力评估:修复评估日期不回显 + 评估编号必填 ### 问题 - 编辑已保存记录时,「评估日期」字段为空(后端返回的日期格式可能带时间或时间戳,`el-date-picker` 无法直接匹配)。 - 「评估编号」需要必填校验。 ### 改动文件 **`src/views/elderly/assess/synthetic-ability/Form.vue`** - 引入 `dayjs`,新增 `formatDateYMD()` helper,把后端返回的日期统一格式化为 `YYYY-MM-DD`。 - 编辑回填 `evaluatorDate` 时走 `formatDateYMD()`,确保 `el-date-picker` 能正确显示。 - `dataRule` 增加 `evaluationCode` 必填规则(`trigger: 'blur'`)。 - `handleChangeEvaluationAgency` 切换评估机构时额外保留 `evaluatorDate`,避免日期被重置。 ### 验证 - 全量 `vue-tsc --noEmit`:本次改动未引入新的类型错误;报出的错误均为 `synthetic-ability` 目录下既有历史问题(`ref({})` 无显式类型、FCForm 的 `never` 推断等),与本次改动无关。 ## 能力评估:评估员签名改为可编辑 + 日期取评估基准日期 ### 需求 1. 打印页「评估员签名」一行上下边距加高。 2. 打印页「日期」取值由 `createDate` 改为「评估基准日期」`evaluatorDate`。 3. 第五步「评估报告」新增「评估员签名」输入框,可编辑,默认当前账号昵称;清空后打印时显示为空。 ### 改动文件 1. **`src/views/elderly/assess/types.ts`** - `syntheticAbilityFormType.dataForm` 与 `syntheticAbilityDetailType` 增加 `evaluator: string`。 2. **`src/views/elderly/assess/synthetic-ability/Form.vue`** - 默认表单对象增加 `evaluator: nickname`(当前账号昵称)。 - `open(id)` 编辑回填:后端有 `res.evaluator` 则回填,否则默认 `nickname`。 - `handleChangeEvaluationAgency` 切换机构时保留 `evaluator`。 - `` 组件调用改为 `v-model:evaluator="dataForm.evaluator"`。 - `submitForm('1')` 移除旧的 `base64Str` 签名逻辑,直接提交 `dataForm.evaluator`。 3. **`src/views/elderly/assess/synthetic-ability/components/Result.vue`** - 新增 prop `evaluator` 与 `emit('update:evaluator')`。 - 新增 `evaluatorSign` ref,通过 `watch` 接收回填值。 - 在本院评估(type=0)与广州标准(type=1)两种报告底部各增加一行「评估员签名」输入框。 4. **`src/views/elderly/assess/synthetic-ability/Print.vue`** - 新增 `evaluatorDateList` computed,从 `dataForm.evaluatorDate` 拆出年月日。 - 两套打印签名模板都把签名值改为 `dataForm.evaluator`,日期改为 `evaluatorDateList`。 - 评估员签名行 `style="padding: 16px 0;"`,家属签名行保持不变。 ### 验证 - 全量 `vue-tsc --noEmit` 跑完:本次改动前相关文件报错 234 条,改动后降至 231 条;新增的唯一可见报错是 `Print.vue` 中 `dataForm.evaluator` 访问(源于 `const dataForm = ref({})` 无显式类型,同文件已有大量同类历史报错),其余为既有历史问题,与本次业务改动无关。 ## 能力评估:修复「信息提供者姓名」保存后回显为登录账号的问题 ### 问题 编辑「信息提供者姓名」后保存,再次打开回显仍显示当前登录账号昵称,无法修改。 ### 根因 `Form.vue` 的 `submitForm` 中构建提交参数时,硬编码了 `informationProviderName: nickname`,覆盖了用户在表单中输入的值。 ### 改动文件 **`src/views/elderly/assess/synthetic-ability/Form.vue`** - 移除 `obj` 中的 `informationProviderName: nickname` 硬编码,让 `...dataForm.value` 中的用户输入值正常提交。 ### 验证 - 再次编辑保存后,`informationProviderName` 应正确落库并按用户输入值回显。 ## 能力评估:修复列表「评估员姓名」列错取「信息提供者姓名」的问题 ### 问题 能力评估列表中「评估员姓名」列显示的是 `informationProviderName`(信息提供者姓名)的值,导致列表与表单字段含义不一致。 ### 根因 `src/views/elderly/assess/column.ts` 中「评估员姓名」列的 `field` 错配为 `informationProviderName`。 ### 改动文件 **`src/views/elderly/assess/column.ts`** - 将「评估员姓名」列的 `field` 从 `informationProviderName` 改为 `evaluator`,与表单中新增的「评估员签名」字段保持一致。 ### 验证 - 列表刷新后,「评估员姓名」列应显示 `evaluator` 字段的值(默认当前账号昵称,可在第五步评估报告修改)。 ## 能力评估:打印页评估员签名横线加长 ### 需求 打印页「评估员签名」处的横线太短,需要加长,与下方「家属签名」横线长度保持一致。 ### 改动文件 **`src/views/elderly/assess/synthetic-ability/Print.vue`** - 将两套打印模板(`templateType == 8` 与 `templateType != 8`)中的 `评估员签名______{{ dataForm.evaluator }}______` 改为 `评估员签名____________________{{ dataForm.evaluator }}____________________`。 - 横线长度与「家属签名____________________」对齐,有签名值时内容居中显示在横线之上。