Commit Graph
39 Commits
Author SHA1 Message Date
yelan fe8cb01d4d fix(document): 统一文书纸字体为雅黑并对齐原型口径 2026-09-29 22:31:57 +08:00
cnxianyi 09bcf20def feat: 提交 2026-09-29 18:49:45 +08:00
xy 8d8fa2af47 feat: 提交 2026-09-29 15:50:21 +08:00
xy 8024075439 feat(sign): 补齐医护端与患者端签署流程 2026-09-28 19:57:57 +08:00
yelan d711e03a4e refactor(文书库): 状态口径收敛为启用中/停用两档并移除审核链路 2026-09-28 09:28:21 +08:00
yelan 7597b4764f fix(文书纸): 用 min-height + container-type 修正纸张高度下限与窄容器下表格溢出 2026-09-27 14:21:24 +08:00
yelan 431dd2cd6f refactor(文书纸): 统一 A4 纸规格并收敛各渲染场景的纸宽与页边距 2026-09-27 13:54:15 +08:00
yelan 635e998946 refactor(文书预览): 移除文书内容页签与 raw 渲染模式,统一走签署态预览 2026-09-27 12:39:23 +08:00
yelan 3cb174ce0c refactor(文书预览): 抽出统一的文书纸与预览弹窗,消除五处重复渲染
预览原先在 5 个地方各写一遍(文书库预览、编辑器签署预览、发起签署弹窗预览、
工作台在线预览、工作台文书区),基础排版已经分叉:表格边框 #52646e 与 #c8d7dd
两套色、单元格内边距 5px 7px 与 5px 9px 两个值、只有两处带宋体。
原型本身是「一处渲染(.paper + fillDocHtml)、两种外框」,这次按那个形状收口。

新增
- utils/document-paper.ts:基础排版的**唯一一份** CSS(p / h1-h4 / 表格 / 宋体)。
  运行期幂等注入 head —— 因为同一份纸有两条渲染通道:v-html(吃全局样式)与
  iframe srcdoc(隔离模板自带 style,只能吃字符串),各写一份必然漂移。
- components/document/DocumentPaper.vue:唯一的纸渲染器。
  signing / raw 两模式、interactive、取值还原、☑☐ 就地切换、签名位请求采集、
  填写项与勾选上报、getDocumentElement()(供导出 PDF)。
- components/document/DocumentPreviewDialog.vue:唯一的预览外框。
  标题/副标题/徽标、可选页签、加载与错误态、纸舞台(浅色卡片 / 深灰 A4)、
  #footer 与 #empty 插槽。
- styles/document-preview.css:页脚按钮等**插槽内容**要用的类。
  插槽节点带的是父组件 scope id,弹窗的 scoped 样式命中不了 —— 与
  signing-document.css 同一类问题,同一套解法。

迁移
- 文书库预览、编辑器签署预览、发起签署弹窗预览、工作台在线预览全部改走统一组件;
  SigningDocumentInteractive 的纸换成 DocumentPaper,只留任务外壳
  (横幅 / 作废章 / 填写项进度)。
- 删除四处基础排版副本;SimSun 与 :deep(table) 现在各只剩一处。

行为保持
- 文书库预览仍是两个页签(文书内容走 iframe 隔离、签署预览走 v-html),
  没有正文时仍给占位版式(占位符写成 {患者姓名} 原始形态,不预填示例值)。
- 工作台预览的深灰 A4 舞台、页脚说明与两个出口按钮不变。
- 作废章原先是纸的兄弟节点、DOM 顺序在前,纸改成自带白底后会被盖住 ——
  给章补 z-index,并在探针里加命中测试锁死。

验证
- 新增 probe-doc-paper.cjs:31/31 PASS。核心是**计算样式**断言
  (边框色 / 内边距 / 宋体 / border-collapse),并断言文书库预览与编辑器预览
  两份纸的样式**逐项一致** —— 只看 DOM 存在证明不了"只有一份排版"。
- 回归:probe-new-task 104/104、probe-workbench-lib 46/46(新增作废章命中测试)、
  probe-dept-confirm 36/36、probe-method-domain 14/14、probe-report-analytics 92/92。
- vue-tsc 与 eslint 0 错。

净减 888 行(309 增 / 1197 删)。
2026-09-26 20:56:02 +08:00
yelan f871613abe feat(文档库): 补检查类型与关联项目标签并按关联项目编码搜索
按原型 V10.2 卡片上的两条信息补齐(此前完全没有对应字段):

- DocumentRecord / TemplateResponseDto 增加 examType 与 projectCodes(可选)。
  后端当前不返回,声明为可选是为了它补齐后前端不用再改;取不到时整条标签不渲染。
- 卡片渲染「🔬 检查类型」标签(原型 .exam-tag 蓝底)与「关联项目」编码
  (原型 .proj-code 紫底等宽),配色照抄原型。
- 搜索关键词纳入检查类型与关联项目编码,占位文案改为原型的
  「搜索模板名 / 编号 / 科室 / 关联项目编码」。
- 演示种子补 projectCodes: ['PHA-NAR'](原型 library 里这份文书就是这条)。
  刻意不给 examType:麻精同意书是告知类文书,本来就不挂检查类型,
  演示里看不到这条标签是正确结果,不编造取值。
- mock.ts 的 toLocalDocument 是逐字段列出的,同步带上两个新字段,
  否则演示文库保存一次,卡片上的标签就丢了。
2026-09-26 19:45:31 +08:00
yelan 5ea79178cb feat(签署文书): 统一签署态文书样式并精简演示种子为单份麻精同意书 2026-09-24 17:08:12 +08:00
yelan 9a6ac93e21 feat(signing): 将签署占位符改为原子节点并支持多选选项组 2026-09-24 12:13:24 +08:00
yelan ec24e85829 feat(权限): 新增 v-permission 按钮级权限指令并移除前端权限别名 2026-09-24 10:44:00 +08:00
yelan b967077873 fix(signing-editor-marks): 统一占位符样式并修复删除后 DOM 残留
自定义渲染器渲染钩子改走 data.attrs 挂类名与 title:data.class 会被
wangEditor 的规范化函数搬进 props 且到不了 class 模块(胶囊不渲染),
data.props.className 则因 props 模块只单向写入而摘不掉旧值,导致勾选框
退格删除后 DOM 仍残留 ms-sign-box 空壳。

同时移除必填标记相关的红角标、签名位专属橙色、插入按钮与「占位符检查」
面板里的 `*` / 「必填」文案,所有占位符共用一个样式。

verify-editor-marks.cjs 增加断言台账(PASS/FAIL 并反映退出码)、叶子结构
探针与退格删除回归,README 补充「踩过的坑 · 5」说明渲染通道的选择。
2026-09-18 16:40:08 +08:00
yelan 11fe83d807 feat(签署文书): 通用文本项按出现位置独立成项并插入文本框占位符 2026-09-18 13:30:06 +08:00
yelan 0d3eb2b9ad feat(signing): 支持点击文中签名位就地采集签名 2026-09-18 13:03:25 +08:00
yelan 9062d0b3c5 feat(文档库): 编辑器内渲染占位符与勾选框胶囊 2026-09-18 13:03:11 +08:00
xy 8b1cbee16f feat(documents): 接入文档库真实接口 2026-09-17 18:46:09 +08:00
yelan 71be8fc215 feat(文书): 隐藏版本历史与删除入口 2026-09-17 16:51:27 +08:00
yelan 711860969a Merge branch 'master' of https://gitea.xinyuxi.com/zhanggaoming/xh-medical-sign-web 2026-09-17 16:48:59 +08:00
yelan 97c5182ba4 feat(文书管理): 增加版本工作流与版本历史
- 模板状态按后端原始状态展示与筛选,待审核与已驳回分开展示
- 仅已发布模板可发起签署,新增提交审核/审核通过/驳回等动作
- 新增版本历史弹窗,复用统一的模板时间格式化方法
- 演示数据补齐已签署任务的签名图,并提供获取签名 dataURL 的接口
- 修复编辑器插入占位符时未定位光标导致内容落到文首的问题
2026-09-17 16:44:54 +08:00
xy 61b4b19f55 fix(auth): 完善权限控制与强制改密流程 2026-09-17 16:33:09 +08:00
yelan 81922d774f feat(文档库): 打通模板正文真实模式并新增渲染验证
模板列表接口不返回正文,展示、编辑与发起签署前需再取版本详情获取 contentHtml,
为此新增 getTemplateContent、createTemplateWithContent、updateTemplateContent 与
deleteTemplate(归档),并在签署端按 contentSha256 缓存正文快照。

同时新增 scripts/login.cjs 与 scripts/verify-pages.cjs,通过真实登录与 CDP
渲染截图、断言关键内容并收集运行时错误,并补充 .gitignore、eslint 忽略与文档说明。
2026-09-17 14:10:45 +08:00
yelan 0d271d90be fix(签署文书): 按字段分配页眉取值下划线宽度 2026-09-16 17:35:45 +08:00
yelan ecac2bc899 feat(signing): 文书签署页添加 HIS 患者信息页眉
新增固定页眉展示患者姓名、性别、年龄、住院号/门诊号,取值自动来自 HIS
快照,仅作只读展示不参与填写项统计与签署证据。同时按字段键去重填写
项进度统计,避免正文与页眉重复字段导致分母虚高;并在文书编辑器中提
示页眉由系统自动带出、Word 自带页眉不会被转换。
2026-09-16 16:49:20 +08:00
yelan 5361839cf2 feat(签署): 支持文书填写项与签名回显 2026-09-16 15:54:40 +08:00
yelan d34ef0a0ce feat(演示): 持久化 Mock 数据并打通文档库发起签署闭环 2026-09-14 14:28:51 +08:00
yelan f4e2671da6 feat(文书编辑): 支持插入勾选框与占位符片段 2026-09-14 11:07:04 +08:00
yelan 5c5a8fc90b feat(documents): 抽取签署文书渲染管线并新增签署预览 2026-09-14 11:06:58 +08:00
yelan 7478bf04f1 style(clinical-web): 调整文档编辑区页边距与占位符对齐 2026-09-14 10:34:21 +08:00
yelan c9ea89d819 feat(editor): 精简医疗文书工具栏与悬浮菜单 2026-09-14 10:21:31 +08:00
yelan ff67f88696 build(deps): 移除 ckeditor 和 tiptap 相关依赖 2026-09-14 09:38:24 +08:00
yelan 545326bd81 feat(signing): 签署任务固化文书 HTML 并交互化渲染 2026-09-14 09:13:07 +08:00
yelan 1b576c6095 build(deps): 添加 Tiptap 富文本编辑器依赖 2026-09-11 16:13:05 +08:00
yelan 7035c6f378 build(deps): 新增 CKEditor 与 TinyMCE 依赖 2026-09-11 15:28:18 +08:00
yelan 23d85cf8ce build(clinical-web): 新增富文本编辑与 Word 转换依赖 2026-09-10 12:03:21 +08:00
yelan 7bea008680 refactor(documents): 文档库改用本地真实文书内容 2026-09-08 14:16:00 +08:00
yelan e467f03f23 feat(management): 接入文档用户权限与报表 2026-09-01 10:13:11 +08:00
yelan e7aa4843b7 feat(documents): implement document library management 2026-08-27 16:47:31 +08:00