Files
fe_service_ebtp_frontend/src/pages/ExamineAndApprove/FailureAnnouncement/index.tsx
2022-03-10 14:24:13 +08:00

140 lines
5.4 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { getURLInformation, isEmpty } from '@/utils/CommonUtils';
import ExtendUpload from '@/utils/ExtendUpload';
import { Card, Collapse, Descriptions } from 'antd';
import React, { useEffect, useState } from 'react';
import BasicInformation from '../BasicInformation/BasicInformation';
import {
changeMedias,
selectDefaultNameByBidMethodDict,
selectNameByBidMethodDict,
} from '../utils';
import { getFailAnnoData } from './service';
import '@/utils/lq.style.less';
import moment from "moment";
import ApprovalAttachment from '../ApprovalAttachment/ApprovalAttachment';
import { getEditStatus } from '../Announcement/service';
const { Panel } = Collapse;
/**
* 失败公告
* @returns
*/
const ProcurementRequirementsArePublicized: React.FC = () => {
//公告id
const annoId = getURLInformation('id');
//url可编辑参数
const edit = getURLInformation('switches');
//上传组件是否可编辑
const isEdit = isEmpty(edit) ? false : edit?.split(',').findIndex(item => item == '020') != -1 ? true : false;
//审批单id
const [processInstanceId, setProcessInstanceId] = useState<string>('');
//weboffice
const [contentWithStyle, setContentWithStyle] = useState('');
const [processName, setProcessName] = useState<any>(selectDefaultNameByBidMethodDict());
//列表展示信息
const [listDisplayInfo, setListDisplayInfo] = useState<any>({
annoTitle: '',
annoStartTime: '',
annoEndTime: '',
sectionNames: '',
attDatasetId: '',
medias: '',
id: '',
approvalFileId: 'empty',
});
//是否可编辑状态
const [editState, setEditState] = useState<boolean>(isEdit)
useEffect(() => {
getFailAnnoData(annoId).then((res) => {
if (res?.code === 200) {
let data = res?.data;
//自定义编辑状态
if (isEmpty(edit)) {
getEditStatus().then(res => {
if (res?.code == 200) {
setEditState(res?.data)
}
})
}
setListDisplayInfo({
annoTitle: data?.annoTitle,
annoStartTime: moment(data?.annoStartTime).format('YYYY-MM-DD HH:mm'),
annoEndTime: moment(data?.annoEndTime).format('YYYY-MM-DD HH:mm'),
sectionNames: data?.sectionNames,
attDatasetId: data?.attDatasetId,
medias: data?.medias,
id: data?.id,
approvalFileId: data?.approvalFileId,
});
setContentWithStyle(data?.contentWithStyle);
setProcessName(selectNameByBidMethodDict(data.annoType));
setProcessInstanceId(data.approvalInstanceId);
}
});
window.parent.postMessage("{'height':" + document.documentElement.scrollHeight + "}", '*');
}, []);
return (
<Card bordered={false} bodyStyle={{ padding: '0 200px', borderRadius: 6 }}>
<h2 style={{ textAlign: 'center', marginTop: 10 }}></h2>
<Collapse defaultActiveKey={['1', '2', '3']} style={{ marginTop: 30 }}>
<Panel header="基本信息" key="1">
<BasicInformation processInstanceId={processInstanceId} />
</Panel>
<Panel header="失败公告信息" key="2">
<Descriptions bordered column={1}>
<Descriptions.Item label="失败公告标题" labelStyle={{ textAlign: 'center', width: '40%' }}>
{listDisplayInfo.annoTitle}
</Descriptions.Item>
<Descriptions.Item label="失败公告发布时间" labelStyle={{ textAlign: 'center' }}>
{listDisplayInfo.annoStartTime}
</Descriptions.Item>
<Descriptions.Item label="失败公告结束时间" labelStyle={{ textAlign: 'center' }}>
{listDisplayInfo.annoEndTime}
</Descriptions.Item>
<Descriptions.Item label="附件" labelStyle={{ textAlign: 'center' }}>
<ExtendUpload
bid={listDisplayInfo.attDatasetId}
btnName="附件"
uploadProps={{ disabled: true }}
/>
</Descriptions.Item>
<Descriptions.Item
label={'关联' + processName.name4}
labelStyle={{ textAlign: 'center' }}
>
{listDisplayInfo.sectionNames}
</Descriptions.Item>
<Descriptions.Item label="发布媒体" labelStyle={{ textAlign: 'center' }}>
{changeMedias(listDisplayInfo.medias)}
</Descriptions.Item>
</Descriptions>
<h3 className="first-title"></h3>
<p className="table-border" dangerouslySetInnerHTML={{ __html: contentWithStyle }}></p>
</Panel>
{!editState && (isEmpty(listDisplayInfo.approvalFileId) || listDisplayInfo.approvalFileId == "empty")
? null
: <Panel header="附件信息" key="3">
<Descriptions bordered column={1}>
<Descriptions.Item label="审批单附件" labelStyle={{ textAlign: 'center', width: '40%' }}>
{
listDisplayInfo.approvalFileId != "empty" ?
<ApprovalAttachment
primaryKey={listDisplayInfo.id}
bid={listDisplayInfo.approvalFileId}
uploadProps={{ disabled: !editState }}
maxCount={1}
/> : null
}
</Descriptions.Item>
</Descriptions>
</Panel>}
</Collapse>
</Card>
);
};
export default ProcurementRequirementsArePublicized;