From d26040a6e0a9f75378523751ec675aca7dbf6fbd Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 26 Jan 2026 10:31:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor(DataManagement):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=AE=A1=E7=90=86=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 Overview 组件中的文件列表多选配置功能 - 添加 DatasetFileRow 类型定义并更新相关类型注解 - 修改 Overview 组件属性接口,增加 onUpload 回调函数 - 更新表格渲染函数中的类型注解,统一使用 DatasetFileRow 类型 - 简化按钮点击事件处理函数的参数传递 - 在 DatasetDetail 页面中移除顶部工具栏的上传按钮 - 将上传功能集成到 Overview 组件的文件操作区域 - 通过回调函数实现 --- .../DataManagement/Detail/DatasetDetail.tsx | 14 +- .../Detail/components/Overview.tsx | 143 +++++++++--------- 2 files changed, 80 insertions(+), 77 deletions(-) diff --git a/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx b/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx index abfd4ca..bfe1bad 100644 --- a/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx +++ b/frontend/src/pages/DataManagement/Detail/DatasetDetail.tsx @@ -3,7 +3,6 @@ import { Breadcrumb, App, Tabs, Table, Tag } from "antd"; import { ReloadOutlined, DownloadOutlined, - UploadOutlined, EditOutlined, DeleteOutlined, PlusOutlined, @@ -226,12 +225,6 @@ export default function DatasetDetail() { }, }, - { - key: "upload", - label: "导入数据", - icon: , - onClick: () => setShowUploadDialog(true), - }, { key: "export", label: "导出", @@ -353,7 +346,12 @@ export default function DatasetDetail() {
{activeTab === "overview" && ( - + setShowUploadDialog(true)} + /> )} {activeTab === "children" && (
diff --git a/frontend/src/pages/DataManagement/Detail/components/Overview.tsx b/frontend/src/pages/DataManagement/Detail/components/Overview.tsx index 7a06564..801fa31 100644 --- a/frontend/src/pages/DataManagement/Detail/components/Overview.tsx +++ b/frontend/src/pages/DataManagement/Detail/components/Overview.tsx @@ -1,16 +1,27 @@ import { App, Button, Descriptions, DescriptionsProps, Modal, Table, Input } from "antd"; import { formatBytes, formatDateTime } from "@/utils/unit"; import { Download, Trash2, Folder, File } from "lucide-react"; -import { datasetTypeMap } from "../../dataset.const"; +import { datasetTypeMap } from "../../dataset.const"; +import type { DatasetFile } from "@/pages/DataManagement/dataset.model"; + +type DatasetFileRow = DatasetFile & { + fileSize?: number; + fileCount?: number; + uploadTime?: string; +}; -export default function Overview({ dataset, filesOperation, fetchDataset }) { +export default function Overview({ + dataset, + filesOperation, + fetchDataset, + onUpload, +}) { const { modal, message } = App.useApp(); const { - fileList, - pagination, - selectedFiles, - setSelectedFiles, - previewVisible, + fileList, + pagination, + selectedFiles, + previewVisible, previewFileName, previewContent, setPreviewVisible, @@ -23,18 +34,7 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { handleDeleteDirectory, } = filesOperation; - // 文件列表多选配置 - const rowSelection = { - onChange: (selectedRowKeys: React.Key[], selectedRows: any[]) => { - setSelectedFiles(selectedRowKeys as number[]); - console.log( - `selectedRowKeys: ${selectedRowKeys}`, - "selectedRows: ", - selectedRows - ); - }, - }; - // 基本信息 + // 基本信息 const items: DescriptionsProps["items"] = [ { key: "id", @@ -96,7 +96,7 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { dataIndex: "fileName", key: "fileName", fixed: "left", - render: (text: string, record: any) => { + render: (text: string, record: DatasetFileRow) => { const isDirectory = record.id.startsWith('directory-'); const iconSize = 16; @@ -115,25 +115,25 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { return ( ); } return ( - + ); }, }, @@ -142,7 +142,7 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { dataIndex: "fileSize", key: "fileSize", width: 150, - render: (text: number, record: any) => { + render: (text: number, record: DatasetFileRow) => { const isDirectory = record.id.startsWith('directory-'); if (isDirectory) { return formatBytes(record.fileSize || 0); @@ -155,7 +155,7 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { dataIndex: "fileCount", key: "fileCount", width: 120, - render: (text: number, record: any) => { + render: (text: number, record: DatasetFileRow) => { const isDirectory = record.id.startsWith('directory-'); if (!isDirectory) { return "-"; @@ -175,7 +175,7 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { key: "action", width: 180, fixed: "right", - render: (_, record) => { + render: (_, record: DatasetFileRow) => { const isDirectory = record.id.startsWith('directory-'); if (isDirectory) { @@ -252,39 +252,44 @@ export default function Overview({ dataset, filesOperation, fetchDataset }) { /> {/* 文件列表 */} -
-

文件列表

- -
+
+

文件列表

+
+ + +
+
{selectedFiles.length > 0 && (