import { Button, Descriptions, DescriptionsProps, Modal, Table } from "antd"; import { formatBytes, formatDateTime } from "@/utils/unit"; import { Download, Trash2 } from "lucide-react"; import { datasetTypeMap } from "../../dataset.const"; export default function Overview({ dataset, filesOperation }) { const { fileList, selectedFiles, setSelectedFiles, previewVisible, previewFileName, previewContent, setPreviewVisible, handleDeleteFile, handleDownloadFile, handleBatchDeleteFiles, handleBatchExport, } = 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", label: "ID", children: dataset.id, }, { key: "name", label: "名称", children: dataset.name, }, { key: "fileCount", label: "文件数", children: dataset.fileCount || 0, }, { key: "size", label: "数据大小", children: dataset.size || "0 B", }, { key: "datasetType", label: "类型", children: datasetTypeMap[dataset?.datasetType]?.label || "未知", }, { key: "status", label: "状态", children: dataset?.status?.label || "未知", }, { key: "createdBy", label: "创建者", children: dataset.createdBy || "未知", }, { key: "targetLocation", label: "存储路径", children: dataset.targetLocation || "未知", }, { key: "createdAt", label: "创建时间", children: dataset.createdAt, }, { key: "updatedAt", label: "更新时间", children: dataset.updatedAt, }, { key: "dataSource", label: "数据源", children: dataset.dataSource || "未知", }, { key: "description", label: "描述", children: dataset.description || "无", }, ]; // 文件列表列定义 const columns = [ { title: "文件名", dataIndex: "fileName", key: "fileName", fixed: "left", }, { title: "大小", dataIndex: "fileSize", key: "fileSize", width: 150, render: (text) => formatBytes(text), }, { title: "上传时间", dataIndex: "uploadTime", key: "uploadTime", width: 200, render: (text) => formatDateTime(text), }, { title: "操作", key: "action", width: 180, fixed: "right", render: (_, record) => (
{previewContent}