feat(签署): 文书作废状态展示作废章与文案
This commit is contained in:
@@ -61,6 +61,19 @@ const processedHtml = computed(() =>
|
||||
/** 文书里的填写项数量(含只读展示),用于提示"这份文书有几个填写项" */
|
||||
const fieldTotal = computed(() => progress.value.total)
|
||||
|
||||
/** 签名/状态文案:作废要单独说清楚,不能被当成"待患者签署" */
|
||||
const signatureStateLabel = computed(() => {
|
||||
if (props.task.status === 'void') {
|
||||
return '已作废'
|
||||
}
|
||||
|
||||
if (props.task.signatureDataUrl) {
|
||||
return '已采集签名'
|
||||
}
|
||||
|
||||
return props.task.status === 'signed' ? '已签署' : '待患者签署'
|
||||
})
|
||||
|
||||
/**
|
||||
* 从渲染后的 DOM 读回填写项取值。
|
||||
* 生成 HTML 时已把取值写成 attribute,这里再按取值同步一次 DOM 状态,
|
||||
@@ -156,14 +169,14 @@ onMounted(() => {
|
||||
<template>
|
||||
<article class="sign-doc">
|
||||
<div class="sign-doc-banner">
|
||||
<span>已按任务固化的文书版本渲染(填写项已按患者信息预填,签名落在文书签名位)</span>
|
||||
<span class="sign-doc-state">
|
||||
{{
|
||||
task.signatureDataUrl ? '已采集签名' : task.status === 'signed' ? '已签署' : '待患者签署'
|
||||
}}
|
||||
<span>已按任务固化的文书版本渲染(填写项已按患者信息预填)</span>
|
||||
<span class="sign-doc-state" :class="{ 'is-void': task.status === 'void' }">
|
||||
{{ signatureStateLabel }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div v-if="task.status === 'void'" class="void-stamp">已 作 废</div>
|
||||
|
||||
<!-- eslint-disable vue/no-v-html -- 内容为本系统定稿的文书 HTML(编辑器产出、仅医务人员可改),非任意用户输入 -->
|
||||
<div
|
||||
ref="containerRef"
|
||||
@@ -198,6 +211,7 @@ onMounted(() => {
|
||||
|
||||
<style scoped>
|
||||
.sign-doc {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 480px;
|
||||
@@ -207,6 +221,22 @@ onMounted(() => {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* 作废章压在文书上,位置与存量回退纸样(SigningDocumentPreview)保持一致 */
|
||||
.void-stamp {
|
||||
position: absolute;
|
||||
top: 52px;
|
||||
right: 32px;
|
||||
padding: 4px 12px;
|
||||
color: rgb(208 83 79 / 70%);
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 4px;
|
||||
pointer-events: none;
|
||||
border: 2.5px solid rgb(208 83 79 / 55%);
|
||||
border-radius: 8px;
|
||||
transform: rotate(-14deg);
|
||||
}
|
||||
|
||||
.sign-doc-banner {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@@ -227,6 +257,10 @@ onMounted(() => {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.sign-doc-state.is-void {
|
||||
background: #8a9aa3;
|
||||
}
|
||||
|
||||
.sign-doc-body {
|
||||
flex: 1;
|
||||
padding: 26px 32px 30px;
|
||||
|
||||
Reference in New Issue
Block a user