diff --git a/apps/admin/src/pages/Deposits/index.tsx b/apps/admin/src/pages/Deposits/index.tsx index 92f2fde..a74e734 100644 --- a/apps/admin/src/pages/Deposits/index.tsx +++ b/apps/admin/src/pages/Deposits/index.tsx @@ -39,6 +39,10 @@ const installmentStatusMap: Record = { paid: { text: '已缴', color: 'green' }, }; +const isFormValidationError = (error: unknown) => + typeof error === 'object' + && error !== null + && Array.isArray((error as { errorFields?: unknown }).errorFields); const DepositsPage: React.FC = () => { const [data, setData] = useState([]); @@ -99,8 +103,8 @@ const DepositsPage: React.FC = () => { const handleCreate = async () => { setSaving(true); - const values = await createForm.validateFields(); try { + const values = await createForm.validateFields(); await api.post('/deposits', { studentId: values.studentId, amount: values.amount, @@ -112,7 +116,9 @@ const DepositsPage: React.FC = () => { createForm.resetFields(); fetchData(); } catch (e: any) { - message.error(e?.message || '操作失败'); + if (!isFormValidationError(e)) { + message.error(e?.message || '操作失败'); + } } finally { setSaving(false); } @@ -120,8 +126,8 @@ const DepositsPage: React.FC = () => { const handleRefund = async () => { setSaving(true); - const values = await refundForm.validateFields(); try { + const values = await refundForm.validateFields(); await api.put(`/deposits/${refundModal.id}/refund`, { refundDate: values.refundDate.format('YYYY-MM-DD'), deductionAmount: values.deductionAmount || 0, @@ -133,7 +139,9 @@ const DepositsPage: React.FC = () => { refundForm.resetFields(); fetchData(); } catch (e: any) { - message.error(e?.message || '操作失败'); + if (!isFormValidationError(e)) { + message.error(e?.message || '操作失败'); + } } finally { setSaving(false); } @@ -141,8 +149,8 @@ const DepositsPage: React.FC = () => { const handleAddInstallment = async () => { if (installmentModal == null) return; - const values = await installmentForm.validateFields(); try { + const values = await installmentForm.validateFields(); await api.post(`/deposits/${installmentModal}/installments`, { amount: values.amount, dueDate: values.dueDate.format('YYYY-MM-DD'), @@ -152,7 +160,9 @@ const DepositsPage: React.FC = () => { installmentForm.resetFields(); fetchData(); } catch (e: any) { - message.error(e?.message || '操作失败'); + if (!isFormValidationError(e)) { + message.error(e?.message || '操作失败'); + } } };