fix: guard bill generation submission

This commit is contained in:
2026-07-14 11:20:28 +08:00
parent 5cf6aede1e
commit aaf49d5580

View File

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