From d65b3b5f53c8762295ce216ce7a3e357b350215e Mon Sep 17 00:00:00 2001 From: yss <17921@qq.com> Date: Wed, 17 Aug 2022 15:54:23 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E9=A3=8E=E6=8E=A7=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E5=88=9D=E5=AE=A1=E6=B1=87=E6=80=BB=E3=80=81=E8=AF=A6=E5=AE=A1?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E8=BD=AF=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BidDetailedReviewLeader/index.tsx | 42 ++++++++++++++++++- .../BidDetailedReviewLeader/service.ts | 11 +++++ .../BidPreliminaryReviewLeader/index.tsx | 41 +++++++++++++++++- .../BidPreliminaryReviewLeader/service.ts | 11 +++++ 4 files changed, 101 insertions(+), 4 deletions(-) diff --git a/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/index.tsx b/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/index.tsx index 6abb6c1..4ad27f1 100644 --- a/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/index.tsx +++ b/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/index.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useRef, useState } from 'react'; import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload, Tooltip } from 'antd'; -import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl } from './service'; +import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl, beforeRiskControl } from './service'; import '@/assets/ld_style.less' import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed'; import { getExperts } from '../BidDetailedManager/service'; @@ -12,6 +12,7 @@ import { getProId, getProMethod, getRoomId, getSectionQuot, getSessionRoleData, import FileDown from '@/utils/Download'; import { getURLInformation, isEmpty } from '@/utils/CommonUtils'; import { btnAuthority } from '@/utils/authority'; +import RiskPreventionSoft from '@/utils/RiskPreventionSoft'; const { TabPane } = Tabs; const { Option } = Select; @@ -75,6 +76,11 @@ const Index: React.FC<{}> = () => { const proMethod = getProMethod();//获取采购方式 const [hightSorce, setHightSorce] = useState(''); // 自动报价最高分 + //风控弹窗 2022.8.17 zhoujianlong + const [riskVisible, setRiskVisible] = useState(false); + //风控数据 2022.8.17 zhoujianlong + const [riskData, setRiskData] = useState([]); + //获取数据的参数 const [findScoreRecordData, setFindScoreRecordData] = useState(); //所有人员详审表数据 @@ -1614,6 +1620,28 @@ const Index: React.FC<{}> = () => { }, [count]); +/** + * 风控中心校验 + * @param params + */ + const verificationRiskControl = () => { + let submitData = { + reviewStatus: '2', + reviewTurnId: getURLInformation("turnId"), + reviewType: '2', + } + beforeRiskControl(submitData).then(res => { + if (res?.code == 200) { + if (res?.data.length > 0) { + setRiskData(res?.data); + setRiskVisible(true); + } else { + submitClick(); + } + } + }) +} + return ( <> @@ -1720,7 +1748,7 @@ const Index: React.FC<{}> = () => { {reviewStatus == 2 || reviewStatus == 3 ? null : (
{tableDisplay == true ? ( - + ) : null}
@@ -1835,6 +1863,16 @@ const Index: React.FC<{}> = () => { modalVisible={checkVisible} values={checkData} /> + {/**风控组件 */} + {riskVisible && { + setRiskVisible(false); + setRiskData([]); + }} + onSubmit={() => submitClick()} + data={riskData} + />}
) diff --git a/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/service.ts b/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/service.ts index cedf51d..4179e64 100644 --- a/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/service.ts +++ b/src/pages/Evaluation/BidDetailed/BidDetailedReviewLeader/service.ts @@ -238,4 +238,15 @@ export function getOfferUrl(params: any) { method: 'GET', params: params, }); +} + +/** + * 提交前风险防控校验接口 + * @param data + */ + export function beforeRiskControl(data: any) { + return request("/api/biz-service-ebtp-rsms/v1/riskcenter/getRemindSummary", { + method: 'post', + data: data, + }); } \ No newline at end of file diff --git a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/index.tsx b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/index.tsx index 8cad81d..1597cb9 100644 --- a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/index.tsx +++ b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/index.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useRef } from 'react'; import { Button, Table, Tabs, Space, Progress, Radio, Modal, Menu, Checkbox, Pagination, Input, message, Upload, Spin, Form, Collapse } from 'antd'; -import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, getMemberInfo, getEval, getUnlock, isStatus, checkShowData, getFile, submitSummary, submQualified } from './service'; +import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, getMemberInfo, getEval, getUnlock, isStatus, checkShowData, getFile, submitSummary, submQualified, beforeRiskControl } from './service'; import '@/assets/ld_style.less' import BidPreliminarySpeed from './components/BidPreliminarySpeed'; import BidPreliminarySummary from './components/BidPreliminarySummary'; @@ -12,6 +12,7 @@ import { getURLInformation, isEmpty } from '@/utils/CommonUtils'; import ExtendUpload from '@/utils/ExtendUpload'; import { btnAuthority } from '@/utils/authority'; import MACAddressPrompt from '../../BidControl/BidControlManager/components/MACAddressPrompt'; +import RiskPreventionSoft from '@/utils/RiskPreventionSoft'; const { TabPane } = Tabs; const { SubMenu } = Menu; @@ -55,6 +56,10 @@ const Index: React.FC<{}> = () => { const [dateLength, setDateLength] = useState([]); // tab签长度 const [isModalVisible, setIsModalVisible] = useState(false); // 全局全部合格弹窗 const [submitLoading, setSubmitLoading] = useState(false); // 提交汇总loading + //风控弹窗 2022.8.17 zhoujianlong + const [riskVisible, setRiskVisible] = useState(false); + //风控数据 2022.8.17 zhoujianlong + const [riskData, setRiskData] = useState([]); //获取数据的参数 const [findScoreRecordData, setFindScoreRecordData] = useState(); @@ -879,6 +884,28 @@ const Index: React.FC<{}> = () => { }) }, [count]); +/** + * 风控中心校验 + * @param params + */ + const verificationRiskControl = () => { + let submitData = { + reviewStatus: '2', + reviewTurnId: getURLInformation("turnId"), + reviewType: '1', + } + beforeRiskControl(submitData).then(res => { + if (res?.code == 200) { + if (res?.data.length > 0) { + setRiskData(res?.data); + setRiskVisible(true); + } else { + finalSubmit(); + } + } + }) +} + return ( <> @@ -905,7 +932,7 @@ const Index: React.FC<{}> = () => { {reviewStatus == 2 || reviewStatus == 3 ? null : (
{tableDisplay == true ? ( - + ) : null}
@@ -1067,6 +1094,16 @@ const Index: React.FC<{}> = () => { makeQualified()} onCancel={() => setIsModalVisible(false)}>

此操作会删除原有数据,是否继续?

+ {/**风控组件 */} + {riskVisible && { + setRiskVisible(false); + setRiskData([]); + }} + onSubmit={() => finalSubmit()} + data={riskData} + />}
) diff --git a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/service.ts b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/service.ts index f06fa7f..012643c 100644 --- a/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/service.ts +++ b/src/pages/Evaluation/BidPreliminary/BidPreliminaryReviewLeader/service.ts @@ -188,4 +188,15 @@ export async function getFile(id: any) { // 查找是否有应答文件 return request('/api/biz-service-ebtp-rsms/v1/review/config/detail/doc/list?detailId='+id, { method: 'get', }); +} + +/** + * 提交前风险防控校验接口 + * @param data + */ + export function beforeRiskControl(data: any) { + return request("/api/biz-service-ebtp-rsms/v1/riskcenter/getRemindEarlySummary", { + method: 'post', + data: data, + }); } \ No newline at end of file From 48bf23aa87011f6d20d3f312203371e4a4bb2d8f Mon Sep 17 00:00:00 2001 From: yss <17921@qq.com> Date: Wed, 24 Aug 2022 10:45:30 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=8D=95=E4=B8=80=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=E5=B0=91=E4=B8=89=E5=A4=A9=E5=A1=AB=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/BiddingInvitation.tsx | 66 ++++++++- .../components/BiddingInvitationList.tsx | 62 +++++++++ .../components/ReasonMemo.tsx | 129 ++++++++++++++++++ src/pages/Bid/BiddingAnnouncement/service.ts | 9 ++ 4 files changed, 264 insertions(+), 2 deletions(-) create mode 100644 src/pages/Bid/BiddingAnnouncement/components/ReasonMemo.tsx diff --git a/src/pages/Bid/BiddingAnnouncement/components/BiddingInvitation.tsx b/src/pages/Bid/BiddingAnnouncement/components/BiddingInvitation.tsx index 785150a..009b629 100644 --- a/src/pages/Bid/BiddingAnnouncement/components/BiddingInvitation.tsx +++ b/src/pages/Bid/BiddingAnnouncement/components/BiddingInvitation.tsx @@ -13,6 +13,7 @@ import { Radio, Row, Spin, Tabs, + Typography, Upload } from "antd" import '@/assets/ld_style.less' @@ -46,6 +47,7 @@ import BraftText from "@/components/richText/wang" import RiskPrevention from "@/utils/RiskPrevention" import Dating from '@/images/招标公告/dating.jpg'; import './style.less'; +import TextArea from "antd/lib/input/TextArea" interface BiddingInvitation { type: string; @@ -104,6 +106,11 @@ const BiddingInvitation: React.FC = (props) => { const [riskVisible, setRiskVisible] = useState(false);//风控弹窗 2021.9.7 zhoujianlong const [riskData, setRiskData] = useState([]);//风控数据 2021.9.7 zhoujianlong const WebofficeRef = useRef(null); + const [memoVisible, setMemoVisible] = useState(false);//说明弹窗 + /*weboffic end*/ + const [UploadMemoID, setUploadMemoID] = useState("empty"); //upload 业务id + + const { Text } = Typography; const onRef = (ref) => { /* this.child= ref;*/ } @@ -182,6 +189,7 @@ const BiddingInvitation: React.FC = (props) => { setDocSaveBtn("compact"); setDocBtnName("新建"); setSping(false); + setUploadMemoID(""); } }); } else if (type == "edit") {//==========================================================编辑 @@ -211,6 +219,7 @@ const BiddingInvitation: React.FC = (props) => { "openhallId": data.openhallId, "annoTitle": data.annoTitle, "sectionIds": defPak, + "reasonMemo": data.reasonMemo, }); echoSet(data.contentWithStyle); setUploadID(data.attDatasetId); @@ -220,6 +229,7 @@ const BiddingInvitation: React.FC = (props) => { setDocReadOnly("false"); setDocSaveBtn("compact"); setDocBtnName("编辑"); + setUploadMemoID(data.reasonMemoAttrId); } }); @@ -256,6 +266,7 @@ const BiddingInvitation: React.FC = (props) => { setDocReadOnly("ture"); setDocSaveBtn("none"); setDocBtnName("查看"); + setUploadMemoID(data.reasonMemoAttrId); } }); } @@ -318,7 +329,15 @@ const BiddingInvitation: React.FC = (props) => { } else if (TpPackageName == "谈判") { if (form.getFieldValue("docStartTime") < moment().startOf('day')) { message.warn('采购文件获取开始时间需晚于当前时间'); - } else if (moment(form.getFieldValue("docEndTime")).startOf('day').diff(moment(form.getFieldValue("docStartTime")).startOf('day'), "days") < 3) { + } else if (proDict == "procurement_mode_6" && moment(form.getFieldValue("docEndTime")).startOf('day').diff(moment(form.getFieldValue("docStartTime")).startOf('day'), "days") < 1) { + message.warn('采购文件获取截止时间需与采购文件获取开始时间间隔不少于1天'); + } else if (proDict == "procurement_mode_6" && moment(form.getFieldValue("docEndTime")).startOf('day').diff(moment(form.getFieldValue("docStartTime")).startOf('day'), "days") < 3) { + if(form.getFieldValue("reasonMemo") !== null && form.getFieldValue("reasonMemo") !== undefined){ + msg = "true" + }else{ + setMemoVisible(true); + } + } else if (moment(form.getFieldValue("docEndTime")).startOf('day').diff(moment(form.getFieldValue("docStartTime")).startOf('day'), "days") < 3) { message.warn('采购文件获取截止时间需与采购文件获取开始时间间隔不少于3天'); } else if (form.getFieldValue("replyEndTime").format('YYYY-MM-DD HH:mm:ss') < form.getFieldValue("docEndTime").format('YYYY-MM-DD HH:mm:ss')) { message.warn('应答截止时间需晚于或等于采购文件获取截止时间'); @@ -442,9 +461,12 @@ const BiddingInvitation: React.FC = (props) => { // "contentHtmlId": WebofficeRef.current!.HTMLfileCode,//html id "sections": packageMsg, "medias": "9", - "roomType": "2" + "roomType": "2", + "reasonMemoAttrId": form.getFieldValue("reasonMemoAttrId"), + "reasonMemo": form.getFieldValue("reasonMemo") } creatNotice(type, fromData).then(res => { + // creatNotice(type, fromData).then(res => { if (res?.code == 4004 && res?.success == false) { //2021.9.7 zhoujianlong 新增和修改邀请函增加风控 const data = res?.data?.result == undefined ? [] : res?.data?.result setRiskData(data) @@ -828,6 +850,45 @@ const BiddingInvitation: React.FC = (props) => { */} + { + setMemoVisible(false) + }} + onOk={() => {setMemoVisible(false);onFinshInvitation();}} + footer={[ + , + , + ]} + centered + > + + 提示:当前采购文件获取截止时间与采购文件获取开始时间间隔少于3天,请填写原因说明! + +