feat(patient-h5): 接入签署令牌与签名上传

This commit is contained in:
yelan
2026-09-01 10:13:45 +08:00
parent e467f03f23
commit 40cd313786
11 changed files with 614 additions and 42 deletions
+38 -2
View File
@@ -1,10 +1,38 @@
<script setup lang="ts">
import { computed } from 'vue'
import { useRouter } from 'vue-router'
import { resetSignFlow, signingState } from '@/composables/useSignFlow'
const router = useRouter()
const resultTitle = computed(() =>
signingState.mode === 'real' && signingState.backendStatus === 'GENERATING'
? '签名已提交,文书生成中'
: '知情同意书已提交',
)
const resultCopy = computed(() =>
signingState.mode === 'real' && signingState.backendStatus === 'GENERATING'
? '签名图片已安全提交,系统正在生成签署后文书。最终状态以医签通服务端为准。'
: '本次签署结果已提交至医签通。请按照医务人员指引完成后续诊疗安排。',
)
const statusLabel = computed(() => {
if (signingState.mode !== 'real') {
return '演示完成'
}
const labels: Record<string, string> = {
SIGNED: '已签署',
GENERATING: '生成中',
WAITING_SIGN: '待签署',
FAILED: '处理失败',
}
return labels[signingState.backendStatus] ?? (signingState.backendStatus || '已提交')
})
function returnToEntry() {
resetSignFlow()
void router.replace('/entry')
@@ -15,8 +43,8 @@ function returnToEntry() {
<main class="mobile-shell result-shell">
<div class="result-icon">✓</div>
<p class="eyebrow">签署完成</p>
<h1>知情同意书已提交</h1>
<p class="result-copy">本次签署结果已提交至医签通。请按照医务人员指引完成后续诊疗安排。</p>
<h1>{{ resultTitle }}</h1>
<p class="result-copy">{{ resultCopy }}</p>
<section class="mobile-card result-card">
<div>
@@ -31,6 +59,14 @@ function returnToEntry() {
<span>提交时间</span>
<strong>{{ signingState.submittedAt }}</strong>
</div>
<div v-if="signingState.mode === 'real'">
<span>服务端状态</span>
<strong>{{ statusLabel }}</strong>
</div>
<div v-if="signingState.mode === 'real'">
<span>任务编号</span>
<strong>{{ signingState.taskNo }}</strong>
</div>
</section>
<p class="secure-note">请不要重复提交。如需修改,请联系现场医务人员。</p>