2025-09-13 16:18:30 +08:00
|
|
|
import React, {useEffect, useState} from 'react';
|
|
|
|
|
import {Button, Col, Empty, FloatButton, message, Pagination, Row, Skeleton, Space, Spin, Typography} from "antd";
|
|
|
|
|
import PrintRecordCard from "./RecordCard/PrintRecordCard";
|
|
|
|
|
import creatMessageCommonAxios from "../../../http/CreatMessageCommonAxios";
|
|
|
|
|
import QueryConditionBox from "./QueryConditionBox";
|
|
|
|
|
import CardDiv from "../../../component/CardDiv/CardDiv";
|
|
|
|
|
import {PlusOutlined} from "@ant-design/icons";
|
|
|
|
|
import {useNavigate} from "react-router-dom";
|
|
|
|
|
|
|
|
|
|
const DataPrint = props => {
|
|
|
|
|
const [downloadDisabled, setDownloadDisabled] = useState(true);
|
|
|
|
|
const previewClicked = () => {
|
|
|
|
|
setDownloadDisabled(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const navigate = useNavigate();
|
|
|
|
|
|
|
|
|
|
const [messageApi, contextHolder] = message.useMessage();
|
|
|
|
|
|
|
|
|
|
const [loading, setLoading] = useState(true);
|
|
|
|
|
const [spinLoading, setSpinLoading] = useState(false);
|
|
|
|
|
|
|
|
|
|
const commonAxios = creatMessageCommonAxios(messageApi);
|
|
|
|
|
|
|
|
|
|
const [queryRequest, setQueryRequest] = useState({
|
|
|
|
|
page: 1,
|
|
|
|
|
size: 6,
|
|
|
|
|
id: null,
|
|
|
|
|
staffNumber: null,
|
|
|
|
|
fileType: null,
|
|
|
|
|
status: null,
|
|
|
|
|
startTime: null,
|
|
|
|
|
endTime: null
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const [records, setRecords] = useState([{
|
|
|
|
|
"id": "",
|
|
|
|
|
"stuffNumber": "",
|
|
|
|
|
"currentOperatorUser": "",
|
|
|
|
|
"recordType": "",
|
|
|
|
|
"status": "",
|
|
|
|
|
"failReason": null,
|
|
|
|
|
"requestTime": "",
|
|
|
|
|
"madeTime": "",
|
|
|
|
|
"extraInfo": null
|
|
|
|
|
}]);
|
|
|
|
|
|
|
|
|
|
const [pageInfo, setPageInfo] = useState({
|
|
|
|
|
current: 1,
|
|
|
|
|
pageSize: 6,
|
|
|
|
|
total: 2
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const onPageChange = (page) => {
|
|
|
|
|
setQueryRequest({...queryRequest, page: page});
|
|
|
|
|
setSpinLoading(true)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
commonAxios.post('/api/v1/workload/certificate/record', queryRequest).then((response) => {
|
|
|
|
|
if (response.data.data != null) {
|
|
|
|
|
setRecords(response.data.data.list);
|
|
|
|
|
setPageInfo({...pageInfo, current: response.data.data.pageNum, total: response.data.data.total});
|
|
|
|
|
} else {
|
|
|
|
|
setRecords([]);
|
|
|
|
|
}
|
|
|
|
|
setLoading(false)
|
|
|
|
|
setSpinLoading(false)
|
|
|
|
|
});
|
|
|
|
|
// 动态调整
|
|
|
|
|
}, 0)
|
|
|
|
|
|
|
|
|
|
}, [queryRequest]);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div style={{width: '100%'}}>
|
|
|
|
|
{contextHolder}
|
|
|
|
|
<Space direction="vertical" size="large" style={{display: "flex"}}>
|
|
|
|
|
<CardDiv>
|
|
|
|
|
<QueryConditionBox setQueryRequest={(req) => setQueryRequest(req)}
|
|
|
|
|
setLoading={(loading) => setLoading(loading)}/>
|
|
|
|
|
</CardDiv>
|
|
|
|
|
<Skeleton active={true} loading={loading}>
|
|
|
|
|
<CardDiv>
|
|
|
|
|
{
|
|
|
|
|
records && records.length > 0 ? <Spin spinning={spinLoading}>
|
|
|
|
|
<Space direction="vertical" size="large" style={{display: "flex"}}>
|
|
|
|
|
<Row gutter={[16, {xs: 8, sm: 16, md: 24, lg: 32}]}>
|
|
|
|
|
{
|
|
|
|
|
records.map((record, index) => {
|
2025-09-13 18:17:24 +08:00
|
|
|
return (<Col key={record.id} xxl={8} xl={12} lg={12} md={24} sm={24} xs={24}>
|
2025-09-13 16:18:30 +08:00
|
|
|
<PrintRecordCard key={index} record={record} fileType={1}
|
|
|
|
|
messageApi={messageApi}/>
|
|
|
|
|
</Col>)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
</Row>
|
|
|
|
|
<Pagination
|
|
|
|
|
showQuickJumper
|
|
|
|
|
defaultCurrent={1}
|
|
|
|
|
showSizeChanger={false}
|
|
|
|
|
total={pageInfo.total}
|
|
|
|
|
pageSize={pageInfo.pageSize}
|
|
|
|
|
onChange={onPageChange}
|
|
|
|
|
align={'end'}
|
|
|
|
|
/>
|
|
|
|
|
</Space>
|
|
|
|
|
</Spin> : <>
|
|
|
|
|
<Empty
|
|
|
|
|
image="https://gw.alipayobjects.com/zos/antfincdn/ZHrcdLPrvN/empty.svg"
|
|
|
|
|
styles={{
|
|
|
|
|
image: {
|
|
|
|
|
height: 60,
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
description={
|
|
|
|
|
<Typography.Text>
|
|
|
|
|
暂无历史证明生成记录数据
|
|
|
|
|
</Typography.Text>
|
|
|
|
|
}
|
|
|
|
|
>
|
|
|
|
|
<Button type="primary" icon={<PlusOutlined/>}
|
|
|
|
|
onClick={() => navigate('/generate-certificate')}>生成报告</Button>
|
|
|
|
|
</Empty>
|
|
|
|
|
</>
|
|
|
|
|
}
|
|
|
|
|
</CardDiv>
|
|
|
|
|
</Skeleton>
|
|
|
|
|
<FloatButton.BackTop visibilityHeight={1000}/>
|
|
|
|
|
</Space>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
DataPrint.propTypes = {};
|
|
|
|
|
|
|
|
|
|
export default DataPrint;
|