Files
fe_service_ebtp_frontend/src/pages/Evaluation/ReportPrint/index.tsx
2022-04-18 20:53:41 +08:00

102 lines
3.4 KiB
TypeScript

import React, { useEffect, useState } from 'react';
import { Button, Card, Col, Empty, Modal, Row } from 'antd';
import { getDefId, getRoomId } from '@/utils/session';
import { getAssessRoomData, getReportList } from './service';
const ReportPrint: React.FC<{}> = () => {
//存储list
const [reportPrintList, setReportPrintList] = useState<any>();
//评审室id
const roomId = getRoomId();
//流程id
const defId = getDefId();
useEffect(() => {
//获取评审室基本信息
getAssessRoomData(roomId).then(response => {
if (response?.code == 200) {
//初始化遍历
getReportList(roomId).then((res) => {
let list = res.data;
let arr = Object.keys(list);
let report: any[] = [];
if (arr.length == 0) {
let e = <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />;
report.push(e);
} else {
for (const key in list) {
let e = (
<div>
<Card title={key} style={{ marginBottom: 8 }}>
<Row>
{list[key]?.map((item: any, index: any) => (
<Col span={6}>
<Button
type="text"
key={item.id}
onClick={() => onClickLink(item.url, item.dicName, item.queryType, response?.data)}
style={{ color: '#b30000', background: 'rgba(0, 0, 0, 0)' }}
>
{index + 1}{item.dicName}
</Button>
</Col>
))}
</Row>
</Card>
</div>
);
report.push(e);
}
}
setReportPrintList(report);
});
}
})
}, []);
useEffect(() => {
window.addEventListener('message', receiveMessage, false); // 监听message事件,用于接收从子页面返回的参数
return () => window.removeEventListener('message', receiveMessage);
}, []);
//点击按钮后的弹窗遮罩
const editLoading = () => {
Modal.info({
title: `文档编辑器打开中,请在弹出窗口打印报表`,
okText: <></>,
okButtonProps: { hidden: true },
cancelButtonProps: { hidden: true },
centered: true,
});
};
//接收子页面返回参数方法
const receiveMessage = async (event: any) => {
if (event !== undefined && event?.data) {
/*文件保存状态*/
if (event?.data != null && event?.data != undefined) {
let FileMsg = event?.data;
if (
FileMsg?.type == 'FROM_NTKO_CLOSE' &&
FileMsg?.text == window.ntkoBrowser.thisNTKOGUID
) {
Modal.destroyAll();
}
}
}
};
const onClickLink = (url: string, name: string, type: string, data: any) => {
editLoading();
window.ntkoBrowser.openWindow('/Weboffice4Path.html?path=' + encodeURIComponent(url) + '&fileType=' + type + '&fileName=' + `${data.sectionName}-${data.sectionNum}-${data.roomType == 1 ? '预审' : ''}${name}${defId == 'recruit_multi' ? `${data.roomSort}` : ''}${data.reviewMark == 1 ? `(第${data.reviewSort}次重新评审)` : ''}`);
};
return (
<Card bordered={false}>
{reportPrintList}
</Card>
);
};
export default ReportPrint;