فهرست منبع

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

Co-authored-by: Cursor <cursoragent@cursor.com>
zlwu 2 هفته پیش
والد
کامیت
0ab0774e8a
1فایلهای تغییر یافته به همراه107 افزوده شده و 19 حذف شده
  1. 107 19
      web-admin/src/views/cell-storage/protocol-audit/DonationProtocolTab.vue

+ 107 - 19
web-admin/src/views/cell-storage/protocol-audit/DonationProtocolTab.vue

@@ -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: ''