From 635e99894657f2f08bcd3cf0749ee8e316af1e60 Mon Sep 17 00:00:00 2001 From: yelan Date: Sun, 27 Sep 2026 12:39:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=96=87=E4=B9=A6=E9=A2=84=E8=A7=88):?= =?UTF-8?q?=20=E7=A7=BB=E9=99=A4=E6=96=87=E4=B9=A6=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E9=A1=B5=E7=AD=BE=E4=B8=8E=20raw=20=E6=B8=B2=E6=9F=93=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E7=BB=9F=E4=B8=80=E8=B5=B0=E7=AD=BE=E7=BD=B2?= =?UTF-8?q?=E6=80=81=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/document/DocumentPaper.vue | 34 ++------------ .../document/DocumentPreviewDialog.vue | 12 ----- clinical-web/src/utils/document-paper.ts | 35 +++++--------- .../components/DocumentPreviewDialog.vue | 47 ++++++------------- 4 files changed, 28 insertions(+), 100 deletions(-) diff --git a/clinical-web/src/components/document/DocumentPaper.vue b/clinical-web/src/components/document/DocumentPaper.vue index 1e66dbf..50bc163 100644 --- a/clinical-web/src/components/document/DocumentPaper.vue +++ b/clinical-web/src/components/document/DocumentPaper.vue @@ -30,18 +30,12 @@ import { type SigningFieldProgress, type SigningSignatureRequest, } from '@/utils/signing-document' -import { buildPaperSrcDoc, ensureDocumentPaperStyle } from '@/utils/document-paper' +import { ensureDocumentPaperStyle } from '@/utils/document-paper' const props = withDefaults( defineProps<{ /** 文书正文(模板定稿 / 任务固化快照) */ contentHtml: string - /** - * 渲染模式。 - * - `signing`(默认):按签署态渲染(占位符回填、勾选项交互化、签名域) - * - `raw`:原样展示定稿(iframe 隔离模板自带的 ` diff --git a/clinical-web/src/components/document/DocumentPreviewDialog.vue b/clinical-web/src/components/document/DocumentPreviewDialog.vue index c8557db..ee50972 100644 --- a/clinical-web/src/components/document/DocumentPreviewDialog.vue +++ b/clinical-web/src/components/document/DocumentPreviewDialog.vue @@ -35,8 +35,6 @@ const props = withDefaults( activeTab?: string /** 正文(模板定稿 / 任务固化快照) */ contentHtml: string - /** 渲染模式,透传给 DocumentPaper */ - mode?: 'signing' | 'raw' data?: SigningDocumentData interactive?: boolean signatureActionable?: boolean @@ -71,7 +69,6 @@ const props = withDefaults( badges: () => [], tabs: undefined, activeTab: '', - mode: 'signing', data: () => ({}), interactive: false, signatureActionable: undefined, @@ -168,7 +165,6 @@ defineExpose({ getDocumentElement }) v-if="hasPaper" ref="paperRef" :content-html="contentHtml" - :mode="mode" :data="data" :interactive="interactive" :signature-actionable="signatureActionable" @@ -362,14 +358,6 @@ defineExpose({ getDocumentElement }) box-shadow: 0 6px 22px rgb(0 0 0 / 45%); } -/* 深灰底上纸要自己撑满高度,否则短文书会缩成一条 */ -.preview-body--stage :deep(.doc-paper-frame) { - width: 640px; - max-width: 100%; - height: 905px; - box-shadow: 0 6px 22px rgb(0 0 0 / 45%); -} - .preview-state { display: grid; min-height: 420px; diff --git a/clinical-web/src/utils/document-paper.ts b/clinical-web/src/utils/document-paper.ts index fb33bc7..0e4208f 100644 --- a/clinical-web/src/utils/document-paper.ts +++ b/clinical-web/src/utils/document-paper.ts @@ -1,15 +1,19 @@ /** * 文书纸的基础排版(全项目唯一一份)。 * - * 为什么单独成文件、还要在运行期注入:同一份「文书纸」有**两种渲染通道**—— + * 为什么单独成文件、还要在运行期注入:同一份「文书纸」原先有**两种渲染通道**—— * ① v-html 直接挂进页面(签署工作台、各类预览)→ 只能吃全局样式; * ② iframe srcdoc(文书库的「文书内容」页签,隔离模板自带的 ``, - `${contentHtml}`, - ].join('') -} diff --git a/clinical-web/src/views/management/documents/components/DocumentPreviewDialog.vue b/clinical-web/src/views/management/documents/components/DocumentPreviewDialog.vue index 88da42b..1287c03 100644 --- a/clinical-web/src/views/management/documents/components/DocumentPreviewDialog.vue +++ b/clinical-web/src/views/management/documents/components/DocumentPreviewDialog.vue @@ -2,14 +2,17 @@ /** * 文书库的模板预览。 * - * 它只是**统一预览弹窗**在文书库这一处的配置:两个页签(文书内容 / 签署预览)+ - * 「用此模板发起签署」出口。纸的渲染、外框、页脚按钮都在 components/document/ 里, + * 它只是**统一预览弹窗**在文书库这一处的配置:签署预览 + 「用此模板发起签署」出口。 + * 纸的渲染、外框、页脚按钮都在 components/document/ 里, * 这里不再实现任何渲染逻辑 —— 改版前这一处自己抄了一份基础排版(表格边框、字号、宋体), * 与签署工作台那份已经分叉。 * - * 两个页签的区别只在渲染模式: - * - 文书内容:`mode="raw"`,原样展示定稿(iframe 隔离模板自带的 `