forked from wangziqi/gongxue-base
fix: 添加表单验证错误处理逻辑以改善错误提示
This commit is contained in:
@@ -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) {
|
||||||
message.error(e?.message || '操作失败');
|
if (!isFormValidationError(e)) {
|
||||||
|
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) {
|
||||||
message.error(e?.message || '操作失败');
|
if (!isFormValidationError(e)) {
|
||||||
|
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,7 +152,9 @@ const DepositsPage: React.FC = () => {
|
|||||||
installmentForm.resetFields();
|
installmentForm.resetFields();
|
||||||
fetchData();
|
fetchData();
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
message.error(e?.message || '操作失败');
|
if (!isFormValidationError(e)) {
|
||||||
|
message.error(e?.message || '操作失败');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user