| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | 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 { getTaskLogsColumns } from './TaskLogsColumnDefs'; |
| |
|
| | const TaskLogsTable = (taskLogsData) => { |
| | const { |
| | logs, |
| | loading, |
| | activePage, |
| | pageSize, |
| | logCount, |
| | compactMode, |
| | visibleColumns, |
| | handlePageChange, |
| | handlePageSizeChange, |
| | copyText, |
| | openContentModal, |
| | openVideoModal, |
| | isAdminUser, |
| | t, |
| | COLUMN_KEYS, |
| | } = taskLogsData; |
| |
|
| | |
| | const allColumns = useMemo(() => { |
| | return getTaskLogsColumns({ |
| | t, |
| | COLUMN_KEYS, |
| | copyText, |
| | openContentModal, |
| | openVideoModal, |
| | isAdminUser, |
| | }); |
| | }, [t, COLUMN_KEYS, copyText, openContentModal, openVideoModal, isAdminUser]); |
| |
|
| | |
| | const getVisibleColumns = () => { |
| | return allColumns.filter((column) => visibleColumns[column.key]); |
| | }; |
| |
|
| | const visibleColumnsList = useMemo(() => { |
| | return getVisibleColumns(); |
| | }, [visibleColumns, allColumns]); |
| |
|
| | const tableColumns = useMemo(() => { |
| | return compactMode |
| | ? visibleColumnsList.map(({ fixed, ...rest }) => rest) |
| | : visibleColumnsList; |
| | }, [compactMode, visibleColumnsList]); |
| |
|
| | return ( |
| | <CardTable |
| | columns={tableColumns} |
| | dataSource={logs} |
| | rowKey='key' |
| | loading={loading} |
| | scroll={compactMode ? undefined : { x: 'max-content' }} |
| | className='rounded-xl overflow-hidden' |
| | size='middle' |
| | empty={ |
| | <Empty |
| | image={<IllustrationNoResult style={{ width: 150, height: 150 }} />} |
| | darkModeImage={ |
| | <IllustrationNoResultDark style={{ width: 150, height: 150 }} /> |
| | } |
| | description={t('搜索无结果')} |
| | style={{ padding: 30 }} |
| | /> |
| | } |
| | pagination={{ |
| | currentPage: activePage, |
| | pageSize: pageSize, |
| | total: logCount, |
| | pageSizeOptions: [10, 20, 50, 100], |
| | showSizeChanger: true, |
| | onPageSizeChange: handlePageSizeChange, |
| | onPageChange: handlePageChange, |
| | }} |
| | hidePagination={true} |
| | /> |
| | ); |
| | }; |
| |
|
| | export default TaskLogsTable; |
| |
|