fix: 添加表单验证错误处理逻辑以改善错误提示
This commit is contained in:
@@ -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 || '操作失败');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user