diff --git a/src/components/Upload/react-resumable.js b/src/components/Upload/react-resumable.js index ebf50d2..97cf42c 100644 --- a/src/components/Upload/react-resumable.js +++ b/src/components/Upload/react-resumable.js @@ -5,6 +5,7 @@ import Resumablejs from "./resumable"; import SparkMD5 from "./spark-md5"; import './style.css'; import { getCurrentTime, getTendererFileStatus } from './service'; +import { getProMethod } from '@/utils/session'; function getUuid() { return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) { @@ -39,7 +40,8 @@ export default class ReactResumableJs extends React.Component { }, timer: 0,// 计时器 redText: false, - btnHide: false + btnHide: false, + proMethod: getProMethod(), }; this.resumable = null; this.timerInterval; @@ -253,7 +255,8 @@ export default class ReactResumableJs extends React.Component { let data = { "tdocCatalogId": this.props.currentDate.tdocCatalogId, "tdocId": this.props.currentDate.tdocId, - "tendererId": this.props.currentDate.tendererId + "tendererId": this.props.currentDate.tendererId, + "tpId": this.state.proMethod, } getTendererFileStatus(data).then((res) => { // 判断是否已投标 if (res.code == 200) { diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt.tsx new file mode 100644 index 0000000..100c350 --- /dev/null +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/MACAddressPrompt.tsx @@ -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 = (props) => { + const { type, companyName } = props; + const { Text, Link } = Typography; + const modalHeight = window.innerHeight * 96 / 100; + //Modal visible + const [visible, setVisible] = useState(false); + + return ( + <> + {type == 'score' ? ( + setVisible(false)} + style={{ maxHeight: modalHeight }} + bodyStyle={{ maxHeight: modalHeight - 54, overflowY: 'auto', }} + width={'80%'} + centered + closable={false} + cancelText="关闭" + okButtonProps={{ hidden: true }} + > + + + ) : ( + setVisible(false)} + centered + bodyStyle={{ padding: 40 }} + footer={null} + > + {companyName}与其他供应商MAC地址相同,根据联通《关于进一步防范围标串标风险的通知》(WTZ2019110816765),如不同供应商MAC地址相同,视同围标、串标! + + )} + + 风险点 + · + { + setVisible(true); + }} + underline={true} + > + 与其他供应商MAC地址重复 + + + } + > + + + + ); +}; + +export default MACAddressPrompt; diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewRishFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewRishFormModal.tsx index 1d5eb1d..eb02c3c 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewRishFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewRishFormModal.tsx @@ -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 = (props) => { } else { name1 = "应答"; } - + useEffect(() => { getWarningList(); }, []) @@ -35,12 +36,12 @@ const ViewRishFormModal: React.FC = (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
{record.ip}
; } }, { - title: 'MAC地址', width: '20%', dataIndex: 'mac', render: (_ : any, record: any) => { + title: 'MAC地址', width: '20%', dataIndex: 'mac', render: (_: any, record: any) => { return
{record.mac}
; } }, @@ -51,7 +52,7 @@ const ViewRishFormModal: React.FC = (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
{record.mac}
; } }, @@ -77,7 +78,7 @@ const ViewRishFormModal: React.FC = (props) => { return ( <> - + {rishList?.length == 0 ? @@ -124,7 +125,7 @@ const ViewRishFormModal: React.FC = (props) => { ); }) : ( - +

MAC地址相同的供应商信息如下:

= (props) => { ]; columns.forEach((ele: any) => { tcolumns[4].children.push({ - title: ele.supplierRegisterName, + title: ( + <> + {ele.supplierRegisterName} + {ele.macConflictStatus && } + + ), dataIndex: ele.supplierRegisterId, key: ele.supplierRegisterId, render: (value: any, record: any, index: any) => { diff --git a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReview/index.tsx b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReview/index.tsx index 629e1a7..e674016 100644 --- a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReview/index.tsx +++ b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReview/index.tsx @@ -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 && } + + ), dataIndex: item.supplierRegisterId, render: (text: any, record: any) => { if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) { diff --git a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/components/BidPreliminarySummary.tsx b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/components/BidPreliminarySummary.tsx index 094464a..2992537 100644 --- a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/components/BidPreliminarySummary.tsx +++ b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/components/BidPreliminarySummary.tsx @@ -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 = (props) => { const [tableDataSource, setTableDataSource] = useState([]); //刷新参数 const [count, setCount] = useState(0); + const tableDataRef = useRef([]); + const isShowRef = useRef(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 = (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 = (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 = (props) => { ]; columns.forEach((ele: any) => { tcolumns[4].children.push({ - title: ele.supplierRegisterName, + title: ( + <> + {ele.supplierRegisterName} + {ele.macConflictStatus && } + + ), dataIndex: ele.supplierRegisterId, key: ele.supplierRegisterId, render: (value: any, record: any, index: any) => { @@ -261,6 +277,7 @@ const BidPreliminarySummary: React.FC = (props) => { return readOnly ? value.remarks : (!value.judgesResult ?