From 301648bee5ae8bf0066a2526345c2246f2317ea3 Mon Sep 17 00:00:00 2001 From: jl-zhoujl2 Date: Sat, 6 May 2023 16:42:17 +0800 Subject: [PATCH] =?UTF-8?q?5.6=20=E4=BE=9B=E5=BA=94=E5=95=86=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=97=B6=E9=97=B4=E9=A3=8E=E9=99=A9=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/BidDocSmartCheckFormModal.tsx | 86 +++--- .../components/CollapsePanel.tsx | 22 ++ .../components/EstablishTimeWarning.tsx | 52 ++++ .../components/ViewBlacklistFormModal.tsx | 83 +++--- .../components/ViewEvalFormModal.tsx | 189 ++++++------ .../components/ViewInvoiceFormModal.tsx | 16 +- .../ViewJuryScoringAnalysisFormModal.tsx | 107 +++---- .../ViewJuryScoringRemindFormModal.tsx | 275 +++++++++--------- .../components/ViewQuoteWarningFormModal.tsx | 161 +++++----- .../components/ViewReviewResultFormModal.tsx | 244 ++++++++-------- .../components/ViewRishFormModal.tsx | 127 ++++---- .../components/ViewRiskSupplierModal.tsx | 20 +- .../BidControlManager/components/ZhiQiCha.tsx | 13 +- .../BidControl/BidControlManager/index.tsx | 186 ++---------- .../BidControl/BidControlManager/service.ts | 10 + .../Evaluation/BidControl/Jury/index.tsx | 112 +------ .../BiddingDocumentsDecrypt/index.tsx | 18 +- src/pages/Tender/BiddingResponse/index.tsx | 19 +- .../Tender/BiddingResponse/TableLook.tsx | 20 +- 19 files changed, 781 insertions(+), 979 deletions(-) create mode 100644 src/pages/Evaluation/BidControl/BidControlManager/components/CollapsePanel.tsx create mode 100644 src/pages/Evaluation/BidControl/BidControlManager/components/EstablishTimeWarning.tsx diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/BidDocSmartCheckFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/BidDocSmartCheckFormModal.tsx index b872537..938c248 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/BidDocSmartCheckFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/BidDocSmartCheckFormModal.tsx @@ -1,18 +1,14 @@ import React, { useEffect, useState } from 'react'; -import { Collapse, Table } from 'antd'; +import { Table } from 'antd'; import { getBidDocSmartCheckList } from '../service'; import { getRoomId, getSessionRoleData } from '@/utils/session'; +import CollapsePanel from './CollapsePanel'; +import { isNotEmpty } from '@/utils/CommonUtils'; -interface BidDocSmartCheckFormModalProps { - modalVisible: boolean; - values: any; - onCancel: any; -} - -const BidDocSmartCheckFormModal: React.FC = (props) => { +const BidDocSmartCheckFormModal: React.FC<{}> = () => { const [bidDocSmartCheckList, setBidDocSmartCheckList] = useState([]); - + const [showWarning, setShowWarning] = useState(false); //查看详情窗口record const [juryTableShow, setJuryTableShow] = useState(true); @@ -30,9 +26,6 @@ const BidDocSmartCheckFormModal: React.FC = (pro } }, []) - function callback(key: any) { - //getSessionUserData.roleIds; - } function visibleValue(key: any) { if (key) { return ; @@ -61,25 +54,35 @@ const BidDocSmartCheckFormModal: React.FC = (pro 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); - }}, + { + 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 ret = { "code": 200, "success": true, "message": "success", "data": [] } const getWarningList = async () => { let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') @@ -87,9 +90,10 @@ const BidDocSmartCheckFormModal: React.FC = (pro await getBidDocSmartCheckList(roomId).then((res) => { if (res.success == true) { setCheckLegalAndNameResult(res?.data?.isCheckLegalAndName); - if(res?.data?.isCheckOpen){ + if (res?.data?.isCheckOpen) { setJuryTableShow(true); - setBidDocSmartCheckList(res.data?.checkResults) + setBidDocSmartCheckList(res.data?.checkResults); + setShowWarning(isNotEmpty(res.data?.checkResults) ? res.data?.checkResults.findIndex((item: { macIPCheck: any; ensureStatus: any; }) => (item.macIPCheck || item.ensureStatus)) != -1 : false) } } else { setBidDocSmartCheckList(ret.data); @@ -100,19 +104,17 @@ const BidDocSmartCheckFormModal: React.FC = (pro return ( <> {juryTableShow ? - - - {注:"√"为审查项智能审查通过,"×"为审查项智能审查存在风险} - { -
+ + {注:"√"为审查项智能审查通过,"×"为审查项智能审查存在风险} + { +
- } -
-
+ } + : null} ); diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/CollapsePanel.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/CollapsePanel.tsx new file mode 100644 index 0000000..3e887a7 --- /dev/null +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/CollapsePanel.tsx @@ -0,0 +1,22 @@ +import React from "react"; +import { Collapse, CollapsePanelProps, Tooltip } from "antd"; +import { AlertOutlined } from "@ant-design/icons"; +/** + * 公共折叠面板-风险点展示用 + * @param props + * @returns + */ +const CollapsePanel: React.FC = (props) => { + const { showWarning = false, header } = props; + const warningHeader = ( + {header} + ) + return ( + + + {props.children} + + + ) +} +export default CollapsePanel; \ No newline at end of file diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/EstablishTimeWarning.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/EstablishTimeWarning.tsx new file mode 100644 index 0000000..583de9e --- /dev/null +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/EstablishTimeWarning.tsx @@ -0,0 +1,52 @@ +import React, { useEffect, useState } from 'react'; +import { Empty, Table } from 'antd'; +import { supplierTimeWarning } from '../service'; +import { getRoomId } from '@/utils/session'; +import CollapsePanel from './CollapsePanel'; +/** + * 供应商成立时间预警 + * @returns + */ +const EstablishTimeWarning: React.FC<{}> = () => { + const [list, setList] = useState([]); + + useEffect(() => { + getWarningList(); + }, []) + + const columns = [ + { title: '序号', dataIndex: 'num', width: 60, render: (text: any, record: any, index: any) => `${index + 1}` }, + { title: '供应商名称', dataIndex: 'companyName', }, + { title: '成立日期', dataIndex: 'foundTime', }, + ]; + + const getWarningList = async () => { + let roomId = getRoomId(); + + //供应商成立时间预警 + await supplierTimeWarning(roomId).then((res) => { + if (res.success == true) { + setList(res.data) + } + }) + } + + return ( + <> + 0}> + {list.length == 0 ? : ( + <> + 以下供应商的成立日期距评标时间间隔不足一年,请结合招标文件/采购文件的投标人资格要求,仔细核对供应商应当具备的企业资质。 +
+ + )} +
+ + ); +}; + +export default EstablishTimeWarning; diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewBlacklistFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewBlacklistFormModal.tsx index 05d3c99..76bc0ba 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewBlacklistFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewBlacklistFormModal.tsx @@ -1,23 +1,17 @@ import React, { useEffect, useState } from 'react'; -import { Tabs, Collapse, Form, Input, Modal, Col, Row, Divider, Table, Button } from 'antd'; -import ProTable, { ProColumns } from "@ant-design/pro-table"; -import ExtendUpload from "@/utils/ExtendUpload"; +import { Table, Button } from 'antd'; import { getBlackList } from '../service'; -import { isEmpty } from '@/utils/CommonUtils' -import { getRoomId, getSessionProjectData, getSessionRoleData, getSessionUserData } from '@/utils/session'; +import { getRoomId, getSessionProjectData, getSessionRoleData } from '@/utils/session'; import ViewInvoiceFormModal from './ViewInvoiceFormModal'; - -interface ViewBlacklistFormModalProps { - modalVisible: boolean; - values: any; - onCancel: any; -} +import CollapsePanel from './CollapsePanel'; +import { isNotEmpty } from '@/utils/CommonUtils'; const ret = { "code": 200, "success": true, "message": "success", "data": [{ "providerCode": "00100066991", "provinceName": "供应商1", "isBlack": "1", "ouName": null, "startTime": "2020-01-01", "endTime": "2022-01-01", "term": "2年", "oldList": [{ "id": "1", "providerCode": "00100066991", "provinceName": "供应商1", "ou": "JL", "ouName": "吉林", "startTime": "2020-01-01", "endTime": "2022-01-01", "term": "2年", "reserved1": "", "reserved2": "", "reserved3": "", "reserved4": "", "reserved5": "", "reserved6": "", "reserved7": "", "reserved8": "", "reserved9": "", "reserved10": "", "version": null, "isDel": 0, "isEnable": 0, "createBy": null, "createDate": null, "updateBy": null, "updateDate": null, "lastUpdateTime": null, "deleteFlag": "normal", "versions": null, "tenantId": null, "tenantName": null, "providerCodes": null }] }, { "providerCode": "00100066992", "provinceName": "供应商2", "isBlack": "0", "ouName": null, "startTime": null, "endTime": null, "term": null, "oldList": [] }, { "providerCode": "00100067003", "provinceName": "供应商3", "isBlack": "0", "ouName": null, "startTime": null, "endTime": null, "term": null, "oldList": [] }] } -const ViewBlacklistFormModal: React.FC = (props) => { +const ViewBlacklistFormModal: React.FC<{}> = () => { - const [quoteWarningList, setQuoteWarningList] = useState([]); + const [quoteWarningList, setQuoteWarningList] = useState([]); + const [showWarning, setShowWarning] = useState(false); //查看详情窗口显示 const [viewInvoiceFormVisible, setViewInvoiceFormVisible] = useState(false); @@ -35,10 +29,6 @@ const ViewBlacklistFormModal: React.FC = (props) => } }, []) - function callback(key: any) { - //getSessionUserData.roleIds; - } - //黑名单历史 const blacklistViewDetail = (data: any) => { setViewInvoiceFormVisible(true); @@ -56,11 +46,11 @@ const ViewBlacklistFormModal: React.FC = (props) => return name; } - const companyBlacklistColumns: ProColumns[] = [ + const companyBlacklistColumns: any[] = [ { title: '序号', dataIndex: 'num', width: 60, render: (text: any, record: any, index: any) => `${index + 1}` }, { title: '供应商名称', dataIndex: 'provinceName', }, { - title: '是否被列入黑名单', dataIndex: 'isBlack', render: (_, record) => { + title: '是否被列入黑名单', dataIndex: 'isBlack', render: (_: any, record: { isBlack: any; } | null) => { let a = ""; if (record !== null) { a = isBlackValue(record.isBlack); @@ -73,7 +63,7 @@ const ViewBlacklistFormModal: React.FC = (props) => { title: '黑名单结束时间', dataIndex: 'endTime', }, { title: '黑名单期限', dataIndex: 'term', }, { - title: '历史黑名单记录', dataIndex: 'hmdjl', render: (_, record) => { + title: '历史黑名单记录', dataIndex: 'hmdjl', render: (_: any, record: { isBlack: string; oldList: any; }) => { return ( <> {record.isBlack === "1" ? @@ -88,14 +78,13 @@ const ViewBlacklistFormModal: React.FC = (props) => const getWarningList = async () => { let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') let projectId = getSessionProjectData().id; - let sf = ""; - let a = []; //setQuoteWarningList(dataSource3) //黑名单 await getBlackList(projectId, roomId).then((res) => { if (res.success == true) { - setQuoteWarningList(res.data) + setQuoteWarningList(res.data); + setShowWarning(isNotEmpty(res.data) ? res.data.findIndex((item: { isBlack: string; }) => (item.isBlack == "1")) != -1 : false); } else { setQuoteWarningList(ret.data); setFeginState(true); @@ -106,34 +95,32 @@ const ViewBlacklistFormModal: React.FC = (props) => return ( <> {juryTableShow ? - - - {feginState ? 供应商黑名单接口不通,显示假数据 : null} - { - -
- - } -
+ + {feginState ? 供应商黑名单接口不通,显示假数据 : null} { - viewInvoiceValues ? ( - { - setViewInvoiceFormVisible(!viewInvoiceFormVisible); - setViewInvoiceValues({}); - }} - > - - ) : null + +
+ } -
+ : null} + { + viewInvoiceValues ? ( + { + setViewInvoiceFormVisible(!viewInvoiceFormVisible); + setViewInvoiceValues({}); + }} + > + + ) : null + } ); }; diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewEvalFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewEvalFormModal.tsx index 7c5a6ca..e39058c 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewEvalFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewEvalFormModal.tsx @@ -1,36 +1,31 @@ -import React, { useEffect,useState } from 'react'; -import { Tabs,Collapse,Form, Input, Modal,Col,Row,Divider, Table, Button, Empty ,message} from 'antd'; -import { getEvalRoomByAssessId, getEvalRoomPage, saveUpdateEvalRoom} from '../service'; -import {} from '@/utils/CommonUtils' -import ProTable, { ProColumns } from "@ant-design/pro-table"; -import { getProMethod, getRoomId, getSessionRoleData } from '@/utils/session'; +import React, { useEffect, useState } from 'react'; +import { Table, message } from 'antd'; +import { getEvalRoomByAssessId, getEvalRoomPage } from '../service'; +import { } from '@/utils/CommonUtils' +import { getRoomId } from '@/utils/session'; import ViewEvalAlarmUpdateModal from './ViewEvalAlarmUpdateModal'; +import CollapsePanel from './CollapsePanel'; -interface ViewEvalFormModalProps { - modalVisible: boolean; - values: any; - onCancel:any; -} interface alarmData { - tilte:string;//标题 - id:string;//告警id - reserveId:string;//预约id - tpName:string;//项目名称 - tpNumber:string;//项目编号 - bsName:string;//标段名称 - placeName:string; //评标室名称 - startDate:string; //开始时间 - endDate:string; //结束时间 - status:string;//处理状态:0未处理;1已处理', - roomStatus:string;//评标室状态 0-未开启 1-进行中 2-已结束 - pNumber:string;//人数信息 - remark:string;//处理说明 - attachment:string;//附件id + tilte: string;//标题 + id: string;//告警id + reserveId: string;//预约id + tpName: string;//项目名称 + tpNumber: string;//项目编号 + bsName: string;//标段名称 + placeName: string; //评标室名称 + startDate: string; //开始时间 + endDate: string; //结束时间 + status: string;//处理状态:0未处理;1已处理', + roomStatus: string;//评标室状态 0-未开启 1-进行中 2-已结束 + pNumber: string;//人数信息 + remark: string;//处理说明 + attachment: string;//附件id } -const ViewEvalFormModal: React.FC = (props) => { +const ViewEvalFormModal: React.FC<{}> = () => { - const alarm:alarmData ={ + const alarm: alarmData = { tilte: "测试", id: '', reserveId: '', @@ -50,21 +45,18 @@ const ViewEvalFormModal: React.FC = (props) => { const [alarmData, setAlarmData] = useState(alarm); const [alarmList, setAlarmList] = useState([]); const [juryTableShow, setJuryTableShow] = useState(true);// - const [alarmNumber, setAlarmNumber] = useState({}); const [evalAlarmUpdateDetail, setEvalAlarmUpdateDetail] = useState(false); const [isLookType, setIsLookType] = useState(false); - var roleId = getSessionRoleData().roleCode; - let roomId=getRoomId();//getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') - + let roomId = getRoomId();//getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') + useEffect(() => { // if(roleId==="ebtp-expert"){ // setJuryTableShow(false); // } - setAlarmNumber("0"); getReserveIdFunction(); - },[]) + }, []) - const columns: any[] =[ + const columns: any[] = [ { title: '序号', dataIndex: 'num', width: 60, render: (text: any, record: any, index: any) => `${index + 1}` }, { title: '告警设备类型', @@ -73,13 +65,13 @@ const ViewEvalFormModal: React.FC = (props) => { let a; if (record.deviceType === "door") { a = "门禁点"; - }else if(record.deviceType === "camera"){ + } else if (record.deviceType === "camera") { a = "监控点"; - }else if(record.deviceType === "nvr"){ + } else if (record.deviceType === "nvr") { a = "nvr"; - }else if(record.deviceType === "encodeDevice"){ + } else if (record.deviceType === "encodeDevice") { a = "编码设备"; - }else if(record.deviceType === "oneMachine"){ + } else if (record.deviceType === "oneMachine") { a = "一体机"; } return a; @@ -91,7 +83,7 @@ const ViewEvalFormModal: React.FC = (props) => { title: '告警信息', dataIndex: 'type', render: (_: any, record: any) => { - + return getTypeValue(record.type); } }, { @@ -100,8 +92,8 @@ const ViewEvalFormModal: React.FC = (props) => { render: (_: any, record: any) => { let a; if (record.status === "0") { - a =

{"未处理"}

; - }else if(record.status === "1"){ + a =

{"未处理"}

; + } else if (record.status === "1") { a = "已处理"; } return a; @@ -111,45 +103,45 @@ const ViewEvalFormModal: React.FC = (props) => { title: '操作', dataIndex: 'operation', render: (_: any, record: any) => { - return <> + return <> - {record.status === "0"? toUpdate(record)} > + {record.status === "0" ? toUpdate(record)} > 去处理 - : toLook(record)} > + : toLook(record)} > 查看 } - + }, }, ] - function getTypeValue(key:any){ + function getTypeValue(key: any) { let val = ""; if (key === "2") { val = "人员数量异常"; - }else if(key === "3"){ + } else if (key === "3") { val = "陌生人告警"; - }else{ + } else { val = key; } return val; - } + } const getDate = (record: any) => { - alarm.tilte=getTypeValue(record.type); - alarm.tpName=record.projectName; - alarm.tpNumber=record.projectNum; - alarm.bsName=record.sectionName; - alarm.id=record.id; - alarm.reserveId=record.reserveId; - alarm.placeName=record.areaName; - alarm.startDate=record.startDate; - alarm.endDate=record.endDate; - alarm.pNumber=record.pnumber; - alarm.status=record.status; - alarm.roomStatus=record.roomStatus; - alarm.remark=record.remark; - alarm.attachment=record.attachment; + alarm.tilte = getTypeValue(record.type); + alarm.tpName = record.projectName; + alarm.tpNumber = record.projectNum; + alarm.bsName = record.sectionName; + alarm.id = record.id; + alarm.reserveId = record.reserveId; + alarm.placeName = record.areaName; + alarm.startDate = record.startDate; + alarm.endDate = record.endDate; + alarm.pNumber = record.pnumber; + alarm.status = record.status; + alarm.roomStatus = record.roomStatus; + alarm.remark = record.remark; + alarm.attachment = record.attachment; setAlarmData(alarm); } @@ -165,12 +157,12 @@ const ViewEvalFormModal: React.FC = (props) => { getDate(record); setEvalAlarmUpdateDetail(true) } - - + + const getReserveIdFunction = async () => { await getEvalRoomByAssessId(roomId).then((res) => { - if (res.success == true&&res.data!=null&&res.data!="") { + if (res.success == true && res.data != null && res.data != "") { getEvalRoomPageFunction(res.data); } else { //message.error('获取评标室预约id失败:显示测试数据-uat专用') @@ -180,15 +172,15 @@ const ViewEvalFormModal: React.FC = (props) => { }) } - const getEvalRoomPageFunction = async (reserveId:any) => { - var params={}; - params["reserveId"]= reserveId; - params["types"]= [2,3]; - params["pageNo"]=1; - params["pageSize"]=999; + const getEvalRoomPageFunction = async (reserveId: any) => { + var params = {}; + params["reserveId"] = reserveId; + params["types"] = [2, 3]; + params["pageNo"] = 1; + params["pageSize"] = 999; await getEvalRoomPage(params).then((res) => { if (res.success == true) { - + setAlarmList(res.data.records); } else { message.error('系统异常:获取告警数据失败') @@ -196,37 +188,32 @@ const ViewEvalFormModal: React.FC = (props) => { }) } - function callback(key: any) { - } - return ( <> - {juryTableShow? - - - 0}> +
-
-
-
:null} - - {evalAlarmUpdateDetail ? ( - setEvalAlarmUpdateDetail(false)} - onOk={() => { - getReserveIdFunction(); - setEvalAlarmUpdateDetail(false); - }} - > - - ) : null - } + //pagination={false}//分页 + > + + : null} + + {evalAlarmUpdateDetail ? ( + setEvalAlarmUpdateDetail(false)} + onOk={() => { + getReserveIdFunction(); + setEvalAlarmUpdateDetail(false); + }} + > + + ) : null + } ); }; diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewInvoiceFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewInvoiceFormModal.tsx index 916669b..3ab764a 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewInvoiceFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewInvoiceFormModal.tsx @@ -1,10 +1,5 @@ -import React, { useEffect, useState } from 'react'; -import { Tabs, Collapse, Form, Input, Modal, Col, Row, Divider, Table } from 'antd'; -import ProTable from "@ant-design/pro-table"; -import ExtendUpload from "@/utils/ExtendUpload"; -import { isEmpty } from '@/utils/CommonUtils' - - +import React, { useEffect } from 'react'; +import { Modal, Table } from 'antd'; interface ViewInvoiceFormModalProps { modalVisible: boolean; values: any; @@ -13,13 +8,6 @@ interface ViewInvoiceFormModalProps { const ViewInvoiceFormModal: React.FC = (props) => { const { modalVisible, values, onCancel: handleUpdateModalVisible, } = props; - const [ListData, setListData] = useState([]); - - const layout = { - labelCol: { span: 8 }, - wrapperCol: { span: 16 }, - }; - useEffect(() => { }, []) diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx index d8c1b5c..96b9f6c 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringAnalysisFormModal.tsx @@ -1,19 +1,13 @@ import React, { useEffect, useState } from 'react'; -import { Tabs, Collapse, Form, Input, Modal, Col, Row, Divider, Table, message, Button, Empty } from 'antd'; -import ProTable, { ProColumns } from "@ant-design/pro-table"; -import { deviatedAnalysisListToRR, deviatedAnalysisRRYes, getDeviatedAnalysisList, getList } from '../service'; +import { Modal, Table, Button, Empty } from 'antd'; +import { ProColumns } from "@ant-design/pro-table"; +import { deviatedAnalysisListToRR, deviatedAnalysisRRYes, getDeviatedAnalysisList } from '../service'; import { getProMethod, getRoomId, getSessionRoleData, getSessionUserData } from '@/utils/session'; +import CollapsePanel from './CollapsePanel'; -interface ViewJuryScoringAnalysisFormModalProps { - modalVisible: boolean; - values: any; - onCancel: any; -} +const ViewJuryScoringAnalysisFormModal: React.FC<{}> = () => { - -const ViewJuryScoringAnalysisFormModal: React.FC = (props) => { - - const [juryScoringAnalysisList, setJuryScoringAnalysisList] = useState([]); + const [juryScoringAnalysisList, setJuryScoringAnalysisList] = useState([]); const [juryYesList, setJuryYesList] = useState([]); const [juryYesVis, setJuryYesVisSet] = useState(false);//专家确认页面 const [juryTableShow, setJuryTableShow] = useState(false);// @@ -41,11 +35,6 @@ const ViewJuryScoringAnalysisFormModal: React.FC[] = [ + const juryColumns: any[] = [ { title: '序号', render: (text: any, record: any, index: any) => `${index + 1}` }, { title: '专家名称', dataIndex: "memberName" }, { title: '确认时间', dataIndex: "updateDate" } @@ -76,15 +65,15 @@ const ViewJuryScoringAnalysisFormModal: React.FC { - const tbpldzt = { title: item.name, dataIndex: 'title', key: 'title', children: [] }; + const tbpldzt = { title: item.name, dataIndex: 'title', key: 'title', children: [{}] }; item.categoryList.map((dfpld: any, index: any) => { let value = categoryValue(dfpld); tbpldzt.children.push({ title: value, dataIndex: dfpld + item.userId, key: dfpld + item.userId, render: (text: any, record: any, index: any) => { - let a = ""; + let a = <>; if (text > -10 && text < 10) { a =

{text}

} else if (text > -30 && text < 30) { @@ -110,11 +99,11 @@ const ViewJuryScoringAnalysisFormModal: React.FC { const obj = { - children: '', - props: {}, + children: <>, + props: { rowSpan: 1 }, }; if (index === 0) { - let a = ""; + let a = <>; if (!buttonStatus) { a = } else if (buttonStatus) { @@ -124,7 +113,7 @@ const ViewJuryScoringAnalysisFormModal: React.FC { deviatedRRYes(confirmList[0].id, 1); }}>确认 } else { - a = "已确认"; + a = 已确认; } } @@ -233,41 +222,39 @@ const ViewJuryScoringAnalysisFormModal: React.FC {juryTableShow ? - - - {juryScoringAnalysisList?.length == 0 - ? - : (proDict == "procurement_mode_5" || proDict == "procurement_mode_6") ? juryScoringAnalysisList?.map((item: any, index: any) => { - if (item.zjShow) { - return ( - - -

{item.turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

-
-
-
- ); - } - }) : ( - <> -

{juryScoringAnalysisList[0].turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

-
- - ) - } - {selectjuryYes()} -
-
+ 0}> + {juryScoringAnalysisList?.length == 0 + ? + : (proDict == "procurement_mode_5" || proDict == "procurement_mode_6") ? juryScoringAnalysisList?.map((item: any, index: any) => { + if (item.zjShow) { + return ( + +

{item.turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

+
+
+ ); + } else { + return <> + } + }) : ( + <> +

{juryScoringAnalysisList[0].turnName}表格主要展示各专家对{name1}打分与所有专家对该{name1}打分平均值的差值百分比,无-表示该专家未参与此部分评分,该表信息仅供参考

+
+ + ) + } + {selectjuryYes()} +
: null} ); diff --git a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringRemindFormModal.tsx b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringRemindFormModal.tsx index 25ef285..4717307 100644 --- a/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringRemindFormModal.tsx +++ b/src/pages/Evaluation/BidControl/BidControlManager/components/ViewJuryScoringRemindFormModal.tsx @@ -1,30 +1,24 @@ -import React, { useEffect,useState } from 'react'; -import { Tabs,Collapse,Form, Input, Modal,Col,Row,Divider, Table, Button, Empty } from 'antd'; -import ProTable, { ProColumns } from "@ant-design/pro-table"; +import React, { useEffect, useState } from 'react'; +import { Form, Input, Modal, Table, Button, Empty } from 'antd'; import ExtendUpload from "@/utils/ExtendUpload"; -import { deviatedWarnListJuryYes, deviatedWarnListToRR, getDeviatedWarnList, getDeviatedWarnListByJury, getList} from '../service'; -import {} from '@/utils/CommonUtils' -import { getProMethod, getRoomId, getSessionRoleData, getSessionUserData } from '@/utils/session'; +import { deviatedWarnListJuryYes, deviatedWarnListToRR, getDeviatedWarnList, getDeviatedWarnListByJury } from '../service'; +import { } from '@/utils/CommonUtils' +import { getProMethod, getRoomId, getSessionRoleData } from '@/utils/session'; import TextArea from 'antd/lib/input/TextArea'; - -interface ViewJuryScoringRemindFormModalProps { - modalVisible: boolean; - values: any; - onCancel:any; -} +import CollapsePanel from './CollapsePanel'; const layout = { labelCol: { span: 7 }, wrapperCol: { span: 12 }, }; -const ViewJuryScoringRemindFormModal: React.FC = (props) => { +const ViewJuryScoringRemindFormModal: React.FC<{}> = (props) => { const [form] = Form.useForm(); - const [deviatedWarnList, setDeviatedWarnList] = useState([]); + const [deviatedWarnList, setDeviatedWarnList] = useState([]); const [juryYesVis, setJuryYesVisSet] = useState(false);//专家确认页面 //附件bid const [bid, setBid] = useState(''); const [whetherReadonly, setWhetherReadonly] = useState(false); const [juryTableShow, setJuryTableShow] = useState(true);//专家无数据时不显示该条 - let roomId=getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') + let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId') var roleId = getSessionRoleData().roleCode;//操作员角色 let name1 = "投标人"; @@ -34,98 +28,97 @@ const ViewJuryScoringRemindFormModal: React.FC { getWarningList(); - if(roleId==="ebtp-expert"){ + if (roleId === "ebtp-expert") { setJuryTableShow(false); } - },[]) + }, []) - function callback(key: any) { - //getSessionUserData.roleIds; - } - - const juryScoringRemindColumns: ProColumns[] = [ - { title: '序号', dataIndex: 'num', render: (text: any, record: any, index: any) => `${index + 1}`}, + const juryScoringRemindColumns: any[] = [ + { title: '序号', dataIndex: 'num', render: (text: any, record: any, index: any) => `${index + 1}` }, { title: '专家姓名', dataIndex: 'name', }, { title: name1, dataIndex: 'supplierRegisterName', }, { title: '打分偏离部分', dataIndex: 'categoryName', }, - { title: '偏离度', dataIndex: 'deviatedNumber',render: (text: any, record: any, index: any)=>{ - let a = ""; - if(text>-30&&text<30){ - a =

{text}

- }else if(text>-50&&text<50){ - a =

{text}

- }else if(text<=-50||text>=50){ - a =

{text}

- }else{ - a = text; + { + title: '偏离度', dataIndex: 'deviatedNumber', render: (text: any, record: any, index: any) => { + let a = <>; + if (text > -30 && text < 30) { + a =

{text}

+ } else if (text > -50 && text < 50) { + a =

{text}

+ } else if (text <= -50 || text >= 50) { + a =

{text}

+ } else { + a = text; + } + return a; } - return a; - } }, + }, { title: '打分提交时间', dataIndex: 'warnSubmitDate', }, { title: '提醒生成时间', dataIndex: 'warnCreateDate', }, { title: '提醒专家时间', dataIndex: 'warnNoticeDate', }, { title: '专家回复时间', dataIndex: 'warnReplyDate', }, - { title: '查看说明',render: (_, record) => { - let r: any = ""; - if(roleId==="ebtp-agency-project-manager"||roleId==="ebtp-purchase"){ - if(record.warnNoticeStatus==="1") { - if(record.warnReplyStatus==="1") { - r = + { + title: '查看说明', render: (_: any, record: { warnNoticeStatus: string; warnReplyStatus: string; id: any; fileId: string; remarks: any; }) => { + let r: any = ""; + if (roleId === "ebtp-agency-project-manager" || roleId === "ebtp-purchase") { + if (record.warnNoticeStatus === "1") { + if (record.warnReplyStatus === "1") { + r = + } else { + r = "等待专家回复" + } } else { - r = "等待专家回复" + r = } - } else { - r = - } - }else if(roleId==="ebtp-expert"){ - if(record.warnNoticeStatus==="1") { - if(record.warnReplyStatus==="1") { - r = "已确认" - } else { - r = + } else if (roleId === "ebtp-expert") { + if (record.warnNoticeStatus === "1") { + if (record.warnReplyStatus === "1") { + r = "已确认" + } else { + r = + } } } + return r; } - return r; - } - }, + }, ]; - const getWarningList = async() => { - + const getWarningList = async () => { + //专家打分偏离度提醒 - if(roleId==="ebtp-agency-project-manager"||roleId==="ebtp-purchase"){ + if (roleId === "ebtp-agency-project-manager" || roleId === "ebtp-purchase") { await getDeviatedWarnList(roomId).then((res) => { - if (res.success ==true) { + if (res.success == true) { setDeviatedWarnList(res.data) } }) - }else if(roleId==="ebtp-expert"){ + } else if (roleId === "ebtp-expert") { await getDeviatedWarnListByJury(roomId).then((res) => { var list2 = []; - if (res.success ==true) { + if (res.success == true) { var list = res.data; var j = 0; - for(var i = 0 ; i < list.length;i++){ + for (var i = 0; i < list.length; i++) { var obj = list[i].list[0]; - if(obj!==null&&obj!==undefined&&obj.warnNoticeStatus!==0){ + if (obj !== null && obj !== undefined && obj.warnNoticeStatus !== 0) { list2[j] = list[i]; - j+=1; + j += 1; } } - setJuryTableShow(list2!=null&&list2.length>0); + setJuryTableShow(list2 != null && list2.length > 0); setDeviatedWarnList(list2) } }) } } - const toRr = async(id: any) => {//专家打分偏离度提醒 + const toRr = async (id: any) => {//专家打分偏离度提醒 await deviatedWarnListToRR(id).then((res) => { - if (res.success ==true) { + if (res.success == true) { getWarningList() } }) @@ -133,11 +126,11 @@ const ViewJuryScoringRemindFormModal: React.FC {//返回成员modal foot return ( <> - {roleId==="ebtp-agency-project-manager"||roleId==="ebtp-purchase"? - - : - } - + {roleId === "ebtp-agency-project-manager" || roleId === "ebtp-purchase" ? + + : + } + ) } @@ -145,104 +138,100 @@ const ViewJuryScoringRemindFormModal: React.FC { const fieldsValue = await form.validateFields(); var params = { - "id":fieldsValue.id, - "fileId":fieldsValue.fileId, - "remarks":fieldsValue.remarks + "id": fieldsValue.id, + "fileId": fieldsValue.fileId, + "remarks": fieldsValue.remarks } - + await deviatedWarnListJuryYes(params).then((res) => { - if (res.success ==true) { + if (res.success == true) { setJuryYesVisSet(false); getWarningList() } }) } - const juryYesShow = (id: any,fileId: string | undefined,remarks: any) => { + const juryYesShow = (id: any, fileId: string, remarks: any) => { form.setFieldsValue({ id: id, fileId: fileId, remarks: remarks }); - - if(roleId==="ebtp-agency-project-manager"||roleId==="ebtp-purchase"){ + + if (roleId === "ebtp-agency-project-manager" || roleId === "ebtp-purchase") { setWhetherReadonly(true); } - + setBid(fileId); setJuryYesVisSet(true); } //专家确认 const juryYesModal = () => { - return ( - <> - setJuryYesVisSet(false)} - footer={selectjuryYesButton()} - > -
- - -