fix: 添加表单验证错误处理逻辑以改善错误提示

This commit is contained in:
xyx
2026-07-13 16:15:04 +08:00
parent ceb0e2bf14
commit 7bfd30b513

View File

@@ -33,6 +33,10 @@ const installmentStatusMap: Record<string, { text: string; color: string }> = {
paid: { text: '已缴', color: 'green' }, 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 DepositsPage: React.FC = () => {
const [data, setData] = useState<any[]>([]); const [data, setData] = useState<any[]>([]);
@@ -91,8 +95,8 @@ const DepositsPage: React.FC = () => {
const handleCreate = async () => { const handleCreate = async () => {
setSaving(true); setSaving(true);
const values = await createForm.validateFields();
try { try {
const values = await createForm.validateFields();
await api.post('/deposits', { await api.post('/deposits', {
studentId: values.studentId, studentId: values.studentId,
amount: values.amount, amount: values.amount,
@@ -104,7 +108,9 @@ const DepositsPage: React.FC = () => {
createForm.resetFields(); createForm.resetFields();
fetchData(); fetchData();
} catch (e: any) { } catch (e: any) {
if (!isFormValidationError(e)) {
message.error(e?.message || '操作失败'); message.error(e?.message || '操作失败');
}
} finally { } finally {
setSaving(false); setSaving(false);
} }
@@ -112,8 +118,8 @@ const DepositsPage: React.FC = () => {
const handleRefund = async () => { const handleRefund = async () => {
setSaving(true); setSaving(true);
const values = await refundForm.validateFields();
try { try {
const values = await refundForm.validateFields();
await api.put(`/deposits/${refundModal.id}/refund`, { await api.put(`/deposits/${refundModal.id}/refund`, {
refundDate: values.refundDate.format('YYYY-MM-DD'), refundDate: values.refundDate.format('YYYY-MM-DD'),
deductionAmount: values.deductionAmount || 0, deductionAmount: values.deductionAmount || 0,
@@ -125,7 +131,9 @@ const DepositsPage: React.FC = () => {
refundForm.resetFields(); refundForm.resetFields();
fetchData(); fetchData();
} catch (e: any) { } catch (e: any) {
if (!isFormValidationError(e)) {
message.error(e?.message || '操作失败'); message.error(e?.message || '操作失败');
}
} finally { } finally {
setSaving(false); setSaving(false);
} }
@@ -133,8 +141,8 @@ const DepositsPage: React.FC = () => {
const handleAddInstallment = async () => { const handleAddInstallment = async () => {
if (installmentModal == null) return; if (installmentModal == null) return;
const values = await installmentForm.validateFields();
try { try {
const values = await installmentForm.validateFields();
await api.post(`/deposits/${installmentModal}/installments`, { await api.post(`/deposits/${installmentModal}/installments`, {
amount: values.amount, amount: values.amount,
dueDate: values.dueDate.format('YYYY-MM-DD'), dueDate: values.dueDate.format('YYYY-MM-DD'),
@@ -144,8 +152,10 @@ const DepositsPage: React.FC = () => {
installmentForm.resetFields(); installmentForm.resetFields();
fetchData(); fetchData();
} catch (e: any) { } catch (e: any) {
if (!isFormValidationError(e)) {
message.error(e?.message || '操作失败'); message.error(e?.message || '操作失败');
} }
}
}; };
const handlePayInstallment = async (installmentId: number) => { const handlePayInstallment = async (installmentId: number) => {