| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import React, { useMemo } from 'react'; |
| | import { Empty } from '@douyinfe/semi-ui'; |
| | import CardTable from '../../common/ui/CardTable'; |
| | import { |
| | IllustrationNoResult, |
| | IllustrationNoResultDark, |
| | } from '@douyinfe/semi-illustrations'; |
| | import { getModelsColumns } from './ModelsColumnDefs'; |
| |
|
| | const ModelsTable = (modelsData) => { |
| | const { |
| | models, |
| | loading, |
| | activePage, |
| | pageSize, |
| | modelCount, |
| | compactMode, |
| | handlePageChange, |
| | handlePageSizeChange, |
| | rowSelection, |
| | handleRow, |
| | manageModel, |
| | setEditingModel, |
| | setShowEdit, |
| | refresh, |
| | vendorMap, |
| | t, |
| | } = modelsData; |
| |
|
| | |
| | const columns = useMemo(() => { |
| | return getModelsColumns({ |
| | t, |
| | manageModel, |
| | setEditingModel, |
| | setShowEdit, |
| | refresh, |
| | vendorMap, |
| | }); |
| | }, [t, manageModel, setEditingModel, setShowEdit, refresh, vendorMap]); |
| |
|
| | |
| | const tableColumns = useMemo(() => { |
| | return compactMode |
| | ? columns.map((col) => { |
| | if (col.dataIndex === 'operate') { |
| | const { fixed, ...rest } = col; |
| | return rest; |
| | } |
| | return col; |
| | }) |
| | : columns; |
| | }, [compactMode, columns]); |
| |
|
| | return ( |
| | <CardTable |
| | columns={tableColumns} |
| | dataSource={models} |
| | scroll={compactMode ? undefined : { x: 'max-content' }} |
| | pagination={{ |
| | currentPage: activePage, |
| | pageSize: pageSize, |
| | total: modelCount, |
| | showSizeChanger: true, |
| | pageSizeOptions: [10, 20, 50, 100], |
| | onPageSizeChange: handlePageSizeChange, |
| | onPageChange: handlePageChange, |
| | }} |
| | hidePagination={true} |
| | loading={loading} |
| | rowSelection={rowSelection} |
| | onRow={handleRow} |
| | empty={ |
| | <Empty |
| | image={<IllustrationNoResult style={{ width: 150, height: 150 }} />} |
| | darkModeImage={ |
| | <IllustrationNoResultDark style={{ width: 150, height: 150 }} /> |
| | } |
| | description={t('搜索无结果')} |
| | style={{ padding: 30 }} |
| | /> |
| | } |
| | className='rounded-xl overflow-hidden' |
| | size='middle' |
| | /> |
| | ); |
| | }; |
| |
|
| | export default ModelsTable; |
| |
|