Files
Mdeical_Sur_Report/工程分析/测试方案-2026-04-17-13-32-07.md
admin b155dd42d6 fix(TemplateManage): Ctrl+Z undo and smart-field insertion layout
- Intercept Ctrl+Z/Y keyboard shortcuts in keydown listener and route
to custom undoStack/redoStack to fix undo inconsistency.
- Replace execCommand('insertHTML') with precise Range.insertNode()
in insertSmartField to prevent <span> escaping out of <p> when
preceded by <br>.
2026-04-17 13:39:16 +08:00

83 lines
3.0 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-13-32-07
## 测试目标
验证 `TemplateManage.tsx` 中以下两项修复是否生效且无副作用:
1. `Ctrl+Z` / `Ctrl+Y` / `Ctrl+Shift+Z` 快捷键正确调用自定义 Undo/Redo。
2. 在段落末尾(含 `<br>`)插入 `smart-field-wrapper` 不再换行错位。
---
## 测试步骤
### 1. 编译检查
```bash
npm run lint
```
- **预期结果**`tsc --noEmit` 通过0 errors。
---
### 2. 快捷键 Undo/Redo 测试
**前置条件**:登录后进入 `/template-manage`,选中任意模板。
#### 2.1 删除字段后撤销
1. 在编辑器中点击一个已有的 `smart-field-wrapper`× 按钮(或通过 Backspace/Delete 删除字段)。
2. **立刻按下 `Ctrl+Z`**
- **预期结果**:被删除的字段完整恢复,内容与样式均正常。
#### 2.2 撤销后再重做
1. 完成步骤 2.1 后,**按下 `Ctrl+Y`**(或 `Ctrl+Shift+Z`)。
- **预期结果**:刚刚恢复的字段再次被删除。
#### 2.3 插入字段后撤销
1. 从右侧字段库点击任意字段插入到编辑器。
2. **按下 `Ctrl+Z`**
- **预期结果**:刚插入的字段消失,编辑器恢复到插入前的状态。
#### 2.4 多次撤销
1. 连续进行多次编辑操作(插入字段、删除字段、输入文字)。
2. 连续多次按 `Ctrl+Z`
- **预期结果**:每次按 `Ctrl+Z` 都按自定义历史栈顺序回退一步;不会触发浏览器原生 undo 造成状态混乱。
---
### 3. 插入字段排版测试
**前置条件**:编辑器中存在一个以 `<br>` 结尾的 `<p>` 标签,例如:
```html
<p style="font-family: SimSun;">
<strong>手术日期:</strong><br>
</p>
```
#### 3.1 在 `<br>` 后插入字段
1. 将光标放到 `<strong>手术日期:</strong>` 后面的空白处(即 `<br>` 附近)。
2. 从右侧字段库点击 `手术日期` 字段插入。
- **预期结果**`smart-field-wrapper` 出现在 `<p>` 标签内部,与 `<strong>手术日期:</strong>` 保持在同一行,**不会**跑到 `<p>` 外面形成新段落。
#### 3.2 段中插入字段
1. 在正常段落(如 `姓名xxx`)中间插入字段。
- **预期结果**:字段与前后文字保持在同一行,排版正常。
#### 3.3 已有字段附近插入
1. 在已有的 `smart-field-wrapper` 前后插入新字段(只要字段 key 不同,允许插入)。
- **预期结果**:新字段正确插入,不会与已有字段重叠或被挤到下一行。
---
### 4. 回归测试
1. **保存模板**:进行任意编辑后点击「保存模板」,刷新页面,确认内容已持久化。
2. **打印预览**:点击打印预览按钮,确认字段显示正常。
3. **工具栏撤销/重做按钮**:确认点击工具栏的撤销/重做按钮依然工作正常。
4. **Backspace/Delete 边界拦截**:确认光标紧邻字段时按 Backspace/Delete 仍然只删除字段本身,不会误删整段。
---
## 判定标准
- 所有编译检查和手工测试均通过,方可认为任务完成。
- 若任一测试失败,回滚修改并重新分析根因。