Files
fe_service_ebtp_frontend/src/pages/SupplierRelation/index.tsx

156 lines
8.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React, { Fragment, useEffect, useState } from 'react';
import styles from '../Evaluation/BiddingDocumentsDecrypt/index.less';
import logo from '@/images/opening/logo.svg';
import { Descriptions, Spin, Typography } from 'antd';
import EquityRelation from '@/components/EquityRelation';
import ProTable, { ProColumns } from '@ant-design/pro-table';
import { getSuspectedViolation } from '../Evaluation/BidControl/BidControlManager/service';
import { getProjectDataById, getSectionDataById } from '@/services/common';
import { getURLInformation } from '@/utils/CommonUtils';
import { updateRead } from './service';
const SupplierRelation: React.FC<{}> = () => {
const title_style = { color: "#b30000", fontWeight: 700 };
const { Paragraph, Text } = Typography;
//loading
const [loading, setLoading] = useState<boolean>(true);
//查询的供应商股权关系数据,确认数据。
const [warningsData, setWarningsData] = useState<any>();
//项目数据
const [projectData, setProjectData] = useState<any>();
//标段数据
const [sectionData, setSectionData] = useState<any>();
//专家组长填写的表格的供应商
const [supplierTableData, setSupplierTableData] = useState<any[]>([]);
//获取url参数
const tpId = getURLInformation("tpId");
const sectionId = getURLInformation("sectionId");
const roomId = getURLInformation("roomId");
const readingCode = getURLInformation("readingCode");
const readOnlyColumns: ProColumns<any>[] = [
{
title: <Text strong>A</Text>,
render: (_: any, record: any) => (
<span>{record?.supplierA.name}</span>
),
},
{
title: <Text strong>B</Text>,
render: (_: any, record: any) => (
<span>{record?.supplierB.name}</span>
),
},
{
title: <Text strong></Text>,
editable: false,
render: (_: any, record: any) => (
<span>{record.typeDesc}</span>
),
},
{
title: <Text strong></Text>,
dataIndex: 'relationFlag',
key: 'relationFlag',
render: (_: any, record: any) => warningsData?.headmanConfirmStatus == "1" ? (<span style={{ color: record.relationFlag == 1 ? "" : "red" }}>{record.relationFlag == 1 ? "是" : record.relationFlag == 0 ? "否" : "-"}</span>) : (<span>-</span>),
},
{
title: <Text strong></Text>,
dataIndex: 'riskFlag',
key: 'riskFlag',
render: (_: any, record: any) => warningsData?.headmanConfirmStatus == "1" ? (<span style={{ color: record.riskFlag == 1 ? "" : "red" }}>{record.riskFlag == 1 ? "是" : record.riskFlag == 0 ? "否" : "-"}</span>) : (<span>-</span>),
},
{
title: <Text strong></Text>,
dataIndex: 'memo',
key: 'memo',
render: (_: any, record: any) => warningsData?.headmanConfirmStatus == "1" ? _ : (<span>-</span>)
},
];
//获取数据
const getData = async () => {
let params = {
"tpId": tpId,
"sectionId": sectionId,
"assessRoomId": roomId,
}
// let params = { "tpId": "1626032810108956672", "sectionId": "1626032810125733888", "assessRoomId": "1626032965674401792" };
if (tpId && sectionId && roomId && readingCode) {
setLoading(true);
const riskResponse = await getSuspectedViolation(params);//获取风险数据
const projectResponse = await getProjectDataById(params.tpId);//获取项目数据
const sectionResponse = await getSectionDataById(params.sectionId);//获取标段数据
if (riskResponse && riskResponse.success) {
setSupplierTableData(riskResponse?.data?.riskSupplier != null ? riskResponse?.data?.riskSupplier?.map((item: any) => { item.riskFlag = String(item.riskFlag); item.relationFlag = String(item.relationFlag); return item }) : []);
setWarningsData(riskResponse?.data);
}
if (projectResponse && projectResponse.success) {
setProjectData(projectResponse?.data);
}
if (sectionResponse && sectionResponse.success) {
setSectionData(sectionResponse?.data);
}
setLoading(false);
updateRead({ assessRoomId: roomId, readingCode });
}
}
useEffect(() => {
getData();
}, [])
return (
<Fragment>
<div className={styles.headerView}>
<div className={styles.headerAlignView}
style={{ position: "absolute", left: "0", fontSize: "16px", fontWeight: 600, top: '15px' }}>
<img src={logo} style={{ height: "30px", marginRight: "10px", position: 'relative', top: '-2px' }} />
</div>
</div>
<div style={{ height: "calc(100vh - 56px)", overflow: "auto", padding: "24px" }}>
<Spin spinning={loading}>
<h2 style={{ fontWeight: "bold", textAlign: "center", lineHeight: "60px" }}>
</h2>
<h3 className="first-title" style={title_style}></h3>
<Descriptions column={4}>
<Descriptions.Item label="项目名称">{projectData?.projectName ?? "-"}</Descriptions.Item>
<Descriptions.Item label="项目编号">{projectData?.ebpProjectNumber ?? "-"}</Descriptions.Item>
{projectData?.bidOrgDict !== "organization_2" && <Descriptions.Item label="代理机构业务经理">{projectData?.appManagerName ?? "-"}</Descriptions.Item>}
<Descriptions.Item label="采购经理">{projectData?.ownerContactName ?? "-"}</Descriptions.Item>
<Descriptions.Item label="标段名称">{sectionData?.bidSectName ?? "-"}</Descriptions.Item>
</Descriptions>
<h3 className="first-title" style={title_style}></h3>
<div style={{ display: "flex", justifyContent: "flex-start", alignItems: "flex-start" }}>
<div style={{ width: "50vw" }}>
<EquityRelation result={warningsData?.riskData} />
</div>
<div style={{ width: "calc(50vw - 60px)", paddingLeft: "40px", paddingTop: "42px" }}>
<Paragraph>
<Text strong></Text>
</Paragraph>
<Paragraph>
<Text strong></Text>
</Paragraph>
<Paragraph>
<Text strong>51%!</Text>
</Paragraph>
</div>
</div>
<div style={{ margin: "10px 0" }}>
<h3 className="first-title" style={title_style}></h3>
<ProTable
rowKey="id"
pagination={false}
search={false}
options={false}
columns={readOnlyColumns}
dataSource={supplierTableData}
/>
</div>
</Spin>
</div>
</Fragment>
);
};
export default SupplierRelation;