feat(signing): 支持点击文中签名位就地采集签名
This commit is contained in:
+13
-2
@@ -122,13 +122,14 @@ ClinicalLayout
|
||||
|
||||
- `components/signing/NewSigningTaskDialog.vue`:新增签署任务公共弹窗,供签署工作台和文档库管理复用;
|
||||
- `composables/useSigningTaskForm.ts`:封装患者定位、就诊选择、模板选择、签署方式、校验和任务提交状态;
|
||||
- `utils/signing-document.ts`:把文书定稿 HTML 变换为签署态 HTML 的渲染管线(占位符填充、签名域、勾选与行内选项识别),签署工作台的任务详情和文档库「签署预览」共用同一份实现。
|
||||
- `utils/signing-document.ts`:把文书定稿 HTML 变换为签署态 HTML 的渲染管线(占位符填充、签名域、勾选与行内选项识别),签署工作台的任务详情和文档库「签署预览」共用同一份实现;
|
||||
- `utils/signing-editor-marks.ts`:编辑区里把占位符与勾选框渲染成带类型角标的胶囊,只改渲染不改数据(见下「文书编写约定」)。
|
||||
|
||||
## 文书编写约定
|
||||
|
||||
科室在文档库的 Word 编辑器中维护文书,签署时需要交互化的内容按下面的写法即可,系统在签署和「签署预览」时自动转换:
|
||||
|
||||
- 占位符:`{患者姓名}`、`{性别}`、`{年龄}`、`{就诊号}`、`{签署日期}`、`{患者签名}` 等,由签署任务的患者与就诊快照填充;
|
||||
- 占位符:`{患者姓名}`、`{性别}`、`{年龄}`、`{就诊号}`、`{签署日期}`、`{患者签名}`、`{医师签名}` 等,由签署任务的患者与就诊快照填充;
|
||||
- 勾选表:做成表格,第一行表头写「勾选」,另设一列写「项目」作为勾选条目名,签署时「勾选」列每个单元格变成复选框;
|
||||
- 行内选项:正文里直接写方框符号,如 `□否 □是`、`□同意 □不同意`。同一段落或同一单元格内出现两个及以上方框时按二选一(互斥单选)处理,只有一个方框时保持独立复选框语义。
|
||||
|
||||
@@ -136,6 +137,16 @@ ClinicalLayout
|
||||
|
||||
识别规则集中在 `utils/signing-document.ts`,调整后签署端与「签署预览」会同步生效。
|
||||
|
||||
### 编辑区与签署态的呈现差异
|
||||
|
||||
**编辑区**(`utils/signing-editor-marks.ts`)把 `{…}` 与 `□` 渲染成带类型角标的胶囊,让科室一眼分出「正文」和「待签署的内容」。这是**只读投影**:靠 wangEditor 的 `decorate` 把文本切成叶子再挂样式,`editor.getHtml()` 输出一字未变,保存与签署链路的口径不受影响。
|
||||
|
||||
**签署态**(`utils/signing-document.ts`)把占位符就地换成可交互控件。其中**签名位**(`kind=signature`)在任务处于可签署状态时渲染成「✍ 点击签名」的可点击入口:点一下就打开签字板,签完的图就地回显到该签名位,只回填这一个字段,**不会结束签署任务**——任务级的「签署完成」仍由主签名位(`{患者签名}`)通过「手写板签署 / 线上签署」触发。
|
||||
|
||||
签名位之间互不覆盖:主签名位存在任务的 `signatureDataUrl`(提交时由接口固定落到 `signature` 字段),其余签名位(医师签名等)各自存在 `fieldAnswers` 里。
|
||||
|
||||
签名图只作为渲染结果里的 `<img src>` 存在,**不写进模板正文**:它是 base64 大字符串,进正文会让模板哈希随签名变化、缓存键跟着失效。
|
||||
|
||||
## API 与类型约定
|
||||
|
||||
API 模块与页面按业务域对应。工作台页面使用 `api/workbench` 下的页面文件,管理页面使用 `api/management` 下的直接文件:
|
||||
|
||||
Reference in New Issue
Block a user