From 228cd4e66407a5741b117a3b181e9845336b0849 Mon Sep 17 00:00:00 2001 From: jialin Date: Wed, 11 Feb 2026 16:49:27 +0800 Subject: [PATCH] fix: benchmark detail envs gpus list --- .../components/environment/index.tsx | 120 ++++++++++++------ .../benchmark/hooks/use-benchmark-columns.tsx | 2 +- 2 files changed, 80 insertions(+), 42 deletions(-) diff --git a/src/pages/benchmark/components/environment/index.tsx b/src/pages/benchmark/components/environment/index.tsx index 6fd96bdd..1acee7e0 100644 --- a/src/pages/benchmark/components/environment/index.tsx +++ b/src/pages/benchmark/components/environment/index.tsx @@ -1,5 +1,6 @@ import RowChildren from '@/components/seal-table/components/row-children'; import SealTable from '@/components/seal-table/index'; +import TableContext from '@/components/seal-table/table-context'; import useExpandedRowKeys from '@/hooks/use-expanded-row-keys'; import useMemoizedFn from 'ahooks/lib/useMemoizedFn'; import { Col, Row } from 'antd'; @@ -18,6 +19,12 @@ const Container = styled.div` gap: 16px; `; +const GPURowWrapper = styled.div` + display: flex; + flex-direction: column; + width: 100%; +`; + /** * * @returns display worker info and gpu info. @@ -53,8 +60,8 @@ const Environment: React.FC = () => { return workerMap.get(workerID) || undefined; }; - const findGPUByWorkerName = (name: string): GPUData[] => { - return gpuList.filter((gpu) => gpu.worker_name === name); + const findGPUByGPUIds = (ids: string[]): GPUData[] => { + return gpuList.filter((gpu) => ids.includes(gpu.id)); }; // main worker @@ -66,7 +73,7 @@ const Environment: React.FC = () => { return null; } - const gpuData = findGPUByWorkerName(mainworker.name); + const gpuData = findGPUByGPUIds(instanceData.gpu_ids); return { ...mainworker, @@ -88,7 +95,7 @@ const Environment: React.FC = () => { if (!subWorker) { return null; } - const gpuData = findGPUByWorkerName(subWorker.name); + const gpuData = findGPUByGPUIds(worker.gpu_ids); return { ...subWorker, @@ -103,61 +110,92 @@ const Environment: React.FC = () => { return [mainWorker, ...subWorkerList].filter(Boolean) as WorkerData[]; }, [mainWorker, subWorkerList]); - const handleToggleExpandAll = useMemoizedFn((expanded: boolean) => { - const keys = dataList?.map((item) => item.id); - handleExpandAll(expanded, keys); - }); + const allChildren = useMemo(() => { + return dataList.reduce( + ( + acc, + worker: { + children?: GPUData[]; + [key: string]: any; + } + ) => { + if (worker.children && worker.children.length > 0) { + acc.push(...(worker.children as GPUData[])); + } + return acc; + }, + [] + ); + }, [dataList]); const loadChildren = useMemoizedFn(async (record: any) => { return record.children || []; }); + const handleToggleExpandAll = useMemoizedFn(async (expanded: boolean) => { + const keys = dataList?.map((item) => item.id); + handleExpandAll(expanded, keys); + }); + const renderChildren = useMemoizedFn((list: any[]) => { return (
- + {list.map((gpu) => ( - - {GPUColumns.map((col) => ( - - + + {GPUColumns.map((col) => ( + - {col.render - ? col.render(gpu[col.dataIndex], gpu) - : gpu[col.dataIndex]} - - - ))} - + + {col.render + ? col.render(gpu[col.dataIndex], gpu) + : gpu[col.dataIndex]} + + + ))} + + ))} - +
); }); return ( - + + + ); }; diff --git a/src/pages/benchmark/hooks/use-benchmark-columns.tsx b/src/pages/benchmark/hooks/use-benchmark-columns.tsx index f7c72b83..8db1ae14 100644 --- a/src/pages/benchmark/hooks/use-benchmark-columns.tsx +++ b/src/pages/benchmark/hooks/use-benchmark-columns.tsx @@ -43,7 +43,7 @@ const useBenchmarkColumns = (params: { ), dataIndex: 'operations', - width: 100, + width: 140, render: (value: string, record: ListItem) => ( )