import React, { useEffect, useRef, useState } from 'react'; import { connect } from 'react-redux'; import { Skeleton, Button, Pagination, Form, Popconfirm, Table, Tooltip, Input } from '@douyinfe/semi-ui'; import { IconSearch } from '@douyinfe/semi-icons'; import { SkeletonScreen, } from "$components"; import moment from "moment"; import AutomaticModal from '../components/automatic-Modal' import SimpleBar from 'simplebar-react'; const AutomaticReport = ({ dispatch, actions, user, clientHeight, loading, generateloading, socket, projectPoms, pepProjectId }) => { const { service, } = actions; const [query, setQuery] = useState({ limit: 10, page: 0 }); //页码信息 const [limits, setLimits] = useState()//总数 const mylimits = useRef(); //每页实际条数 const [automaticModal, setAutomaticModall] = useState(false) //弹框 const [eidtData, setEidtData] = useState({}) //是否改变 const [tableData, setTableData] = useState([]) //表格数据 const [projectList, setProjectList] = useState([]) //项目数据 const [projectId, setProjectId] = useState() //项目id const [projectSearch, setProjectSearch] = useState() //项目搜索 const [keyword, setKeyword] = useState() //报表关键字 const [id, setId] = useState() const page = useRef(query.page);//哪一页 useEffect(() => { if (projectPoms?.length) { let dataList = projectPoms?.filter(v => v.pepProjectIsDelete != 1 && (!pepProjectId || (pepProjectId?.length > 0 ? pepProjectId?.split(',')?.map(s => Number(s.id))?.includes(v.id) : pepProjectId))) setProjectList(dataList) getData({ limit: 10, page: 0 }) setQuery({ limit: 10, page: 0 }) } }, [projectPoms, pepProjectId, projectSearch]) const getData = (data = {}) => { dispatch(service.getAutomaticReport({ projectId: pepProjectId, ...query, keyword, ...data })).then((res) => { if (res.success) { setTableData(res.payload.data?.rows) setLimits(res.payload.data?.count) setId("") } }) } const columns = [{ title: "序号", dataIndex: "index", key: 'index', render: (txet, row, index) => index + 1 }, { title: "报表名称", dataIndex: "reportName", key: 'reportName', }, { title: "所属项目", dataIndex: "projectId", key: 'projectId', render: (_, row) => { let project = projectPoms?.find(s => s.id == row?.projectId) return project?.name || project?.pepProjectName || '--' } }, { title: "报表类型", dataIndex: "reportType", key: 'reportType', }, { title: "最近生成时间", dataIndex: "time", key: 'time', render: (txet, row) => txet && moment(txet).format('YYYY-MM-DD HH:mm:ss') || '--' }, { title: "操作", dataIndex: "text", key: 'text', render: (_, row) => { return (
{ dispatch(service.delAutomaticReport(row.id)).then((res) => { if (res.success) { setQuery({ limit: 10, page: 0 }) getData({ limit: 10, page: 0, keyword: keyword }) } }) }} >
); }, }, ] function handleRow (record, index) {//斑马条纹 // 给偶数行设置斑马纹 if (index % 2 === 0) { return { style: { background: '#FAFCFF', } }; } else { return {}; } } return ( <>
自动化报表
AUTOMATIC REPORT
{ setKeyword(e) }} />
{limits > 0 &&
共{limits}条信息 { setQuery({ limit: pageSize, page: currentPage - 1 }); getData({ limit: pageSize, page: currentPage - 1 }) }} />
} {//推送配置弹框 automaticModal ? { setAutomaticModall(false); setEidtData({}) }} success={() => { setQuery({ limit: 10, page: 0 }) getData({ limit: 10, page: 0, keyword: keyword }) }} /> : '' } ) } function mapStateToProps (state) { const { auth, global, automaticReport, generateReport, ProjectPoms } = state; return { loading: automaticReport.isRequesting, user: auth.user, actions: global.actions, pepProjectId: global.pepProjectId, clientHeight: global?.clientHeight, projectPoms: ProjectPoms?.data?.rows, generateloading: generateReport.isRequesting, }; } export default connect(mapStateToProps)(AutomaticReport);