Files
Mdeical_Sur_Report/工程分析/测试方案-2026-04-17-12-34-56.md
admin f7c7270053 fix: undo stack, field insertion wrap, backspace/delete precision; feat: signature size limit & isSigned control
- 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)
2026-04-17 12:41:07 +08:00

57 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 测试方案 — 撤销栈修复、字段删除交互优化与签名字段闭环2026-04-17-12-34-56
## 一、编译检查
- 执行 `npm run lint``tsc --noEmit`),确保全量 TypeScript 无编译错误。
## 二、功能验证步骤
### 测试 1TemplateManage 撤销功能恢复
1. 进入【模板管理】,选择默认模板。
2. 点击某智能字段(如"手术日期")右上角的红色 × 删除该字段。
3. 点击编辑器工具栏的"撤销"按钮(↶)。
4. 确认被删除的字段重新出现,撤销功能正常。
### 测试 2TemplateManage 插入字段不强制换行
1. 在模板编辑器中,将光标定位到一行文字中间(如"手术名称:"后面)。
2. 点击右侧字段库插入"手术日期"。
3. 确认"手术日期"字段框紧跟在光标位置,没有跳到下一行。
4. 再次插入"手术者签名",确认同样保持在当前行。
### 测试 3TemplateManage Backspace/Delete 精准删除
1. 将光标定位在某智能字段框**正后方**,按 Backspace。
2. 确认仅该字段被删除,前面和后面的文本不受影响。
3. 将光标定位在某智能字段框**正前方**,按 Delete。
4. 确认仅该字段被删除,其他文本完好无损。
5. 删除后点击"撤销",确认字段恢复。
### 测试 4签名图片尺寸约束
1. 进入【用户管理】,给当前登录用户上传一张较大的电子签图片。
2. 进入【新建报告】,在右侧【基本信息】中将"手术者签名确认"选择为"已签字"。
3. 观察模板中的签名图片,确认其宽度不超过 120px高度不超过 40px且等比例缩放未变形。
### 测试 5签名字段显隐与表单联动
1. 进入【模板管理】,查看右侧【字段管理】,确认"手术者签名"和"手术者签名确认"字段存在且可切换"显示/隐藏"。
2. 进入【新建报告】,确认右侧【基本信息】表单中出现了"手术者签名确认"下拉框(默认"未签字")。
3. 选择"未签字",确认模板中的签名方框显示"【未签字】"。
4. 选择"已签字",确认模板中的签名方框显示签名图片。
5. 在 UserManage 中清除当前用户签名,返回 ReportEditor 将"手术者签名确认"选为"已签字"。
6. 确认签名方框显示"【请上传电子签】"。
### 测试 6完成报告签名校验提示
1. 确保模板中存在"手术者签名"字段,且 ReportEditor 中"手术者签名确认"为"未签字"。
2. 点击"完成报告",确认弹出提示:"模板中包含【手术者签名】字段,但您在基本信息中未选择'已签字'。是否继续完成报告?"
3. 点击"取消",确认报告未被保存,停留在编辑页。
4. 将"手术者签名确认"改为"已签字",清除当前用户的电子签图片。
5. 再次点击"完成报告",确认弹出提示:"您选择了'已签字',但您的账号尚未上传电子签名图片。报告中将不显示签名图片,是否继续完成?"
6. 点击"确定",确认报告正常保存并跳转至报告管理页。
## 三、预期结果
- `npm run lint` 0 错误。
- TemplateManage 中删除字段后撤销正常。
- 插入字段不强制换行Backspace/Delete 精准删除单个字段。
- 签名图片受 120×40px 约束,等比例缩放。
- 表单联动正常:已签字→显示图片,未签字→显示"【未签字】",无签名图→显示"【请上传电子签】"。
- 完成报告时签名异常给出弱阻断提示,用户可取消或继续。