diff --git a/package.json b/package.json index 80c5bc5..f0fac4b 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,14 @@ "private": true, "description": "An out-of-box UI solution for enterprise applications", "scripts": { - "start-dev": "cross-env UMI_UI=none UMI_ENV=dev LOGIN_PATH=login umi dev --port=3000", - "start-UAT": "cross-env UMI_UI=none UMI_ENV=UAT LOGIN_PATH=login umi dev --port=3000", - "start-sim": "cross-env UMI_UI=none UMI_ENV=sim LOGIN_PATH=login umi dev --port=3000", - "start-prod": "cross-env UMI_UI=none UMI_ENV=prod LOGIN_PATH=prod/login umi dev --port=3000", - "build-dev": "cross-env UMI_ENV=dev LOGIN_PATH=login umi build", - "build-UAT": "cross-env UMI_ENV=UAT LOGIN_PATH=login umi build", - "build-sim": "cross-env UMI_ENV=sim LOGIN_PATH=login umi build", - "build-prod": "cross-env UMI_ENV=prod LOGIN_PATH=prod/login umi build", + "start-dev": "cross-env UMI_UI=none UMI_ENV=dev LOGIN_PATH=ebtp-frontend umi dev --port=3000", + "start-UAT": "cross-env UMI_UI=none UMI_ENV=UAT LOGIN_PATH=ebtp-frontend umi dev --port=3000", + "start-sim": "cross-env UMI_UI=none UMI_ENV=sim LOGIN_PATH=ebtp-frontend umi dev --port=3000", + "start-prod": "cross-env UMI_UI=none UMI_ENV=prod LOGIN_PATH=prod/ebtp-frontend umi dev --port=3000", + "build-dev": "cross-env UMI_ENV=dev LOGIN_PATH=ebtp-frontend umi build", + "build-UAT": "cross-env UMI_ENV=UAT LOGIN_PATH=ebtp-frontend umi build", + "build-sim": "cross-env UMI_ENV=sim LOGIN_PATH=ebtp-frontend umi build", + "build-prod": "cross-env UMI_ENV=prod LOGIN_PATH=prod/ebtp-frontend umi build", "analyze": "cross-env ANALYZE=1 umi build", "build": "umi build", "deploy": "npm run site && npm run gh-pages", diff --git a/src/layouts/BasicLayout.tsx b/src/layouts/BasicLayout.tsx index 78ab70c..544785f 100644 --- a/src/layouts/BasicLayout.tsx +++ b/src/layouts/BasicLayout.tsx @@ -12,7 +12,7 @@ import { ConnectState } from '@/models/connect'; import { getMatchMenu } from '@umijs/route-utils'; import { getMenu } from './services' import logo from '../assets/logo.svg'; -import { getSessionRoleData } from '@/utils/session'; +import { getSessionRoleData, getSessionUserData } from '@/utils/session'; import { HomeOutlined, @@ -140,6 +140,8 @@ const BasicLayout: React.FC = (props) => { const [menuData, setMenuData] = React.useState(); const [menuShow, setmenuShow] = React.useState(false); const menuDataRef = useRef([]); + const mall3_token: any = sessionStorage.getItem('Authorization');//当前登录token + const userData: any = getSessionUserData();//当前登录人信息 useEffect(() => { if (getSessionRoleData()?.roleId) { let params = { @@ -206,7 +208,9 @@ const BasicLayout: React.FC = (props) => { } else if (menuItemProps.frame && menuItemProps.frame == 'Y') { return window.open(menuItemProps.path)} to="#">{defaultDom}; } else if (menuItemProps.frame && menuItemProps.frame == 'S') { - return window.open(menuItemProps.path + '&mall3_token=' + sessionStorage.getItem('Authorization'))} to="#">{defaultDom}; + const initPath = menuItemProps.path; + const rePath = initPath?.replace("{mall3_token}", mall3_token).replace("{loginName}", userData.loginName).replace("{organizationId}", userData.organizationId); + return window.open(rePath)} to="#">{defaultDom}; } else { return {defaultDom}; } diff --git a/src/pages/Bid/BiddingAnnouncement/components/BiddingInvitation.tsx b/src/pages/Bid/BiddingAnnouncement/components/BiddingInvitation.tsx index 785150a..d049888 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' @@ -25,7 +26,7 @@ import { creatNotice, getChooseRoom, getPackageAndSupplierList, - chooseSupplier, deleteSupplier, updateSupplierUser, checkConflict + chooseSupplier, deleteSupplier, updateSupplierUser, saveAnno } from '../service' import moment from "moment"; import TabPane from "@ant-design/pro-card/lib/components/TabPane"; @@ -46,6 +47,8 @@ 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" +import RiskPreventionSoft from "@/utils/RiskPreventionSoft" interface BiddingInvitation { type: string; @@ -104,6 +107,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 +190,7 @@ const BiddingInvitation: React.FC = (props) => { setDocSaveBtn("compact"); setDocBtnName("新建"); setSping(false); + setUploadMemoID(""); } }); } else if (type == "edit") {//==========================================================编辑 @@ -211,6 +220,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 +230,7 @@ const BiddingInvitation: React.FC = (props) => { setDocReadOnly("false"); setDocSaveBtn("compact"); setDocBtnName("编辑"); + setUploadMemoID(data.reasonMemoAttrId); } }); @@ -256,6 +267,7 @@ const BiddingInvitation: React.FC = (props) => { setDocReadOnly("ture"); setDocSaveBtn("none"); setDocBtnName("查看"); + setUploadMemoID(data.reasonMemoAttrId); } }); } @@ -318,7 +330,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,12 +462,16 @@ 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 => { if (res?.code == 4004 && res?.success == false) { //2021.9.7 zhoujianlong 新增和修改邀请函增加风控 - const data = res?.data?.result == undefined ? [] : res?.data?.result - setRiskData(data) + const data = res?.data== undefined ? [] : res?.data + let thisData = []; + thisData.push(data); + setRiskData(thisData) setRiskVisible(true) } if (res.code == 200) { @@ -458,6 +482,48 @@ const BiddingInvitation: React.FC = (props) => { setTimeout(() => setSping(false), 1000) }); } + const saveAfterRisk = () => { + const packageMsg = []; + for (const item of TpPackageId) {//包数据 + for (const item1 of form.getFieldValue("sectionIds")) { + if (item.value == item1) { + packageMsg.push({ "bsId": item.value, "bsName": item.label }) + } + } + } + setSping(true); + const fromData = { + "id": pkId, + "annoNature": 101,//邀请函 + "tpId": tpId, + "csAnnoId": pkId, + "attDatasetId": form.getFieldValue("attDatasetId"), + "openhallTitle": form.getFieldValue("openhallIdTime"),//开标大厅 时间段 + "source": 21,//来源(1:预审公告;2:预审公示;11:资审公告;12资审公示;21:邀请函) + "annoTitle": form.getFieldValue("annoTitle"), + "contentWithStyle": braftRef.current.getHtml().replace(/ { + if (res.code == 200) { + setAnnoId(res?.data); + message.success("成功"); + setTabsKeys("2"); + } + setTimeout(() => setSping(false), 1000) + }); + } const columns1: ProColumns<{}>[] = [ @@ -828,6 +894,45 @@ const BiddingInvitation: React.FC = (props) => { */} + { + setMemoVisible(false) + }} + onOk={() => {setMemoVisible(false);onFinshInvitation();}} + footer={[ + , + , + ]} + centered + > + + 提示:当前采购文件获取截止时间与采购文件获取开始时间间隔少于3天,请填写原因说明! + +