feat(signing): 支持点击文中签名位就地采集签名

This commit is contained in:
yelan
2026-09-18 13:03:25 +08:00
parent 9062d0b3c5
commit 0d3eb2b9ad
13 changed files with 1173 additions and 41 deletions
+35
View File
@@ -90,6 +90,41 @@ VERIFY_URL=http://127.0.0.1:5174/ node scripts/verify-editor-marks.cjs
截图:`04-editor-marks.png`(整窗)、`04b-editor-marks-zoom.png`(编辑区 4 倍放大,用来核对胶囊细节)、
`05-editor-marks-caret.png`(插入字符后)。
## verify-signature-click.cjs — 点击文中签名位采集签名
**为什么需要**:签名位的点击采集横跨三层(`utils/signing-document` 渲染 → `SigningDocumentInteractive`
事件委托 → 签署页弹窗与回灌),每一层都可能在编译期看不出问题:
- 渲染层挂了 `data-sign-action` 但没人监听 → 看着像按钮,点了没反应;
- 事件委托的 `closest()` 没做容器校验 → 容器外的事件也会误触发;
- 回灌走了「整篇重渲染」而不是就地改写 → 正在输入的填写项连同光标一起丢。
所以必须真的用鼠标点、真的在签字板上画一笔、再看签名图有没有回到那一个签名位上。
**用法**(登录步骤同上,端口要和实际 dev server 一致):
```bash
node scripts/login.cjs # 抓验证码,看图认数字
node scripts/login.cjs 8944 # 登录
VERIFY_URL=http://127.0.0.1:5173/ node scripts/verify-signature-click.cjs
```
脚本会:打开签署工作台 → 选一个「待签署」任务 → 输出签名位探针 → 真实点击「医师签名」→
在签字板上画一笔并确认 → 复检回显与页脚提示 → 用键盘 `Enter` 触发「患者签名」的采集入口。
**关键断言**:
- 空签名位必须同时有 `data-sign-action=signature`、`role=button`、`tabindex=0`、
`cursor: pointer` 与 `✍ 点击签名` 文案——少一样就是「看着能点其实不能点」;
- 采集后该签名位出现 `img.sign-doc-signature` 且 `src` 是 `data:image/png`,
同时采集入口被摘掉(`data-sign-action` 与 `sign-field--actionable` 都消失);
- **患者签名位的采集入口不能被误伤**——医师签名采完,患者签名还得能点;
- 页脚不再把已采集的签名位列进「还有签名位待采集」。
截图:`06-signature-actions.png`(初始:两个签名位都是可点入口)、
`07-signature-dialog.png`(弹窗标题指向被点的签名位)、`08-signature-applied.png`(回显 + 页脚更新)、
`09-signature-keyboard.png`(键盘触发)。
## 踩过的坑
改脚本前先读这段,都是实际踩出来的。