feat(workbench): 接入签署投递与产物管理

This commit is contained in:
yelan
2026-09-01 10:12:22 +08:00
parent 2e2d2250dd
commit beeb98d18f
6 changed files with 434 additions and 9 deletions
@@ -1,7 +1,8 @@
<script setup lang="ts">
import type { SigningTaskEvent, SigningTaskRecord } from '@/api/workbench/types'
import type { SigningArtifact, SigningTaskEvent, SigningTaskRecord } from '@/api/workbench/types'
import SigningDocumentPreview from './SigningDocumentPreview.vue'
import SigningArtifactList from './SigningArtifactList.vue'
import TaskAuditTimeline from './TaskAuditTimeline.vue'
import type { SigningTaskAction } from '../types'
@@ -12,10 +13,16 @@ defineProps<{
auditLoading: boolean
auditError: boolean
allowLocalSigning: boolean
artifacts: SigningArtifact[]
artifactsLoading: boolean
artifactsError: boolean
padSessionStatus: string | null
padSessionLoading: boolean
}>()
const emit = defineEmits<{
action: [action: SigningTaskAction]
downloadArtifact: [artifact: SigningArtifact]
}>()
</script>
@@ -43,7 +50,20 @@ const emit = defineEmits<{
转为短信发送
</button>
</template>
<span v-else class="action-hint">手写板设备签署接口待接入</span>
<template v-else>
<button
type="button"
class="action-button"
:disabled="padSessionLoading"
@click="emit('action', 'create-pad-session')"
>
{{ padSessionLoading ? '创建会话中…' : '创建手写板会话' }}
</button>
<span v-if="padSessionStatus" class="action-hint">
会话状态:{{ padSessionStatus }};等待设备适配器读取 challenge
</span>
<span v-else class="action-hint">创建会话后仍需接入厂商设备适配器完成签名采集</span>
</template>
</template>
<template v-else-if="task.status === 'pending' && task.method === 'sms'">
@@ -120,6 +140,12 @@ const emit = defineEmits<{
<SigningDocumentPreview :task="task" />
<TaskAuditTimeline :events="auditEvents" :loading="auditLoading" :error="auditError" />
<SigningArtifactList
:artifacts="artifacts"
:loading="artifactsLoading"
:error="artifactsError"
@download="emit('downloadArtifact', $event)"
/>
</template>
<div v-else class="detail-empty">