feat(web-admin): align research donation audit list with excel columns

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-10-13 13:14:09 +08:00
1 parent aa231ea5f8
commit 0ab0774e8a
1 file changed
+109 -21
@@ -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,6 +163,23 @@
<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="voidDesc"
label="废弃原因"
min-width="140"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ row.voidDesc || '—' }}</template>
</el-table-column>
<el-table-column
prop="motherName"
label="母亲姓名"
@@ -161,18 +190,6 @@
>
<template #default="{ row }">{{ row.motherName || '—' }}</template>
</el-table-column>
<el-table-column
prop="protocolNo"
label="捐赠单号"
min-width="140"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">
<span class="mono">{{ row.protocolNo || '—' }}</span>
</template>
</el-table-column>
<el-table-column
prop="sampleTypeName"
label="样本类型"
@@ -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: ''