|
|
@@ -139,6 +139,18 @@
|
|
|
>
|
|
|
<template #default="{ row }">{{ row.collectDate || '—' }}</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="monthlyVerifyNo"
|
|
|
+ label="当月核量号"
|
|
|
+ min-width="120"
|
|
|
+ align="center"
|
|
|
+ header-align="center"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ <template #default="{ row }">
|
|
|
+ <span class="mono">{{ row.monthlyVerifyNo || '—' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
prop="labStorageCode"
|
|
|
label="实验室流转编号"
|
|
|
@@ -151,27 +163,32 @@
|
|
|
<span class="mono">{{ row.labStorageCode || '—' }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="协议状态" min-width="100" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-tag :type="donationStatusTagType(row.donationStatus)" size="small">
|
|
|
+ {{ donationStatusDisplayLabel(row.donationStatus, row.voidType) }}
|
|
|
+ </el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="motherName"
|
|
|
- label="母亲姓名"
|
|
|
- min-width="100"
|
|
|
+ prop="voidDesc"
|
|
|
+ label="废弃原因"
|
|
|
+ min-width="140"
|
|
|
align="center"
|
|
|
header-align="center"
|
|
|
show-overflow-tooltip
|
|
|
>
|
|
|
- <template #default="{ row }">{{ row.motherName || '—' }}</template>
|
|
|
+ <template #default="{ row }">{{ row.voidDesc || '—' }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="protocolNo"
|
|
|
- label="捐赠单号"
|
|
|
- min-width="140"
|
|
|
+ prop="motherName"
|
|
|
+ label="母亲姓名"
|
|
|
+ min-width="100"
|
|
|
align="center"
|
|
|
header-align="center"
|
|
|
show-overflow-tooltip
|
|
|
>
|
|
|
- <template #default="{ row }">
|
|
|
- <span class="mono">{{ row.protocolNo || '—' }}</span>
|
|
|
- </template>
|
|
|
+ <template #default="{ row }">{{ row.motherName || '—' }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="sampleTypeName"
|
|
|
@@ -183,13 +200,6 @@
|
|
|
>
|
|
|
<template #default="{ row }">{{ row.sampleTypeName || '—' }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="是否同存" min-width="90" align="center" header-align="center">
|
|
|
- <template #default="{ row }">
|
|
|
- <el-tag :type="row.isCoStored ? 'warning' : 'info'" size="small">
|
|
|
- {{ row.isCoStored ? '是' : '否' }}
|
|
|
- </el-tag>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
<el-table-column
|
|
|
prop="regionName"
|
|
|
label="采集地区"
|
|
|
@@ -210,6 +220,17 @@
|
|
|
>
|
|
|
<template #default="{ row }">{{ row.hospitalName || '—' }}</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="newbornDeliveryTime"
|
|
|
+ label="分娩时间"
|
|
|
+ min-width="160"
|
|
|
+ align="center"
|
|
|
+ header-align="center"
|
|
|
+ >
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ formatDisplayOrDash(row.newbornDeliveryTime)
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
prop="sampleCollectTime"
|
|
|
label="采集时间"
|
|
|
@@ -244,9 +265,66 @@
|
|
|
{{ row.transportType ? transportTypeLabel(row.transportType) : '—' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="新生儿性别" min-width="100" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ row.newbornSex ? newbornSexLabel(row.newbornSex) : '—'
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="新生儿体重" min-width="100" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">{{ row.newbornWeightGram || '—' }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="分娩方式" min-width="100" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ row.deliveryMode ? deliveryModeLabel(row.deliveryMode) : '—'
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="胎次" min-width="72" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">{{ row.birthOrder || '—' }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="maternalBloodCollectTime"
|
|
|
+ label="母血采集时间"
|
|
|
+ min-width="160"
|
|
|
+ align="center"
|
|
|
+ header-align="center"
|
|
|
+ >
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ formatDisplayOrDash(row.maternalBloodCollectTime)
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="知情同意书" min-width="100" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ hasAttachmentUrls(row.consentFormUrls) ? '有' : '—'
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="传染病检测报告"
|
|
|
+ min-width="120"
|
|
|
+ align="center"
|
|
|
+ header-align="center"
|
|
|
+ >
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ hasAttachmentUrls(row.infectiousDiseaseReportUrls) ? '有' : '—'
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="协议书" min-width="90" align="center" header-align="center">
|
|
|
+ <template #default="{ row }">{{
|
|
|
+ hasAttachmentUrls(row.attachmentUrls) ? '有' : '—'
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="remark"
|
|
|
+ label="备注"
|
|
|
+ min-width="140"
|
|
|
+ align="center"
|
|
|
+ header-align="center"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ <template #default="{ row }">{{ row.remark || '—' }}</template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
label="操作"
|
|
|
- min-width="200"
|
|
|
+ min-width="260"
|
|
|
fixed="right"
|
|
|
align="center"
|
|
|
header-align="center"
|
|
|
@@ -355,7 +433,13 @@
|
|
|
fetchDeleteResearchDonation,
|
|
|
type ResearchDonationRow
|
|
|
} from '@/api/research-donation'
|
|
|
- import { transportTypeLabel } from '@/utils/status-tag-registry'
|
|
|
+ import {
|
|
|
+ transportTypeLabel,
|
|
|
+ donationStatusDisplayLabel,
|
|
|
+ donationStatusTagType,
|
|
|
+ newbornSexLabel,
|
|
|
+ deliveryModeLabel
|
|
|
+ } from '@/utils/status-tag-registry'
|
|
|
import {
|
|
|
formatProtocolDocDeleteConfirm,
|
|
|
formatProtocolDocBatchDeleteConfirm
|
|
|
@@ -369,6 +453,10 @@
|
|
|
|
|
|
defineOptions({ name: 'DonationProtocolTab' })
|
|
|
|
|
|
+ function hasAttachmentUrls(raw: string | undefined | null): boolean {
|
|
|
+ return Boolean(String(raw || '').trim())
|
|
|
+ }
|
|
|
+
|
|
|
const searchForm = reactive<{ keyword: string; donationStatus: string }>({
|
|
|
keyword: '',
|
|
|
donationStatus: ''
|