5.9 上传投标文件、应答情况查看页、评审打分页,评审汇总表,评审结果MAC强控

This commit is contained in:
jl-zhoujl2
2022-05-09 15:03:18 +08:00
parent 216d65fe55
commit c929279c3c
15 changed files with 729 additions and 129 deletions

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 { CheckOutlined, CloseOutlined } from '@ant-design/icons';
import { getProMethod, getRoomId } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';
import ExtendUpload from '@/utils/ExtendUpload';
import MACAddressPrompt from '@/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt';
interface BidPreliminarySummaryProps {
totalSupplier: any;
@ -168,7 +169,12 @@ const PreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
];
columns.forEach((ele: any) => {
tcolumns[4].children.push({
title: ele.supplierRegisterName,
title: (
<>
{ele.supplierRegisterName}
{ele.macConflictStatus && <MACAddressPrompt type='other' companyName={ele.supplierRegisterName} />}
</>
),
dataIndex: ele.supplierRegisterId,
key: ele.supplierRegisterId,
render: (value: any, record: any, index: any) => {

View File

@ -7,6 +7,7 @@ import FileDown from '@/utils/Download';
import { getURLInformation } from '@/utils/CommonUtils';
import FirstTrialTable from '../BidPreliminaryManager/module/FirstTrialTable';
import { btnAuthority } from '@/utils/authority';
import MACAddressPrompt from '../../BidControl/BidControlManager/components/MACAddressPrompt';
const { TabPane } = Tabs;
const { TextArea } = Input;
@ -214,7 +215,7 @@ const Index: React.FC<{}> = () => {
}
getProgress({ ...date }).then((res) => {
if (res.code == 200) {
if(res.data == 100){
if (res.data == 100) {
submitApi()
} else {
message.error("您有未完成的打分项,请完成后再提交!")
@ -237,7 +238,7 @@ const Index: React.FC<{}> = () => {
}
getProgress({ ...date }).then((res) => {
if (res.code == 200) {
if(res.data == 100){
if (res.data == 100) {
setProcess(res.data)
submitApi()
} else {
@ -359,7 +360,12 @@ const Index: React.FC<{}> = () => {
totalSupplierColumns.slice(currentDate, currentDate + 3).map((item: any) => {
supplierId.push(item.supplierRegisterId)
newColumns.push({
title: item.supplierRegisterName,
title: (
<>
{item.supplierRegisterName}
{item.macConflictStatus && <MACAddressPrompt type='score' />}
</>
),
dataIndex: item.supplierRegisterId,
render: (text: any, record: any) => {
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {

View File

@ -1,10 +1,11 @@
import React, { useEffect, useImperativeHandle, useState } from 'react';
import { Input, Pagination, Table } from 'antd';
import React, { useEffect, useImperativeHandle, useRef, useState } from 'react';
import { Input, Pagination, Select, Table } from 'antd';
import '@/assets/ld_style.less';
import { getSupplierScoreData, isCheckShow } from '../service';
import { CheckOutlined, CloseOutlined } from '@ant-design/icons';
import { getURLInformation } from '@/utils/CommonUtils';
import { getProMethod, getRoomId } from '@/utils/session';
import MACAddressPrompt from '@/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt';
interface BidPreliminarySummaryProps {
totalSupplier?: any;
@ -29,12 +30,15 @@ const BidPreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
const [tableDataSource, setTableDataSource] = useState<any[]>([]);
//刷新参数
const [count, setCount] = useState<number>(0);
const tableDataRef = useRef<any[]>([]);
const isShowRef = useRef<boolean>(false);
tableDataRef.current = tableDataSource;
const proMethod = getProMethod();//获取采购方式
let showNameT: any = { tbr: '', pb: '', tb: '' }//投标人供应商
if (proMethod === 'procurement_mode_1' || proMethod === 'procurement_mode_2') {//招标
showNameT = { tbr: '投标人', pb: '评标', tb: '投标' };
showNameT = { tbr: '投标人', pb: '评标', tb: '投标' };
} else {
showNameT = { tbr: '供应商', pb: '评审', tb: '应答' }
showNameT = { tbr: '供应商', pb: '评审', tb: '应答' }
}
const { TextArea } = Input;
@ -76,6 +80,7 @@ const BidPreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
//判断采购方式是否符合
isCheckShow(juryDataParams.assessRoomId).then((res) => {
if (res.code == 200) {
isShowRef.current = res.data;
let count = 0;
totalSupplier.forEach((ele: any) => {
if (
@ -133,6 +138,12 @@ const BidPreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
return pre
}
}, 0)
for (const key in inner.earlyMap) {
if (Object.prototype.hasOwnProperty.call(inner.earlyMap, key)) {
const element = inner.earlyMap[key];
element['originalResult'] = element.judgesResult;
}
}
if (count == inner.length - 1) {
count = 0
} else {
@ -232,7 +243,12 @@ const BidPreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
];
columns.forEach((ele: any) => {
tcolumns[4].children.push({
title: ele.supplierRegisterName,
title: (
<>
{ele.supplierRegisterName}
{ele.macConflictStatus && <MACAddressPrompt type='other' companyName={ele.supplierRegisterName} />}
</>
),
dataIndex: ele.supplierRegisterId,
key: ele.supplierRegisterId,
render: (value: any, record: any, index: any) => {
@ -261,6 +277,7 @@ const BidPreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
return readOnly ? value.remarks : (!value.judgesResult ? <TextArea
onBlur={(e) => {
value.remarks = e.target.value
setTableDataSource([...tableDataRef.current])
}}
maxLength={500}
autoSize
@ -268,7 +285,33 @@ const BidPreliminarySummary: React.FC<BidPreliminarySummaryProps> = (props) => {
defaultValue={value.remarks}
/> : null)
} else {
return value.judgesResult == true ? '合格' : '不合格';
// return value.judgesResult == true ? '合格' : '不合格';
return readOnly || !ele.macConflictStatus ? value.judgesResult ? '合格' : '不合格' : (<Select
onChange={(e) => {
value.judgesResult = !!e;
tableDataRef.current[tableDataRef.current.length - 1][ele.supplierRegisterId].judgesResult = !!e;
setTableDataSource([...tableDataRef.current])
if (isShowRef.current) {
let count = 0;
totalSupplier.forEach((ele: any) => {
if (tableDataRef.current[tableDataRef.current.length - 1][ele.supplierRegisterId].judgesResult) {
count = count + 1;
}
});
if (count < 3) {
onSubmit(true)
} else {
onSubmit(false)
}
}
}}
options={[
{ label: '合格', value: 1 },
{ label: '不合格', value: 0 },
]}
style={{ width: '100px' }}
defaultValue={value.judgesResult ? 1 : 0}
/>)
}
}
},

View File

@ -11,6 +11,7 @@ import FileDown from '@/utils/Download';
import { getURLInformation, isEmpty } from '@/utils/CommonUtils';
import ExtendUpload from '@/utils/ExtendUpload';
import { btnAuthority } from '@/utils/authority';
import MACAddressPrompt from '../../BidControl/BidControlManager/components/MACAddressPrompt';
const { TabPane } = Tabs;
const { SubMenu } = Menu;
@ -444,7 +445,12 @@ const Index: React.FC<{}> = () => {
totalSupplierColumns.slice(currentDate, currentDate + 3).map((item: any) => {
supplierId.push(item.supplierRegisterId)
newColumns.push({
title: item.supplierRegisterName,
title: (
<>
{item.supplierRegisterName}
{item.macConflictStatus && <MACAddressPrompt type='other' companyName={item.supplierRegisterName} />}
</>
),
dataIndex: item.supplierRegisterId,
render: (text: any, record: any) => {
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
@ -751,6 +757,8 @@ const Index: React.FC<{}> = () => {
supplierRegisterId: item?.supplierRegisterId,
qualifiedStatus: obj?.judgesResult ? '1' : '2',
remarks: obj?.judgesResult ? null : obj?.remarks,
originalResult: obj?.originalResult ? '1' : '2',
modifyResultStatus: obj?.judgesResult != obj?.originalResult,
})
});
if (Error.length > 0) {

View File

@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react';
import { Button, Card, DatePicker, Divider, Form, List, message, Modal, Progress, Spin } from "antd";
import { Button, Card, DatePicker, Divider, Form, List, message, Modal, Popover, Progress, Spin, Typography } from "antd";
import ProForm, {
ModalForm,
ProFormDateTimePicker,
@ -8,9 +8,10 @@ import ProTable from "@ant-design/pro-table";
import {
ClockCircleOutlined,
DownloadOutlined,
ExclamationCircleOutlined,
FullscreenExitOutlined,
UnorderedListOutlined
} from "@ant-design/icons/lib";
} from "@ant-design/icons";
import {
getBiddingDocumentsDecryptList,
DownFile,
@ -57,6 +58,7 @@ const BiddingDocumentsDecrypt: React.FC<BiddingDocumentsDecryptProps> = (props)
const [spinTip, spinTipSet] = useState<string>('请稍等...');//spin tip显示文字
const MethodDict = getProMethod();
const { Title, Text } = Typography;
//应答字段类型 评标,应答
let responseType = MethodDict == "procurement_mode_1" || MethodDict == "procurement_mode_2" ? "投标" : "应答"
let supplierType = MethodDict == "procurement_mode_1" || MethodDict == "procurement_mode_2" ? "投标人" : "供应商"
@ -367,6 +369,26 @@ const BiddingDocumentsDecrypt: React.FC<BiddingDocumentsDecryptProps> = (props)
dataIndex: 'companyName',
valueType: 'text'
},
{
title: (
<span>
MAC地址检测承诺书时间
<Popover
content={
<Typography>
<Title level={5}></Title>
<Text style={{ display: 'inline-block', textIndent: '2em' }}>IPMAC地址校验MAC地址相同/</Text>
</Typography>
}
overlayInnerStyle={{ width: 400 }}
>
<ExclamationCircleOutlined style={{ color: '#b30000', marginLeft: 4 }} />
</Popover>
</span>
),
dataIndex: 'confirmTime',
valueType: 'text'
},
{
title: '解密状态',
dataIndex: item.quoteOrOther == "1" ? 'decryptOtherStatus' : "decryptStatus",

View File

@ -15,6 +15,7 @@ import SortEditableTable from './SortEditableTable';
import ReviewReportUpload from '@/utils/ReviewReportUpload';
import { ExclamationCircleOutlined } from '@ant-design/icons';
import { getFileListByBid } from '@/utils/DownloadUtils';
import MACAddressPrompt from '@/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt';
const { Panel } = Collapse;
const { TextArea } = Input;
@ -286,6 +287,26 @@ const GroupLeader: React.FC = () => {
{
title: '供应商名称',
dataIndex: 'companyName',
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
// render: (_: any, record: any) => {
// let tip = <></>;
// if (record.problemInfoList?.length > 0) {
@ -345,6 +366,23 @@ const GroupLeader: React.FC = () => {
title: '是否通过初步评审',
dataIndex: 'firstRvwResult',
render: (_: any, record: any) => {
/**
* 2022.5.9 zhoujianlong 增加MAC地址重复供应商不能将中标候选人选为的校验
*/
if (!confirmSubmitStatus && record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
if (record.winnerCandidate == 'yes') {
message.info(`${record.companyName}与其他供应商MAC地址相同不可选为${candidateType}候选人`);
record.winnerCandidate = 'no'
}
}
}
if (record.firstRvwResult == null) {
return '-'
} else {
@ -382,6 +420,26 @@ const GroupLeader: React.FC = () => {
dataIndex: 'companyName',
width: 110,
fixed: 'left',
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
// render: (_: any, record: any) => {
// let tip = <></>;
// if (record.problemInfoList?.length > 0) {
@ -476,6 +534,27 @@ const GroupLeader: React.FC = () => {
isEmpty(record.winnerCandidate) ? record.winnerCandidate = 'no' : null
isEmpty(record.winnerBidder) ? record.winnerBidder = '0' : null
}
/**
* 2022.5.9 zhoujianlong 增加MAC地址重复供应商不能将中标候选人选为的校验
*/
if (!confirmSubmitStatus && record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
if (record.winnerCandidate == 'yes') {
message.info(`${record.companyName}与其他供应商MAC地址相同不可选为入围候选人`);
record.winnerCandidate = 'no'
}
if (record.winnerBidder == '1') {
message.info(`${record.companyName}与其他供应商MAC地址相同不可选为拟入围人`);
record.winnerBidder = '0'
}
}
}
record.answerValid = valid
return rvwResultRender(_, record.detailRvwReason);
}
@ -532,6 +611,26 @@ const GroupLeader: React.FC = () => {
dataIndex: 'companyName',
width: 110,
fixed: 'left',
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
// render: (_: any, record: any) => {
// let tip = <></>;
// if (record.problemInfoList?.length > 0) {
@ -645,6 +744,27 @@ const GroupLeader: React.FC = () => {
isEmpty(record.winnerCandidate) ? record.winnerCandidate = 'no' : null
isEmpty(record.winnerBidder) ? record.winnerBidder = '0' : null
}
/**
* 2022.5.9 zhoujianlong 增加MAC地址重复供应商不能将中标候选人选为的校验
*/
if (!confirmSubmitStatus && record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
if (record.winnerCandidate == 'yes') {
message.info(`${record.companyName}与其他供应商MAC地址相同不可选为${candidateType}候选人`);
record.winnerCandidate = 'no'
}
if (record.winnerBidder == '1') {
message.info(`${record.companyName}与其他供应商MAC地址相同不可选为拟${candidateType}`);
record.winnerBidder = '0'
}
}
}
record.answerValid = valid
return rvwResultRender(_, record.detailRvwReason);
}
@ -747,6 +867,26 @@ const GroupLeader: React.FC = () => {
dataIndex: 'companyName',
width: 110,
fixed: 'left',
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '商务分',
@ -827,6 +967,23 @@ const GroupLeader: React.FC = () => {
if (valid == 0 && !resultDisabledStatus) {//应答是否有效为否并且当前是编辑状态自动触发
isEmpty(record.winnerCandidate) ? record.winnerCandidate = 'no' : null
}
/**
* 2022.5.9 zhoujianlong 增加MAC地址重复供应商不能将中标候选人选为的校验
*/
if (!confirmSubmitStatus && record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
if (record.winnerCandidate == 'yes') {
message.info(`${record.companyName}与其他供应商MAC地址相同不可通过审核结果`);
record.winnerCandidate = 'no'
}
}
}
record.answerValid = valid
return rvwResultRender(_, record.detailRvwReason);
}

View File

@ -12,6 +12,7 @@ import { btnAuthority } from '@/utils/authority';
import WebOffice0609, { WebOfficeRefProps } from '@/pages/webOffice/weboffice0609';
import ReviewReportUpload from '@/utils/ReviewReportUpload';
import { getFileListByBid } from '@/utils/DownloadUtils';
import MACAddressPrompt from '@/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt';
const { Panel } = Collapse;
const { TextArea } = Input;
const { Paragraph, Text } = Typography;
@ -99,6 +100,26 @@ const Jury: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 110,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: `报价(${quotationMethod}`,
@ -205,6 +226,26 @@ const Jury: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 110,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '商务分',
@ -291,6 +332,26 @@ const Jury: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 210,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '报价总金额净价(元)',
@ -353,6 +414,26 @@ const Jury: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 110,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '商务分',

View File

@ -11,6 +11,7 @@ import { btnAuthority } from '@/utils/authority';
import WebOffice0609, { WebOfficeRefProps } from '@/pages/webOffice/weboffice0609';
import ReviewReportUpload from '@/utils/ReviewReportUpload';
import { getFileListByBid } from '@/utils/DownloadUtils';
import MACAddressPrompt from '@/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt';
const { Panel } = Collapse;
const { Paragraph, Text } = Typography;
@ -101,6 +102,26 @@ const Manager: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 110,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: `报价(${quotationMethod}`,
@ -207,6 +228,26 @@ const Manager: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 110,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '商务分',
@ -293,6 +334,26 @@ const Manager: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 210,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '报价总金额净价(元)',
@ -355,6 +416,26 @@ const Manager: React.FC = () => {
title: '供应商名称',
dataIndex: 'companyName',
width: 110,
render: (_: any, record: any) => {
if (record.problemInfoList != null) {
let count = 0;
record.problemInfoList.forEach((ele: any) => {
if (ele.problemType == 1) {//MAC地址重复
count += 1;
}
});
if (count > 0) {
return (
<>
{_}
{<MACAddressPrompt type='other' companyName={_} />}
</>
)
}
return _;
}
return _;
}
},
{
title: '商务分',