diff --git a/frontend/src/pages/DataManagement/Create/EditDataset.tsx b/frontend/src/pages/DataManagement/Create/EditDataset.tsx index f43ba7fa..843f8e52 100644 --- a/frontend/src/pages/DataManagement/Create/EditDataset.tsx +++ b/frontend/src/pages/DataManagement/Create/EditDataset.tsx @@ -28,6 +28,7 @@ export default function EditDataset({ tags: [], }); const fetchDataset = async () => { + if (!open) return; // 如果有id,说明是编辑模式 if (data && data.id) { const { data: newData } = await queryDatasetByIdUsingGet(data.id); diff --git a/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx b/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx index 23546d29..18d140d5 100644 --- a/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx +++ b/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx @@ -237,7 +237,7 @@ export default function DatasetDetail() { data={dataset} open={showUploadDialog} onClose={() => setShowUploadDialog(false)} - onRefresh={handleRefresh} + updateEvent="update:dataset" /> void; - onRefresh?: (showMessage?: boolean) => void; + updateEvent?: string; }) { - const { message } = App.useApp(); const [form] = Form.useForm(); const [collectionOptions, setCollectionOptions] = useState([]); const [importConfig, setImportConfig] = useState({ @@ -57,7 +47,11 @@ export default function ImportConfiguration({ }); window.dispatchEvent( new CustomEvent("upload:dataset", { - detail: { dataset, files: fileSliceList }, + detail: { + dataset, + files: fileSliceList, + updateEvent, + }, }) ); resetFiles(); @@ -73,6 +67,7 @@ export default function ImportConfiguration({ }; const fetchCollectionTasks = async () => { + if (importConfig.source !== DataSource.COLLECTION) return; try { const res = await queryTasksUsingGet({ page: 0, size: 100 }); const options = res.data.content.map((task: any) => ({ @@ -93,15 +88,14 @@ export default function ImportConfiguration({ }; const handleImportData = async () => { + if (!data) return; if (importConfig.source === DataSource.UPLOAD) { await handleUpload(data); } else if (importConfig.source === DataSource.COLLECTION) { - await updateDatasetByIdUsingPut(data?.id!, { + await updateDatasetByIdUsingPut(data.id, { ...importConfig, }); } - message.success("数据已更新"); - onRefresh?.(false); onClose(); }; @@ -110,7 +104,7 @@ export default function ImportConfiguration({ resetState(); fetchCollectionTasks(); } - }, [open]); + }, [open, importConfig.source]); return ( ); + useEffect(() => { + const refresh = () => { + handleRefresh(true); + }; + window.addEventListener("update:datasets", refresh); + return () => { + window.removeEventListener("update:datasets", refresh); + }; + }, []); + return (
{/* Header */} @@ -389,7 +399,7 @@ export default function DatasetManagementPage() { setCurrentDataset(null); setShowUploadDialog(false); }} - onRefresh={handleRefresh} + updateEvent="update:datasets" />
); diff --git a/frontend/src/pages/DataManagement/dataset.model.ts b/frontend/src/pages/DataManagement/dataset.model.ts index c3161749..8dfc602a 100644 --- a/frontend/src/pages/DataManagement/dataset.model.ts +++ b/frontend/src/pages/DataManagement/dataset.model.ts @@ -97,4 +97,5 @@ export interface TaskItem { isCancel?: boolean; controller: AbortController; cancelFn?: () => void; + updateEvent?: string; } diff --git a/frontend/src/pages/Layout/TaskUpload.tsx b/frontend/src/pages/Layout/TaskUpload.tsx index 75777281..fecd0e8d 100644 --- a/frontend/src/pages/Layout/TaskUpload.tsx +++ b/frontend/src/pages/Layout/TaskUpload.tsx @@ -24,6 +24,7 @@ export default function TaskUpload() { percent: 0, reqId: -1, controller, + updateEvent: detail.updateEvent || "update:dataset", }; taskListRef.current = [task, ...taskListRef.current]; @@ -47,7 +48,7 @@ export default function TaskUpload() { if (task.isCancel && task.cancelFn) { task.cancelFn(); } - window.dispatchEvent(new Event("update:dataset")); + window.dispatchEvent(new Event(task.updateEvent || "update:dataset")); window.dispatchEvent( new CustomEvent("show:task-popover", { detail: { show: false } }) ); @@ -111,7 +112,7 @@ export default function TaskUpload() { cancelFn: () => { task.controller.abort(); cancelUploadUsingPut(reqId); - window.dispatchEvent(new Event("update:dataset")); + window.dispatchEvent(new Event(task.updateEvent || "update:dataset")); }, }; updateTaskList(newTask);