Files
fe_service_ebtp_frontend/src/utils/InvitationLetter.tsx

84 lines
2.7 KiB
TypeScript
Raw Normal View History

2022-03-10 14:24:13 +08:00
/*
* @Author: liqiang
* @Date: 2021-03-05 13:55:50
* @LastEditTime: 2021-03-05 14:42:50
* @LastEditors: Please set LastEditors
* @Description:
* @FilePath: \ebtp-cloud-frontend\src\utils\InvitationLetter.tsx
*/
import { getNoticeInfo } from '@/pages/Bid/Supplier/InvitationDetails/service';
import { Button, Modal, Tabs } from 'antd';
import React, { useEffect, useState } from 'react';
import { isNotEmpty } from './CommonUtils';
import ExtendUpload from './ExtendUpload';
interface InvitationLetterItem {
projectData: any,
visible: boolean,
setVisible: (value: boolean) => void
}
const { TabPane } = Tabs;
const modalHeight = innerHeight * 96 / 100;
const InvitationLetter: React.FC<InvitationLetterItem> = (props) => {
const { projectData, visible, setVisible } = props;
const [announcementInformation, setAnnouncementInformation] = useState<any>();
useEffect(() => {
if (isNotEmpty(projectData)) {
getNoticeInfo(projectData.annoIds).then(res => {
setAnnouncementInformation(getAnnouncementInformation(res.data));
})
}
}, [projectData]);
/**
*
* @param data
*/
const getAnnouncementInformation = (data: any) => {
if (data.length === 0) {
return <div className="textAlignCenter">
<h1></h1>
</div>
}
return (
<Tabs>
{data.map((item: any, index: number) => {
return (<TabPane tab={`邀请函${index + 1}`} key={index}>
<div className="textAlignCenter">
<h1>{String(item.annoNature) === '7' && '【变更公告】'}{item.annoTitle}</h1>
</div>
<p dangerouslySetInnerHTML={{ __html: item.contentWithStyle }}>
</p>
<ExtendUpload bid={item.attDatasetId} btnName="附件" uploadProps={{ disabled: true }} />
</TabPane>
)
})
}
</Tabs>
)
}
/**
*
*/
const close = () => {
setVisible(false);
setAnnouncementInformation(null);
}
return <Modal visible={visible}
title="邀请函信息"
onCancel={close}
centered
destroyOnClose
width="50%"
style={{ maxHeight: modalHeight }}
bodyStyle={{ maxHeight: modalHeight - 107, overflowY: 'auto' }}
footer={[
<Button onClick={close}></Button>
]}
>
{announcementInformation}
</Modal>
}
export default InvitationLetter;