import React from "react" import { Table } from "antd" import type { TaskItem } from "@/api/tasks" import { TaskErrorDetail } from "./TaskErrorDetail" import { useTaskTableColumns, TaskEmptyState } from "./task-table" interface TaskTableProps { dataSource: TaskItem[] loading: boolean total: number page: number pageSize: number expandedTaskId: string | null expandedTaskDetail: TaskItem | null retryLoading: boolean onPageChange: (page: number, pageSize: number) => void onExpand: (expanded: boolean, record: TaskItem) => void onRetry: (id: string) => void onViewDetail: (record: TaskItem) => void } /** * 任务列表表格 */ export const TaskTable: React.FC = ({ dataSource, loading, total, page, pageSize, expandedTaskId, expandedTaskDetail, retryLoading, onPageChange, onExpand, onRetry, onViewDetail, }) => { const columns = useTaskTableColumns({ retryLoading, onRetry, onViewDetail }) return ( `共 ${t} 条`, onChange: onPageChange, }} expandable={{ expandedRowRender: (record) => ( ), expandedRowKeys: expandedTaskId ? [expandedTaskId] : [], onExpand, rowExpandable: (record) => record.status === "failed" && (!!record.error_info || !!record.error_message), }} scroll={{ x: 800 }} className="task-table" locale={{ emptyText: , }} /> ) }