diff --git a/config/router.config.ts b/config/router.config.ts index 2ef632b..b4159e9 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -71,6 +71,10 @@ export default [ }, ], }, + {//公共服务平台 + path: '/PublicPlatform', + component: './Bid/BiddingAnnouncement/components/PublicPlatform', + }, //==============================================================引入的业务路由 ...approvalForm,//审批单 diff --git a/src/images/stamp/stamp_example.png b/src/images/stamp/stamp_example.png new file mode 100644 index 0000000..d81cbb7 Binary files /dev/null and b/src/images/stamp/stamp_example.png differ diff --git a/src/pages/Bid/BiddingAnnouncement/components/BiddingAnnouncementList.tsx b/src/pages/Bid/BiddingAnnouncement/components/BiddingAnnouncementList.tsx index 76c0b95..f54b13a 100644 --- a/src/pages/Bid/BiddingAnnouncement/components/BiddingAnnouncementList.tsx +++ b/src/pages/Bid/BiddingAnnouncement/components/BiddingAnnouncementList.tsx @@ -18,6 +18,7 @@ import { history } from "umi"; import { btnAuthority } from "@/utils/authority"; import { getApprProcessList } from "@/utils/SeleApprovalProcess/service" import SeleApprovalProcess from "@/utils/SeleApprovalProcess" +import { isEmpty } from "@/utils/CommonUtils" import { checkObjectId } from "@/utils/DownloadUtils" /* @@ -158,6 +159,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { <> + ); @@ -167,6 +169,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); let btn3 = ( @@ -176,6 +179,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); let btn4 = ( @@ -185,6 +189,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); @@ -194,6 +199,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); @@ -205,6 +211,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); @@ -272,6 +279,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { <> + ); @@ -281,6 +289,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); let btn3 = ( @@ -290,6 +299,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); let btn4 = ( @@ -299,6 +309,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); @@ -308,6 +319,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); let btn6 = ( @@ -317,6 +329,7 @@ const BiddingAnnouncementList: React.FC<{}> = (props) => { + ); diff --git a/src/pages/Bid/BiddingAnnouncement/components/Medias.tsx b/src/pages/Bid/BiddingAnnouncement/components/Medias.tsx index b110980..653564d 100644 --- a/src/pages/Bid/BiddingAnnouncement/components/Medias.tsx +++ b/src/pages/Bid/BiddingAnnouncement/components/Medias.tsx @@ -1,4 +1,5 @@ -import { Checkbox, Col, Form, Row } from "antd"; +import { getDefId } from "@/utils/session"; +import { Checkbox, Col, Form, Row, Typography } from "antd"; import React, { useEffect, useState } from "react" import { getMediaService } from "../service"; @@ -26,7 +27,8 @@ const Media: React.FC = (props) => { } = props; //============================================================state const [medias, mediasSet] = useState([]); - + const { Text } = Typography + const defId = getDefId(); //流程id //mediaReleases: [{mediaId: "9", status: 1}] 9-无需推送外网; 0:没发 1:发布成功 2发布失败 let mediaStatus = {};//媒体对应发布状态 mediaReleases?.length > 0 && mediaReleases.map((item: any) => { @@ -81,7 +83,19 @@ const Media: React.FC = (props) => { { medias?.length != 0 && medias.map((item: any) => { - return ( + return defId == "recruit_multi" ? ( + item.id != "6" && + + {item.webName} + + { + mediaReleases?.length > 0 && mediaStatus[item.id] != undefined && item.id != '9' && + `(${mediaStatus[item.id]})` + } + + + + ) : ( {item.webName} @@ -99,6 +113,7 @@ const Media: React.FC = (props) => { + {defId != "recruit_multi" && 如选择发布到【中国招标投标公共服务平台】,在发布前需填写【公共服务平台】信息} ) } diff --git a/src/pages/Bid/BiddingAnnouncement/components/PublicPlatform.tsx b/src/pages/Bid/BiddingAnnouncement/components/PublicPlatform.tsx new file mode 100644 index 0000000..e5612b1 --- /dev/null +++ b/src/pages/Bid/BiddingAnnouncement/components/PublicPlatform.tsx @@ -0,0 +1,406 @@ +import React, { useEffect, useState } from 'react'; +import logo from '@/images/opening/logo.svg'; +import styles from './style.less'; +import './style.less'; +import { Anchor, BackTop, Button, Collapse, Descriptions, Form, Input, message, Modal, PageHeader, Space, Spin, Tooltip, Typography } from 'antd'; +import { btnAuthority } from '@/utils/authority'; +import { ArrowUpOutlined, CaretRightOutlined, InfoCircleOutlined } from '@ant-design/icons'; +import { getURLInformation, isNotEmpty, returnDictVal } from '@/utils/CommonUtils'; +import ExtendUpload from '@/utils/ExtendUpload'; +import { getPublicData, savePublicData } from '../service'; +import { getDefId, getDicData, getProMethod } from '@/utils/session'; +import { getAllFlowNameByRoomType } from '@/utils/FlowUtils'; +import exampleImg from '@/images/stamp/stamp_example.png' + +const layout = { + labelCol: { + span: 6, + }, + wrapperCol: { + span: 17, + }, +}; + +const validateMessages = { + required: '请填写当前项内容', +}; + +const PublicPlatform: React.FC<{}> = () => { + //loading + const [loading, setLoading] = useState(false); + //右侧浮动层监听Dom + const [container, setContainer] = useState(null); + //初始数据 + const [initialData, setInitialData] = useState({}); + //只读状态readOnly 默认只读 + const [readOnly, setReadOnly] = useState(true); + //公示or公告 true-公示 false-公告 + const [annoType, setAnnoType] = useState(false); + //示例弹窗Example + const [exampleVisible, setExampleVisible] = useState(false); + //annoId 公告公示id + const annoId = getURLInformation("id"); + //资审流程所处阶段 (roomType 2是后审,1是预审) + const roomType = getURLInformation('roomType') === null ? '2' : getURLInformation('roomType'); + //采购方式 + const proMethod = getProMethod(); + //所有流程名 + const flowName = getAllFlowNameByRoomType(proMethod, roomType); + //流程id + const defId = getDefId(); + //获取字典 + const getDict: any = getDicData(); + const dictData = JSON.parse(getDict); + + const { TextArea } = Input; + const { Panel } = Collapse; + const { Text } = Typography; + const { Link } = Anchor; + const [form] = Form.useForm(); + //Input + function returnInput(name: string | string[], label: string, readonly: boolean, initialValue: string | number | null, rules?: any[], placeholder?: string, maxLength?: number, extra?: React.ReactNode, width?: string | number, type?: string, suffix?: React.ReactNode) { + return ( + + + + ) + } + //TextArea + function returnArea(name: string | string[], label: string, readonly: boolean, initialValue: string | null, rules?: any[], placeholder?: string, extra?: React.ReactNode, maxLength?: number) { + return ( + +