- Replace direct DOM remove() with Range+execCommand('delete') in TemplateManage click and keydown handlers to restore undo stack
- Append ​ zero-width space to smart-field-wrapper HTML in insertSmartField and defaultContent.ts to prevent unwanted line breaks
- Refactor ReportEditor surgeonSignature rendering to depend on isSigned field
- Add isSigned to DEFAULT_FORM_FIELDS (single_select: 已签字/未签字)
- Change surgeonSignature to visibleInForm=true, isSystemLocked=false
- Constrain signature image with max-width:120px, max-height:40px, object-fit:contain in CSS and print.ts
- Add weak-blocking signature validation prompts in saveReport('completed')
- Update experience record (#19)
3.5 KiB
3.5 KiB
测试方案 — 撤销栈修复、字段删除交互优化与签名字段闭环(2026-04-17-12-34-56)
一、编译检查
- 执行
npm run lint(tsc --noEmit),确保全量 TypeScript 无编译错误。
二、功能验证步骤
测试 1:TemplateManage 撤销功能恢复
- 进入【模板管理】,选择默认模板。
- 点击某智能字段(如"手术日期")右上角的红色 × 删除该字段。
- 点击编辑器工具栏的"撤销"按钮(↶)。
- 确认被删除的字段重新出现,撤销功能正常。
测试 2:TemplateManage 插入字段不强制换行
- 在模板编辑器中,将光标定位到一行文字中间(如"手术名称:"后面)。
- 点击右侧字段库插入"手术日期"。
- 确认"手术日期"字段框紧跟在光标位置,没有跳到下一行。
- 再次插入"手术者签名",确认同样保持在当前行。
测试 3:TemplateManage Backspace/Delete 精准删除
- 将光标定位在某智能字段框正后方,按 Backspace。
- 确认仅该字段被删除,前面和后面的文本不受影响。
- 将光标定位在某智能字段框正前方,按 Delete。
- 确认仅该字段被删除,其他文本完好无损。
- 删除后点击"撤销",确认字段恢复。
测试 4:签名图片尺寸约束
- 进入【用户管理】,给当前登录用户上传一张较大的电子签图片。
- 进入【新建报告】,在右侧【基本信息】中将"手术者签名确认"选择为"已签字"。
- 观察模板中的签名图片,确认其宽度不超过 120px,高度不超过 40px,且等比例缩放未变形。
测试 5:签名字段显隐与表单联动
- 进入【模板管理】,查看右侧【字段管理】,确认"手术者签名"和"手术者签名确认"字段存在且可切换"显示/隐藏"。
- 进入【新建报告】,确认右侧【基本信息】表单中出现了"手术者签名确认"下拉框(默认"未签字")。
- 选择"未签字",确认模板中的签名方框显示"【未签字】"。
- 选择"已签字",确认模板中的签名方框显示签名图片。
- 在 UserManage 中清除当前用户签名,返回 ReportEditor 将"手术者签名确认"选为"已签字"。
- 确认签名方框显示"【请上传电子签】"。
测试 6:完成报告签名校验提示
- 确保模板中存在"手术者签名"字段,且 ReportEditor 中"手术者签名确认"为"未签字"。
- 点击"完成报告",确认弹出提示:"模板中包含【手术者签名】字段,但您在基本信息中未选择'已签字'。是否继续完成报告?"
- 点击"取消",确认报告未被保存,停留在编辑页。
- 将"手术者签名确认"改为"已签字",清除当前用户的电子签图片。
- 再次点击"完成报告",确认弹出提示:"您选择了'已签字',但您的账号尚未上传电子签名图片。报告中将不显示签名图片,是否继续完成?"
- 点击"确定",确认报告正常保存并跳转至报告管理页。
三、预期结果
npm run lint0 错误。- TemplateManage 中删除字段后撤销正常。
- 插入字段不强制换行;Backspace/Delete 精准删除单个字段。
- 签名图片受 120×40px 约束,等比例缩放。
- 表单联动正常:已签字→显示图片,未签字→显示"【未签字】",无签名图→显示"【请上传电子签】"。
- 完成报告时签名异常给出弱阻断提示,用户可取消或继续。