评审结果提交增加防抖

This commit is contained in:
孙景学
2025-08-05 18:22:26 +08:00
parent f432c6e519
commit 0232f4e35e
2 changed files with 64 additions and 45 deletions

View File

@ -55,6 +55,8 @@ const GroupLeaderModal: React.FC<GroupLeaderModalProps> = ({
const [supplierReviewerMap, setSupplierReviewerMap] = useState < Record < string, string[]>> ({}); const [supplierReviewerMap, setSupplierReviewerMap] = useState < Record < string, string[]>> ({});
const [groupSummaryResult, setGroupSummaryResult] = useState < { [k: string]: '0' | '1' | undefined } > ({}); const [groupSummaryResult, setGroupSummaryResult] = useState < { [k: string]: '0' | '1' | undefined } > ({});
const [remarkModal, setRemarkModal] = useState({ open: false, remark: '', file: undefined as any }); const [remarkModal, setRemarkModal] = useState({ open: false, remark: '', file: undefined as any });
//提交防抖
const [submitting, setSubmitting] = useState(false);
// 适配新结构 // 适配新结构
useEffect(() => { useEffect(() => {
@ -136,12 +138,20 @@ const GroupLeaderModal: React.FC<GroupLeaderModalProps> = ({
return return
} }
} }
if (submitting) return; // 防重复提交
setSubmitting(true);
try {
update({ coscoAccessUserItemList: summaryParams, accessWorkId }).then((res: any) => { update({ coscoAccessUserItemList: summaryParams, accessWorkId }).then((res: any) => {
if (res.code === 200) { if (res.code === 200) {
message.success('提交成功'); message.success('提交成功');
onSubmit && onSubmit(); onSubmit && onSubmit();
} }
}); });
}
finally {
setSubmitting(false); // 无论成功失败都解锁
}
}; };
// 构造二级表头 // 构造二级表头
@ -270,7 +280,7 @@ const GroupLeaderModal: React.FC<GroupLeaderModalProps> = ({
{view ? '关闭' : '取消'} {view ? '关闭' : '取消'}
</Button>, </Button>,
!view && ( !view && (
<Button key="submit" type="primary" onClick={handleSubmit}> <Button key="submit" type="primary" onClick={handleSubmit} disabled={submitting}>
</Button> </Button>
) )

View File

@ -73,7 +73,8 @@ const ResultModal: React.FC<ResultModalProps> = ({
const [remarks, setRemarks] = useState(''); const [remarks, setRemarks] = useState('');
const [fileList, setFileList] = useState < any[] > ([]); const [fileList, setFileList] = useState < any[] > ([]);
const [currentUserItemId, setCurrentUserItemId] = useState < string | null > (null); const [currentUserItemId, setCurrentUserItemId] = useState < string | null > (null);
//提交防抖
const [submitting, setSubmitting] = useState(false);
// 拉取并整理表格数据 // 拉取并整理表格数据
useEffect(() => { useEffect(() => {
if (visible && record?.id) { if (visible && record?.id) {
@ -227,6 +228,9 @@ const ResultModal: React.FC<ResultModalProps> = ({
return return
} }
} }
if (submitting) return; // 防重复提交
setSubmitting(true);
try {
// 提交审核 // 提交审核
update({ coscoAccessUserItemList: result, accessWorkId }).then((res) => { update({ coscoAccessUserItemList: result, accessWorkId }).then((res) => {
if (res.code == 200) { if (res.code == 200) {
@ -234,6 +238,11 @@ const ResultModal: React.FC<ResultModalProps> = ({
onSubmit() onSubmit()
} }
}) })
}
finally {
setSubmitting(false); // 无论成功失败都解锁
}
}; };
// 组装表头 // 组装表头
@ -330,7 +339,7 @@ const ResultModal: React.FC<ResultModalProps> = ({
{view ? '关闭' : '取消'} {view ? '关闭' : '取消'}
</Button>, </Button>,
!view && ( !view && (
<Button key="submit" type="primary" onClick={handleSubmit}> <Button key="submit" type="primary" onClick={handleSubmit} disabled={submitting}>
</Button> </Button>
) )