From f4db600a5972643ed7217a3b1634554f734d1b3f Mon Sep 17 00:00:00 2001 From: MoeexT Date: Wed, 4 Mar 2026 17:34:11 +0800 Subject: [PATCH 1/2] :art: perf dataset detail page --- frontend/src/i18n/locales/en/common.json | 4 +- frontend/src/i18n/locales/zh/common.json | 4 +- .../DataManagement/Detail/DatasetDetail.tsx | 76 ++++++++++++- .../Detail/components/Overview.tsx | 101 +++++------------- 4 files changed, 106 insertions(+), 79 deletions(-) diff --git a/frontend/src/i18n/locales/en/common.json b/frontend/src/i18n/locales/en/common.json index a35b9549..4d24aed9 100644 --- a/frontend/src/i18n/locales/en/common.json +++ b/frontend/src/i18n/locales/en/common.json @@ -277,6 +277,7 @@ "description": "Create, import and manage datasets", "actions": { "createDataset": "Create Dataset", + "detail": "Details", "edit": "Edit", "import": "Import", "importData": "Import Data", @@ -394,7 +395,8 @@ "previewTitle": "File Preview: {{name}}", "previewEmpty": "No preview available or unsupported file type.", "previewInfoTitle": "File Info", - "editTitle": "Edit Dataset - {{name}}" + "editTitle": "Edit Dataset - {{name}}", + "datasetDetail": "Dataset Details" }, "labels": { "id": "ID", diff --git a/frontend/src/i18n/locales/zh/common.json b/frontend/src/i18n/locales/zh/common.json index 26873eed..17501b3d 100644 --- a/frontend/src/i18n/locales/zh/common.json +++ b/frontend/src/i18n/locales/zh/common.json @@ -277,6 +277,7 @@ "description": "创建、导入和管理数据集", "actions": { "createDataset": "创建数据集", + "detail": "详情", "edit": "编辑", "import": "导入", "importData": "导入数据", @@ -394,7 +395,8 @@ "previewTitle": "文件预览:{{name}}", "previewEmpty": "暂无预览内容,或当前文件类型暂不支持预览。", "previewInfoTitle": "文件信息", - "editTitle": "编辑数据集 - {{name}}" + "editTitle": "编辑数据集 - {{name}}", + "datasetDetail": "数据集详细信息" }, "labels": { "id": "ID", diff --git a/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx b/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx index 7e30eb07..ea18d74e 100644 --- a/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx +++ b/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx @@ -1,11 +1,12 @@ import { useEffect, useMemo, useState } from "react"; -import { Breadcrumb, App, Tabs } from "antd"; +import { Breadcrumb, App, Tabs, Drawer, Descriptions } from "antd"; import { ReloadOutlined, DownloadOutlined, UploadOutlined, EditOutlined, DeleteOutlined, + InfoCircleOutlined, } from "@ant-design/icons"; import DetailHeader from "@/components/DetailHeader"; import { getDatasetTypeMap, mapDataset } from "../dataset.const"; @@ -36,6 +37,7 @@ export default function DatasetDetail() { const { t } = useTranslation(); const datasetTypeMap = getDatasetTypeMap(t); const [showEditDialog, setShowEditDialog] = useState(false); + const [showDetailDrawer, setShowDetailDrawer] = useState(false); const [dataset, setDataset] = useState({} as Dataset); const filesOperation = useFilesOperation(dataset); @@ -135,6 +137,14 @@ export default function DatasetDetail() { // 数据集操作列表 const operations = [ + { + key: "detail", + label: t("dataManagement.actions.detail"), + icon: , + onClick: () => { + setShowDetailDrawer(true); + }, + }, { key: "edit", label: t("dataManagement.actions.edit"), @@ -266,6 +276,70 @@ export default function DatasetDetail() { onClose={() => setShowEditDialog(false)} onRefresh={handleRefresh} /> + setShowDetailDrawer(false)} + width={600} + > + + ); } diff --git a/frontend/src/pages/DataManagement/Detail/components/Overview.tsx b/frontend/src/pages/DataManagement/Detail/components/Overview.tsx index 3a96cdb6..8964349b 100644 --- a/frontend/src/pages/DataManagement/Detail/components/Overview.tsx +++ b/frontend/src/pages/DataManagement/Detail/components/Overview.tsx @@ -1,4 +1,4 @@ -import { App, Button, Descriptions, DescriptionsProps, Modal, Table, Input, Spin } from "antd"; +import { App, Button, Modal, Table, Input, Spin } from "antd"; import { formatBytes, formatDateTime } from "@/utils/unit"; import { Download, Trash2, Folder, File } from "lucide-react"; import { getDatasetTypeMap } from "../../dataset.const"; @@ -43,70 +43,6 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { ); }, }; - // 基本信息 - const items: DescriptionsProps["items"] = [ - { - key: "id", - label: t("dataManagement.labels.id"), - children: dataset.id, - }, - { - key: "name", - label: t("dataManagement.labels.name"), - children: dataset.name, - }, - { - key: "fileCount", - label: t("dataManagement.labels.fileCount"), - children: dataset.fileCount || 0, - }, - { - key: "size", - label: t("dataManagement.labels.dataSize"), - children: dataset.size || "0 B", - }, - - { - key: "datasetType", - label: t("dataManagement.labels.type"), - children: datasetTypeMap[dataset?.datasetType]?.label || t("dataManagement.defaults.unknown"), - }, - { - key: "status", - label: t("dataManagement.labels.status"), - children: dataset?.status?.label || t("dataManagement.defaults.unknown"), - }, - { - key: "createdBy", - label: t("dataManagement.labels.creator"), - children: dataset.createdBy || t("dataManagement.defaults.unknown"), - }, - { - key: "targetLocation", - label: t("dataManagement.labels.storagePath"), - children: dataset.targetLocation || t("dataManagement.defaults.unknown"), - }, - { - key: "pvcName", - label: t("dataManagement.labels.storageName"), - children: dataset.pvcName || t("dataManagement.defaults.unknown"), - }, - { - key: "createdAt", - label: t("dataManagement.labels.createdAt"), - children: dataset.createdAt, - }, - { - key: "updatedAt", - label: t("dataManagement.labels.updatedAt"), - children: dataset.updatedAt, - }, - { - key: "description", - label: t("dataManagement.labels.description"), - children: dataset.description || t("dataManagement.defaults.none"), - }, - ]; // 文件列表列定义 const columns = [ @@ -143,8 +79,19 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { const newPath = `${currentPath}${record.fileName}/`; filesOperation.fetchFiles(newPath, 1, filesOperation.pagination.pageSize); }} + className="hover:text-blue-600 transition-colors duration-200" + style={{ + padding: 0, + height: 'auto', + fontWeight: 500 + }} > - {content} +
+ + + {displayName} + +
); } @@ -153,8 +100,19 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { ); }, @@ -392,15 +350,6 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { return ( <>
- {/* 基本信息 */} - - {/* 文件列表 */}

From 8decb4a11c4f92b502a2db99cf6fe441668c81ec Mon Sep 17 00:00:00 2001 From: MoeexT Date: Thu, 5 Mar 2026 10:17:27 +0800 Subject: [PATCH 2/2] :bug: fix dataset detail page edit button --- .../DataManagement/Create/EditDataset.tsx | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/frontend/src/pages/DataManagement/Create/EditDataset.tsx b/frontend/src/pages/DataManagement/Create/EditDataset.tsx index c349fa9a..d0e995f7 100644 --- a/frontend/src/pages/DataManagement/Create/EditDataset.tsx +++ b/frontend/src/pages/DataManagement/Create/EditDataset.tsx @@ -29,26 +29,21 @@ export default function EditDataset({ datasetType: DatasetType.TEXT, tags: [], }); - const fetchDataset = async () => { - if (!open) return; - // 如果有id,说明是编辑模式 - if (data && data.id) { - const { data: newData } = await queryDatasetByIdUsingGet(data.id); + + // 当对话框打开时,使用传入的 data 初始化表单 + useEffect(() => { + if (open && data && data.id) { const updatedDataset = { - ...newData, - type: newData.type, - tags: (newData.tags || []).map((tag) => + ...data, + type: data.type, + tags: (data.tags || []).map((tag) => typeof tag === "string" ? tag : tag.name ), }; setNewDataset(updatedDataset); form.setFieldsValue(updatedDataset); } - }; - - useEffect(() => { - fetchDataset(); - }, [data]); + }, [open, data, form]); const handleValuesChange = (_, allValues) => { setNewDataset({ ...newDataset, ...allValues });