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

This commit is contained in:
xyx
2026-07-13 16:15:04 +08:00
parent 6031916d78
commit 70cbb617c6

View File

@@ -39,6 +39,10 @@ const installmentStatusMap: Record<string, { text: string; color: string }> = {
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<any[]>([]);
@@ -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 || '操作失败');
}
}
};