diff --git a/apps/admin/src/pages/Deposits/index.tsx b/apps/admin/src/pages/Deposits/index.tsx index 8496973..bc37853 100644 --- a/apps/admin/src/pages/Deposits/index.tsx +++ b/apps/admin/src/pages/Deposits/index.tsx @@ -33,6 +33,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([]); @@ -91,8 +95,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, @@ -104,7 +108,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); } @@ -112,8 +118,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, @@ -125,7 +131,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); } @@ -133,8 +141,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'), @@ -144,7 +152,9 @@ const DepositsPage: React.FC = () => { installmentForm.resetFields(); fetchData(); } catch (e: any) { - message.error(e?.message || '操作失败'); + if (!isFormValidationError(e)) { + message.error(e?.message || '操作失败'); + } } };