diff --git a/apps/admin/src/pages/Bills/index.tsx b/apps/admin/src/pages/Bills/index.tsx index c4e1030..8494f17 100644 --- a/apps/admin/src/pages/Bills/index.tsx +++ b/apps/admin/src/pages/Bills/index.tsx @@ -89,9 +89,11 @@ const BillsPage: React.FC = () => { }, [bills, searchText, filterStatus]); const handleGenerate = async () => { - setSaving(true); - const values = await generateForm.validateFields(); + if (saving) return; + try { + const values = await generateForm.validateFields(); + setSaving(true); const res: any = await api.post('/bills/generate', { periodStart: values.period[0].format('YYYY-MM-DD'), periodEnd: values.period[1].format('YYYY-MM-DD'), @@ -99,9 +101,12 @@ const BillsPage: React.FC = () => { message.success(res.message || '生成成功'); setGenerateModal(false); generateForm.resetFields(); - fetchData(); + void fetchData(); } catch (e: any) { - message.error(e?.message || '生成失败'); + // Ant Design 的表单校验失败会 reject;字段本身已展示错误,无需再弹“生成失败”。 + if (!e?.errorFields) { + message.error(e?.message || '生成失败'); + } } finally { setSaving(false); }