Merge branch 'master' of http://10.124.128.2:8888/eshop/fe_service_ebtp_frontend into master-风控限定供应商

This commit is contained in:
yss
2022-07-29 10:46:14 +08:00
214 changed files with 8987 additions and 3169 deletions

View File

@ -0,0 +1,121 @@
import React, { useEffect, useState } from 'react';
import { Collapse, Table } from 'antd';
import { getBidDocSmartCheckList } from '../service';
import { getRoomId, getSessionRoleData } from '@/utils/session';
interface BidDocSmartCheckFormModalProps {
modalVisible: boolean;
values: any;
onCancel: any;
}
const BidDocSmartCheckFormModal: React.FC<BidDocSmartCheckFormModalProps> = (props) => {
const [bidDocSmartCheckList, setBidDocSmartCheckList] = useState([]);
//查看详情窗口record
const [juryTableShow, setJuryTableShow] = useState<boolean>(true);
//是否显示法人及投标人名称对比结果;false-不显示结果true-显示结果
const [checkLegalAndNameResult, setCheckLegalAndNameResult] = useState<boolean>(true);
var roleId = getSessionRoleData().roleCode;
useEffect(() => {
setJuryTableShow(false);
getWarningList();
if (roleId === "ebtp-expert") {
setJuryTableShow(false);
}
}, [])
function callback(key: any) {
//getSessionUserData.roleIds;
}
function visibleValue(key: any) {
if (key) {
return <span style={{ color: 'green' }}></span>;
} else {
return <span style={{ color: 'red' }}>×</span>;
}
}
function visibleLegalAndNameValue(key: any) {
//false-不显示结果true-显示结果
if (checkLegalAndNameResult) {
if (key) {
return <span style={{ color: 'green' }}></span>;
} else {
return <span style={{ color: 'red' }}>×</span>;
}
} else {
return <span></span>;
}
}
const BidDocSmartCheckColumns = [
{ title: '序号', dataIndex: 'num', width: 60, render: (text: any, record: any, index: any) => `${index + 1}` },
{ title: '供应商名称', dataIndex: 'companyName', },
{
title: '供应商投标文件密封性检查', dataIndex: 'docTightnessCheck', render: (_: any, record: any) => {
return visibleValue(record.docTightnessCheck);
}
},
{ title: '供应商投标文件的完整性', dataIndex: 'docIntegrityCheck', render: (_: any, record: any) => {
return visibleValue(record.docIntegrityCheck);
}},
{ title: 'Mac、IP地址校验', dataIndex: 'macIPCheck', render: (_: any, record: any) => {
return visibleValue(record.macIPCheck);
}},
{ title: '投标保证金缴纳', dataIndex: 'ensureStatus', render: (_: any, record: any) => {
return visibleValue(record.ensureStatus);
}},
{ title: '不同投标人间法定代表人、法定代表授权委托人对比', dataIndex: 'supplierLegalCheck', render: (_: any, record: any) => {
return visibleLegalAndNameValue(record.supplierLegalCheck);
}},
{ title: '投标人名称与系统操作投标人名称', dataIndex: 'supplierNameCheck', render: (_: any, record: any) => {
return visibleLegalAndNameValue(record.supplierNameCheck);
}},
];
const ret = { "code": 200, "success": true, "message": "success", "data": []}
const getWarningList = async () => {
let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId')
//投标文件智能审查
await getBidDocSmartCheckList(roomId).then((res) => {
if (res.success == true) {
setCheckLegalAndNameResult(res?.data?.isCheckLegalAndName);
if(res?.data?.isCheckOpen){
setJuryTableShow(true);
setBidDocSmartCheckList(res.data?.checkResults)
}
} else {
setBidDocSmartCheckList(ret.data);
}
})
}
return (
<>
{juryTableShow ?
<Collapse onChange={callback}>
<Collapse.Panel header="投标文件智能审查" key="3">
{<span style={{ color: 'red' }}>"√""×"</span>}
{
<Table
columns={BidDocSmartCheckColumns}
dataSource={bidDocSmartCheckList}
pagination={false}//分页
></Table>
}
</Collapse.Panel>
</Collapse>
: null}
</>
);
};
export default BidDocSmartCheckFormModal;

View File

@ -0,0 +1,70 @@
import React, { useState } from 'react';
import { Modal, Popover, Typography } from 'antd';
import { ExclamationCircleOutlined } from '@ant-design/icons';
import ViewRishFormModal from './ViewRishFormModal';
interface MACAddressPromptProps {
type: string; //score-打分 other-其他
companyName?: string //公司名称
}
const MACAddressPrompt: React.FC<MACAddressPromptProps> = (props) => {
const { type, companyName } = props;
const { Text, Link } = Typography;
const modalHeight = window.innerHeight * 96 / 100;
//Modal visible
const [visible, setVisible] = useState<boolean>(false);
return (
<>
{type == 'score' ? (
<Modal
destroyOnClose
visible={visible}
onCancel={() => setVisible(false)}
style={{ maxHeight: modalHeight }}
bodyStyle={{ maxHeight: modalHeight - 54, overflowY: 'auto', }}
width={'80%'}
centered
closable={false}
cancelText="关闭"
okButtonProps={{ hidden: true }}
>
<ViewRishFormModal activeKey={true} />
</Modal>
) : (
<Modal
destroyOnClose
visible={visible}
onCancel={() => setVisible(false)}
centered
bodyStyle={{ padding: 40 }}
footer={null}
>
<Text strong>{companyName}MAC地址相同WTZ2019110816765MAC地址相同</Text>
</Modal>
)}
<Popover
content={
<Typography>
<Text strong style={{ display: 'block', }}></Text>
<Text strong style={{ fontSize: 64, lineHeight: '8px', float: 'left', color: '#b30000' }}>·</Text>
<Link
href="#"
onClick={() => {
setVisible(true);
}}
underline={true}
>
MAC地址重复
</Link>
</Typography>
}
>
<ExclamationCircleOutlined style={{ color: '#b30000', marginLeft: 4 }} />
</Popover>
</>
);
};
export default MACAddressPrompt;

View File

@ -5,9 +5,10 @@ import { getProMethod, getRoomId } from '@/utils/session';
import FileDown from '@/utils/Download';
interface ViewRishFormModalProps {
modalVisible: boolean;
values: any;
onCancel: any;
modalVisible?: boolean;
values?: any;
onCancel?: any;
activeKey?: boolean;
}
@ -22,7 +23,7 @@ const ViewRishFormModal: React.FC<ViewRishFormModalProps> = (props) => {
} else {
name1 = "应答";
}
useEffect(() => {
getWarningList();
}, [])
@ -35,12 +36,12 @@ const ViewRishFormModal: React.FC<ViewRishFormModalProps> = (props) => {
{ title: '序号', width: '10%', render: (text: any, record: any, index: any) => `${index + 1}` },
{ title: '供应商名称', width: '20%', dataIndex: 'companyName', },
{
title: 'IP地址', width: 200, dataIndex: 'ip', render: (_ : any, record: any) => {
title: 'IP地址', width: 200, dataIndex: 'ip', render: (_: any, record: any) => {
return <div style={{ wordBreak: 'break-all', wordWrap: 'break-word' }}>{record.ip}</div>;
}
},
{
title: 'MAC地址', width: '20%', dataIndex: 'mac', render: (_ : any, record: any) => {
title: 'MAC地址', width: '20%', dataIndex: 'mac', render: (_: any, record: any) => {
return <div style={{ wordBreak: 'break-all', wordWrap: 'break-word' }}>{record.mac}</div>;
}
},
@ -51,7 +52,7 @@ const ViewRishFormModal: React.FC<ViewRishFormModalProps> = (props) => {
{ title: '序号', width: '10%', render: (text: any, record: any, index: any) => `${index + 1}` },
{ title: '供应商名称', width: '25%', dataIndex: 'companyName', },
{
title: 'MAC地址', width: '20%', dataIndex: 'mac', render: (_ : any, record: any) => {
title: 'MAC地址', width: '20%', dataIndex: 'mac', render: (_: any, record: any) => {
return <div style={{ wordBreak: 'break-all', wordWrap: 'break-word' }}>{record.mac}</div>;
}
},
@ -77,7 +78,7 @@ const ViewRishFormModal: React.FC<ViewRishFormModalProps> = (props) => {
return (
<>
<Collapse onChange={callback}>
<Collapse onChange={callback} defaultActiveKey={props?.activeKey ? ['1'] : []}>
<Collapse.Panel header={`${name1}文件制作地址日志信息查看`} key="1">
{rishList?.length == 0
? <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
@ -124,7 +125,7 @@ const ViewRishFormModal: React.FC<ViewRishFormModalProps> = (props) => {
</Collapse>
);
}) : (
<Card bordered={false} bodyStyle={{padding: '16px 24px'}}>
<Card bordered={false} bodyStyle={{ padding: '16px 24px' }}>
<p>MAC地址相同的供应商信息如下 </p>
<Table
size='small'

View File

@ -6,6 +6,7 @@ import ViewReviewResultFormModal from './components/ViewReviewResultFormModal';
import ViewJuryScoringRemindFormModal from './components/ViewJuryScoringRemindFormModal';
import ViewJuryScoringAnalysisFormModal from './components/ViewJuryScoringAnalysisFormModal';
import ViewRiskSupplierModal from './components/ViewRiskSupplierModal';
import BidDocSmartCheckFormModal from './components/BidDocSmartCheckFormModal';
const Sing: React.FC<{}> = () => {
@ -42,7 +43,12 @@ const Sing: React.FC<{}> = () => {
const [BidRiskSupplierVisible, setBidRiskSupplierVisible] = useState<any>(false);
//风控中心-风险限定供应商record
const [BidRiskSupplierValues, setRiskSupplierValues] = useState<any>({});
return (
//投标文件智能审查
const [BidDocSmartCheckFormVisible, setBidDocSmartCheckFormVisible] = useState<any>(false);
//查看详情窗口record
const [BidDocSmartCheckValues, setBidDocSmartCheckValues] = useState<any>({});
return (
<>
{
ViewRishFormModal ? (
@ -68,74 +74,87 @@ const Sing: React.FC<{}> = () => {
}}
>
</ViewQuoteWarningFormModal>
) : null
}
{
ViewBlacklistFormModal ? (
<ViewBlacklistFormModal
modalVisible={ViewBlacklistFormVisible}
values={ViewBlacklistValues}
onCancel={() => {
setViewBlacklistFormVisible(!ViewBlacklistFormVisible);
setViewBlacklistValues({});
}}
>
</ViewBlacklistFormModal>
) : null
}
{
ViewReviewResultFormModal ? (
<ViewReviewResultFormModal
modalVisible={ViewReviewResultFormVisible}
values={ViewReviewResultValues}
onCancel={() => {
setViewReviewResultFormVisible(!ViewReviewResultFormVisible);
setViewReviewResultValues({});
}}
>
</ViewReviewResultFormModal>
) : null
}
{
ViewJuryScoringRemindFormModal ? (
<ViewJuryScoringRemindFormModal
modalVisible={ViewJuryScoringRemindFormVisible}
values={ViewJuryScoringRemindValues}
onCancel={() => {
setViewJuryScoringRemindFormVisible(!ViewJuryScoringRemindFormVisible);
setViewJuryScoringRemindValues({});
}}
>
</ViewJuryScoringRemindFormModal>
) : null
}
{
ViewJuryScoringAnalysisFormModal ? (
<ViewJuryScoringAnalysisFormModal
modalVisible={ViewJuryScoringAnalysisFormVisible}
values={ViewJuryScoringAnalysisValues}
onCancel={() => {
setViewJuryScoringAnalysisFormVisible(!ViewJuryScoringAnalysisFormVisible);
setViewJuryScoringAnalysisValues({});
}}
>
</ViewJuryScoringAnalysisFormModal>
) : null
}
{
ViewRiskSupplierModal ? (
<ViewRiskSupplierModal
modalVisible={BidRiskSupplierVisible}
values={BidRiskSupplierValues}
onCancel={() => {
setBidRiskSupplierVisible(!BidRiskSupplierVisible);
setRiskSupplierValues({});
}}
>
</ViewRiskSupplierModal>
) : null
}
</ViewQuoteWarningFormModal>
) : null
}
{
ViewBlacklistFormModal ? (
<ViewBlacklistFormModal
modalVisible={ViewBlacklistFormVisible}
values={ViewBlacklistValues}
onCancel={() => {
setViewBlacklistFormVisible(!ViewBlacklistFormVisible);
setViewBlacklistValues({});
}}
>
</ViewBlacklistFormModal>
) : null
}
{
ViewReviewResultFormModal ? (
<ViewReviewResultFormModal
modalVisible={ViewReviewResultFormVisible}
values={ViewReviewResultValues}
onCancel={() => {
setViewReviewResultFormVisible(!ViewReviewResultFormVisible);
setViewReviewResultValues({});
}}
>
</ViewReviewResultFormModal>
) : null
}
{
ViewJuryScoringRemindFormModal ? (
<ViewJuryScoringRemindFormModal
modalVisible={ViewJuryScoringRemindFormVisible}
values={ViewJuryScoringRemindValues}
onCancel={() => {
setViewJuryScoringRemindFormVisible(!ViewJuryScoringRemindFormVisible);
setViewJuryScoringRemindValues({});
}}
>
</ViewJuryScoringRemindFormModal>
) : null
}
{
ViewJuryScoringAnalysisFormModal ? (
<ViewJuryScoringAnalysisFormModal
modalVisible={ViewJuryScoringAnalysisFormVisible}
values={ViewJuryScoringAnalysisValues}
onCancel={() => {
setViewJuryScoringAnalysisFormVisible(!ViewJuryScoringAnalysisFormVisible);
setViewJuryScoringAnalysisValues({});
}}
>
</ViewJuryScoringAnalysisFormModal>
) : null
}
{
BidDocSmartCheckFormModal ? (
<BidDocSmartCheckFormModal
modalVisible={BidDocSmartCheckFormVisible}
values={BidDocSmartCheckValues}
onCancel={() => {
setBidDocSmartCheckFormVisible(!BidDocSmartCheckFormVisible);
setBidDocSmartCheckValues({});
}}
>
</BidDocSmartCheckFormModal>
) : null
}
{
ViewRiskSupplierModal ? (
<ViewRiskSupplierModal
modalVisible={BidRiskSupplierVisible}
values={BidRiskSupplierValues}
onCancel={() => {
setBidRiskSupplierVisible(!BidRiskSupplierVisible);
setRiskSupplierValues({});
}}
>
</ViewRiskSupplierModal>
) : null
}
</>
)
}

View File

@ -61,6 +61,13 @@ export async function getBlackList(projectId:any,assessRoomId: any) { //黑名
});
}
export async function getBidDocSmartCheckList(assessRoomId: any) { //投标文件智能审查
return request('/api/biz-service-ebtp-resps/v1/tfilewarning/getBidDocSmartCheck?assessRoomId='+`${assessRoomId}`, {
method: 'get'
});
}
export async function getDeviatedWarnList(assessRoomId: any) { // 偏离度提醒
return request('/api/biz-service-ebtp-rsms/v1/bid/deviated/warn/findBidDeviatedWarnListByRoomId/'+`${assessRoomId}`, {
method: 'get'