diff --git a/src/components/exam/ExamSignPanel.tsx b/src/components/exam/ExamSignPanel.tsx index 76d54e3..51fb7dc 100644 --- a/src/components/exam/ExamSignPanel.tsx +++ b/src/components/exam/ExamSignPanel.tsx @@ -299,7 +299,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { if (examId) { refreshTijianPdfs(examId); } - }, 2000); + }, 500); } else { setSubmitMessage(res.Message || '签名提交失败'); } @@ -988,7 +988,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { setDaojiandanSubmitMessage(null); daojiandanSignaturePadRef.current?.clear(); setShowDaojiandanPreview(true); - }, 2000); + }, 500); } else { setDaojiandanSubmitMessage(res.Message || '签名提交失败'); } @@ -1018,6 +1018,9 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { return; } + // 记录当前正在签名的加项单,用于签名成功后重新选中它 + const justSignedCombinationCode = currentAddItemBill.combinationCode; + setAddItemBillSubmitLoading(true); setAddItemBillSubmitMessage(null); try { @@ -1050,8 +1053,13 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { is_signed: item.is_sign === 1, })); setAddItemBillList(addItemList); + + // 优先选中刚刚签名的那一张,其次选未签名的,其次第一张 + const justSigned = addItemList.find( + (bill) => bill.combinationCode === justSignedCombinationCode + ); const unsigned = addItemList.find((bill) => bill.is_signed !== true); - setCurrentAddItemBill(unsigned || addItemList[0] || null); + setCurrentAddItemBill(justSigned || unsigned || addItemList[0] || null); } else { setAddItemBillList([]); setCurrentAddItemBill(null); @@ -1066,7 +1074,7 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => { setAddItemBillSubmitMessage(null); addItemBillSignaturePadRef.current?.clear(); setShowAddItemBillPreview(true); - }, 2000); + }, 500); } else { setAddItemBillSubmitMessage(res.Message || '签名提交失败'); }