import AutoTooltip from '@/components/auto-tooltip'; import PageTools from '@/components/page-tools'; import ProgressBar from '@/components/progress-bar'; import useTableSort from '@/hooks/use-table-sort'; import { convertFileSize } from '@/utils'; import { SyncOutlined } from '@ant-design/icons'; import { useIntl } from '@umijs/max'; import { Button, Input, Space, Table } from 'antd'; import _ from 'lodash'; import { memo, useEffect, useState } from 'react'; import { queryGpuDevicesList } from '../apis'; import { GPUDeviceItem } from '../config/types'; const { Column } = Table; const GPUList: React.FC = () => { console.log('GPUList======'); const intl = useIntl(); const { sortOrder, setSortOrder } = useTableSort({ defaultSortOrder: 'descend' }); const [dataSource, setDataSource] = useState<{ dataList: GPUDeviceItem[]; loading: boolean; total: number; }>({ dataList: [], loading: false, total: 0 }); const [queryParams, setQueryParams] = useState({ page: 1, perPage: 10, search: '' }); const handlePageChange = (page: number, perPage: number | undefined) => { console.log(page, perPage); setQueryParams({ ...queryParams, page: page, perPage: perPage || 10 }); }; const handleTableChange = (pagination: any, filters: any, sorter: any) => { setSortOrder(sorter.order); }; const fetchData = async () => { setDataSource((pre) => { pre.loading = true; return { ...pre }; }); try { const params = { ..._.pickBy(queryParams, (val: any) => !!val) }; const res = await queryGpuDevicesList(params); setDataSource({ dataList: res.items || [], loading: false, total: res.pagination.total }); } catch (error) { setDataSource({ dataList: [], loading: false, total: dataSource.total }); console.log('error', error); } }; const handleSearch = (e: any) => { fetchData(); }; const handleNameChange = (e: any) => { setQueryParams({ ...queryParams, search: e.target.value }); }; useEffect(() => { fetchData(); }, [queryParams]); return ( <> } > { return {record.index}; }} /> { return ( {text} ); }} /> { return {text ? _.round(text, 1) : '-'}; }} /> {/* { return <>{record.core ? {record.core?.total} : '-'}; }} /> */} { return ( <> {record.core ? ( ) : ( '-' )} ); }} /> { return ( {intl.formatMessage({ id: 'resources.table.total' })}:{' '} {convertFileSize(record.memory?.total, 0)} {intl.formatMessage({ id: 'resources.table.used' })}:{' '} {convertFileSize( record.memory?.used || record.memory?.allocated, 0 )} } > ); }} />
); }; export default memo(GPUList);