This commit is contained in:
孙景学
2025-07-21 14:04:20 +08:00
parent 58dd501cb2
commit e9ebd6ac1c
13 changed files with 320 additions and 265 deletions

View File

@ -38,7 +38,8 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
const [suppliers, setSuppliers] = useState<Supplier[]>([]);
const [timelimitOption, setTimelimitOption] = useState<any[]>([]);
const supplierDetailModal = useSupplierDetailModal();
//提交防抖
const [submitting, setSubmitting] = useState(false);
const removeSupplier = (id: string) => {
setSuppliers(suppliers.filter((s) => s.id !== id));
};
@ -49,6 +50,8 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
};
const handleSubmit = async () => {
if (submitting) return; // 防重复提交
setSubmitting(true);
try {
const values = await form.validateFields();
if (suppliers.length === 0) {
@ -75,6 +78,8 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
}
} catch (err) {
// 校验失败
} finally {
setSubmitting(false); // 无论成功失败都解锁
}
};
useEffect(() => {
@ -114,7 +119,7 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
return (
<>
<Modal
title="供应商退出"
title="供应商黑名单"
visible={visible}
onCancel={onCancel}
width={900}
@ -143,19 +148,7 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
wrapperCol={{ flex: 1 }} // 输入框区域自适应剩余空间
layout="horizontal"
>
{/* <Form.Item
label="黑名单类型"
name="backlistType"
rules={[{ required: true, message: '请选择黑名单类型' }]}
>
<Select placeholder="请选择黑名单类型">
{DEPT_OPTIONS.map((opt) => (
<Option key={opt.value} value={opt.value}>{opt.label}</Option>
))}
</Select>
</Form.Item> */}
<Form.Item
label="时限类型"
name="timelimitType"
@ -181,7 +174,7 @@ const CreateBlacklistModal: React.FC<CreateBlacklistModalProps> = ({
</div>
<div style={{ marginTop: 28, textAlign: "center" }}>
<Button type="primary" style={{ marginRight: 24 }} onClick={handleSubmit}></Button>
<Button type="primary" style={{ marginRight: 24 }} onClick={handleSubmit} disabled={submitting}></Button>
<Button onClick={onCancel}></Button>
</div>
</Modal>