|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import React from 'react'; |
|
|
import { Layout } from '@douyinfe/semi-ui'; |
|
|
import CardPro from '../../common/ui/CardPro'; |
|
|
import TaskLogsTable from './TaskLogsTable'; |
|
|
import TaskLogsActions from './TaskLogsActions'; |
|
|
import TaskLogsFilters from './TaskLogsFilters'; |
|
|
import ColumnSelectorModal from './modals/ColumnSelectorModal'; |
|
|
import ContentModal from './modals/ContentModal'; |
|
|
import { useTaskLogsData } from '../../../hooks/task-logs/useTaskLogsData'; |
|
|
import { useIsMobile } from '../../../hooks/common/useIsMobile'; |
|
|
import { createCardProPagination } from '../../../helpers/utils'; |
|
|
|
|
|
const TaskLogsPage = () => { |
|
|
const taskLogsData = useTaskLogsData(); |
|
|
const isMobile = useIsMobile(); |
|
|
|
|
|
return ( |
|
|
<> |
|
|
{/* Modals */} |
|
|
<ColumnSelectorModal {...taskLogsData} /> |
|
|
<ContentModal {...taskLogsData} isVideo={false} /> |
|
|
{/* 新增:视频预览弹窗 */} |
|
|
<ContentModal |
|
|
isModalOpen={taskLogsData.isVideoModalOpen} |
|
|
setIsModalOpen={taskLogsData.setIsVideoModalOpen} |
|
|
modalContent={taskLogsData.videoUrl} |
|
|
isVideo={true} |
|
|
/> |
|
|
|
|
|
<Layout> |
|
|
<CardPro |
|
|
type='type2' |
|
|
statsArea={<TaskLogsActions {...taskLogsData} />} |
|
|
searchArea={<TaskLogsFilters {...taskLogsData} />} |
|
|
paginationArea={createCardProPagination({ |
|
|
currentPage: taskLogsData.activePage, |
|
|
pageSize: taskLogsData.pageSize, |
|
|
total: taskLogsData.logCount, |
|
|
onPageChange: taskLogsData.handlePageChange, |
|
|
onPageSizeChange: taskLogsData.handlePageSizeChange, |
|
|
isMobile: isMobile, |
|
|
t: taskLogsData.t, |
|
|
})} |
|
|
t={taskLogsData.t} |
|
|
> |
|
|
<TaskLogsTable {...taskLogsData} /> |
|
|
</CardPro> |
|
|
</Layout> |
|
|
</> |
|
|
); |
|
|
}; |
|
|
|
|
|
export default TaskLogsPage; |
|
|
|