From aaf49d55802fd8f19bc9f384fa38cf25be6ce7c2 Mon Sep 17 00:00:00 2001 From: wangziqi Date: Tue, 14 Jul 2026 11:20:28 +0800 Subject: [PATCH] fix: guard bill generation submission --- apps/admin/src/pages/Bills/index.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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); }