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}) + + )} + ); })}