From 52cec7f3e3fa28dbc48fc6391ec12d811b5d6762 Mon Sep 17 00:00:00 2001 From: xianyi Date: Thu, 25 Dec 2025 14:00:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BD=93=E6=A3=80=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=93=8D=E4=BD=9C=E7=8A=B6=E6=80=81=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/exam/ExamModal.tsx | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/components/exam/ExamModal.tsx b/src/components/exam/ExamModal.tsx index d38a87d..cc7d871 100644 --- a/src/components/exam/ExamModal.tsx +++ b/src/components/exam/ExamModal.tsx @@ -3,6 +3,7 @@ import { useEffect, useState } from 'react'; import type { ExamClient, ExamModalTab } from '../../data/mockData'; import type { CustomerAppointmentInfo, CustomerExamAddItem, CustomerInfo, PhysicalExamProgressItem } from '../../api'; import { getCustomerDetail, getPhysicalExamProgressDetail } from '../../api'; +import { isExamActionDone } from '../../utils/examActions'; import { ExamDetailPanel } from './ExamDetailPanel'; import { ExamAddonPanel } from './ExamAddonPanel'; import { ExamPrintPanel } from './ExamPrintPanel'; @@ -25,9 +26,13 @@ export const ExamModal = ({ client, tab, onTabChange, onClose }: ExamModalProps) { key: 'delivery', label: '报告寄送' }, ]; - const signDone = client.signStatus === '已登记' || client.checkedItems.includes('签到'); + // 检查操作是否已完成(与 ExamSection 中的逻辑保持一致) + const idCardSignInDone = isExamActionDone(client.id, 'idCardSignIn'); + const printSignDone = isExamActionDone(client.id, 'printSign'); + + const signDone = idCardSignInDone || client.signStatus === '已登记' || client.checkedItems.includes('签到'); const addonDone = (client.addonCount || 0) > 0; - const printDone = !!client.guidePrinted; + const printDone = printSignDone || !!client.guidePrinted; const deliveryDone = !!client.deliveryDone; const tabDone: Record = { @@ -129,12 +134,15 @@ export const ExamModal = ({ client, tab, onTabChange, onClose }: ExamModalProps) }`} disabled={signBusy} > - {t.label} - {t.key === 'addon' && (client.addonCount || 0) > 0 && ( - - ({client.addonCount}) - - )} + + {t.label} + {isDone && } + {t.key === 'addon' && (client.addonCount || 0) > 0 && ( + + ({client.addonCount}) + + )} + ); })}