diff --git a/src/pages/Calibration/BidWinningResults/components/BidWinningResults.tsx b/src/pages/Calibration/BidWinningResults/components/BidWinningResults.tsx new file mode 100644 index 0000000..67cd87c --- /dev/null +++ b/src/pages/Calibration/BidWinningResults/components/BidWinningResults.tsx @@ -0,0 +1,495 @@ +import { BarsOutlined, ExclamationCircleOutlined, UploadOutlined } from "@ant-design/icons" +import { + Button, + Card, Carousel, + Checkbox, + Col, + Collapse, + DatePicker, Drawer, + Form, Image, + Input, List, + message, + Modal, Popover, + Radio, + Row, + Spin, + Upload +} from "antd" +import React, { useEffect, useRef, useState } from "react" +import style from './style.less' +import { GetNoticeMsg, GetNoticeUsablePackage, creatNotice, getChooseRoom, GetPublicityUsablePackage } from '../service' +import moment from "moment"; +import Weboffice from "@/pages/webOffice/weboffice"; +import { deleteFileObjId, getFileBidList, SnowflakeID } from "@/services/untilService"; +import { getDefId, getProMethod } from "@/utils/session"; +import ExtendUpload from "@/utils/ExtendUpload"; +import { UploadProps } from "antd/lib/upload/interface"; +import Medias from "@/pages/Bid/BiddingAnnouncement/components/Medias" +import BraftText from "@/components/richText/wang"; +import RiskPrevention from "@/utils/RiskPrevention" + +interface BiddingAnnouncementProps { + modalVisible: boolean; + titleName: string; + onCancel: () => void; + type: string; + tpId: string; + pkId: string; + SX: () => void; +} + +const layout = { + labelCol: { span: 7 }, + wrapperCol: { span: 10 }, +}; + + +const BidWinningResults: React.FC = (props) => { + const { Panel } = Collapse; + const { titleName, modalVisible, onCancel, type, tpId, pkId, SX } = props; + const [form] = Form.useForm(); + const [spinning, setSping] = useState(true);//加载遮罩 + const [TpPackageId, setTpPackageId] = useState([]); //标包信息 + const [editInformation, setEditInformation] = useState(false);//是否可编 + const [editInformation4Change, setEditInformation4Change] = useState(false);//是否可编 + + const [UploadList, setUploadList] = useState(); //存upload列表 + const [UploadID, setUploadID] = useState(); //upload 业务id + const [htmlFileCode, setHtmlFileCode] = useState("");//文档id + + + const [docFileCode, setDocFileCode] = useState("");//文档id + const [docBtnName, setDocBtnName] = useState("");//文档按钮文字 + const [docReadOnly, setDocReadOnly] = useState("false");//是否可编辑 + const [docSaveBtn, setDocSaveBtn] = useState("compact");//保存按钮是否展示 + + /*20210112 新增 发布媒体限制*/ + const [mediaType, setmediaType] = useState(); + // 2021-06-17 新增 发布媒体显示发布成功失败 + const [mediaReleases, mediaReleasesSet] = useState([]); + + /*weboffice 相关*/ + // const WebofficeRef = useRef(null); + // const onRef = (ref) => { + // /* this.child= ref;*/ + // } + // 2021-07-28 新增 富文本 + const braftRef = useRef(null); + const [echo, echoSet] = useState('') + + const [riskVisible, setRiskVisible] = useState(false);//风控弹窗 2021.9.7 zhoujianlong + const [riskData, setRiskData] = useState([]);//风控数据 2021.9.7 zhoujianlong + + const UploadProps: UploadProps = { + name: "file", + disabled: editInformation + } + let name4 = "标段"; + let TpPackageName = ""; + let proDict = getProMethod(); + let defId = getDefId(); + let intervalDate = defId == 'negotiation_single' ? '1' : '3' //20210622 zhoujianlong新增日期间隔参数 + if (proDict == "procurement_mode_1" || proDict == "procurement_mode_2") { + TpPackageName = "招标"; + name4 = "标段"; + } else if (proDict == "procurement_mode_3") { + TpPackageName = "比选"; + name4 = "采购包"; + + } else if (proDict == "procurement_mode_5" || proDict == "procurement_mode_6") { + TpPackageName = "谈判"; + name4 = "采购包"; + + } else if (proDict == "procurement_mode_4") { + TpPackageName = "招募"; + name4 = "包件"; + } else if (proDict == "procurement_mode_7") { + TpPackageName = "询价"; + name4 = "包件"; + } + + + + + /*拉取数据 beg*/ + useEffect(() => { + Int(); + form.resetFields();//清除form中数据 + }, [pkId, type]); + + const Int = async () => { + setSping(true); + if (type == "cease") { + return; + } else if (type == "new") {//==========================================================新建 + GetPublicityUsablePackage(tpId).then(res => { + if (res.code == 200) { + let value = []; + for (const item of res.data) { + value.push({ "label": item.bsName, "value": item.bsId }) + } + SnowflakeID().then(res => { + setUploadID(res.id); + }); + setTpPackageId(value); + setDocReadOnly("false"); + setDocSaveBtn("compact"); + setDocBtnName("新建") + } + }).finally(() => { + setSping(false); + }); + + setEditInformation(false);//可编辑 + } else if (type == "edit" || type == "change") {//==========================================================编辑 + + await GetPublicityUsablePackage(tpId, pkId).then(res => { + if (res.code == 200) { + let thisData1 = []; + for (const item of res.data) { + thisData1.push({ "label": item.bsName, "value": item.bsId }) + } + setTpPackageId(thisData1); + } + }); + GetNoticeMsg(pkId).then(res => { + if (res.code == 200) { + const data = res.data + let defPak = []; + for (const item of data.sections) { + defPak.push(item.bsId); + } + form.setFieldsValue({ + "attDatasetId": data.attDatasetId, + "docStartTime": moment(data.docStartTime, 'yyyy-MM-DD HH:mm:ss'), + "docEndTime": moment(data.docEndTime, 'yyyy-MM-DD HH:mm:ss'), + "annoTitle": data.annoTitle, + "medias": data.medias, + "sectionIds": defPak + }); + echoSet(data.contentWithStyle); + setUploadID(data.attDatasetId); + setHtmlFileCode(data.contentHtmlId) + setDocFileCode(data.contentFileId); + setDocReadOnly("false"); + setDocSaveBtn("compact"); + setDocBtnName("编辑"); + } + }).finally(() => { + setSping(false); + }); + setEditInformation(false);//可编辑 + } else if (type == "read") {//==========================================================查看 + GetNoticeMsg(pkId).then(res => { + if (res.code == 200) { + const data = res.data + let value = []; + for (const item of data.sections) { + value.push({ "label": item.bsName, "value": item.bsId }) + } + setTpPackageId(value); + form.setFieldsValue({ + "attDatasetId": data.attDatasetId, + "docStartTime": moment(data.docStartTime, 'yyyy-MM-DD HH:mm:ss'), + "docEndTime": moment(data.docEndTime, 'yyyy-MM-DD HH:mm:ss'), + "annoTitle": data.annoTitle, + "medias": data.medias, + "sectionIds": data.sectionIds + }); + echoSet(data.contentWithStyle); + setUploadID(data.attDatasetId); + setDocFileCode(data.contentFileId); + mediaReleasesSet(data.mediaReleases); + setDocReadOnly("true"); + setDocSaveBtn("none"); + setDocBtnName("查看"); + } + }).finally(() => { + setSping(false); + }); + setEditInformation(true);//只读 + } + + + }; + /*拉取数据 end*/ + + + /*提交数据*/ + const onFinish = (data: any) => { + form.validateFields().then(() => { + check(); + }) + + // if (checkResult) { + // saveData() + // } + } + //提交数据复用方法 + const saveData = () => { + setSping(true); + const packageMsg = []; + + for (const item of TpPackageId) {//包数据 + if (form.getFieldValue("sectionIds")) { + if (Array.isArray(form.getFieldValue("sectionIds"))) { + for (const item1 of form.getFieldValue("sectionIds")) { + if (item.value == item1) { + packageMsg.push({ "bsId": item.value, "bsName": item.label }) + } + } + } else { + if (item.value == form.getFieldValue("sectionIds")) { + packageMsg.push({ "bsId": item.value, "bsName": item.label }) + } + } + } else { + message.warn("您未选择" + name4); + setSping(false); + } + + } + + if (type == "new" || type == "changeNew" || type == 'edit') {//==========================================================新建 + if (braftRef.current.getHtml() == '') { + message.warn("您尚未编辑公示内容"); + setSping(false); + return; + } + } + const fromData = { + "id": pkId, + "annoNature": 201, + "tpId": tpId, + "attDatasetId": form.getFieldValue("attDatasetId"),// + "contentWithStyle": braftRef.current.getHtml().replace(/ { + if (res?.code == 4004 && res?.success == false) { //2021.9.7 zhoujianlong 新增和修改公示增加风控 + const data = res?.data?.result == undefined ? [] : res?.data?.result + setRiskData(data) + setRiskVisible(true) + } + if (res.code == 200) { + message.success("成功"); + onCancel(); + SX(); + } + }).finally(() => { + setSping(false); + }); + } + /*提交数据 end*/ + + /*提交数据校验 beg*/ + const check = () => { + if (form.getFieldValue("docStartTime") < moment().startOf('day')) { + message.warn('公示开始时间需大于当前时间'); + } else { + if (defId == 'negotiation_single') { + if (moment(form.getFieldValue("docEndTime")).startOf('day').diff(moment(form.getFieldValue("docStartTime")).startOf('day'), "days") < 1) { //20210622 zhoujianlong 修改单一来源时间校验为大于一天 + message.warn('公示结束时间需要在公示开始时间的1天以后'); + } else { + saveData() + } + } else { + if (moment(form.getFieldValue("docEndTime")).startOf('day').diff(moment(form.getFieldValue("docStartTime")).startOf('day'), "days") < 3) { + message.warn('公示结束时间需要在公示开始时间的3天以后'); + } else { + saveData() + } + } + } + } + + /*提交数据校验 end*/ + + + const renderFooter = () => { + if (type == "read") { + return ( + <> + + + ); + } else { + return ( + <> + + + + ); + } + } + + /*upload*/ + const UploadMethod = async () => { + await getFileBidList(UploadID).then(res => { + setUploadList(res) + }) + } + const UploadOnchange = async (file: any) => { + let fileMsg = file.file; + if (fileMsg.status === 'removed') { + await deleteFileObjId(fileMsg.uid) + setUploadList(file.fileList) + } + if (fileMsg.status === 'done') { + message.success("上传成功"); + await UploadMethod(); + } else if (fileMsg.status === 'error') { + message.error("上传失败"); + } + } + + //修改发布媒体 触发方法-邢书源 + const medias9 = (dis: any) => { + if (dis) { + form.setFieldsValue({ + "medias": "9", + }); + } + setmediaType(dis); + } + + const testCheck = (checkedParam: any) => { + if (checkedParam.indexOf("9") > -1) { + form.setFieldsValue({ + "medias": "9", + }); + setmediaType(true); + } else { + setmediaType(false); + } + + } + const modalHeight = (window.innerHeight * 96) / 100; + return ( + onCancel()} + width={"60%"} + style={{ maxHeight: modalHeight }} + bodyStyle={{ maxHeight: modalHeight - 107, overflowY: 'auto' }} + centered + footer={renderFooter()} + > +
+
+ + + + + + current && current < moment().startOf('day')} + style={{ width: "100%" }} /> + + + + + + {/*标包信息*/} + + + + {UploadID != "empty" ? : null} + + + {/* 发布媒体 */} + medias9(dis)} + /> +

公示发布内容

+ {/* */} + {/* {docBtnName != "" ? ( + ) : null} */} + + {/* */} + + {/**风控组件 */} + {riskVisible && { + setRiskVisible(false) + setRiskData([]) + }} + data={riskData} + />} +
+
+
+ + ) +} + + +export default BidWinningResults diff --git a/src/pages/Calibration/BidWinningResults/components/style.less b/src/pages/Calibration/BidWinningResults/components/style.less new file mode 100644 index 0000000..db064b7 --- /dev/null +++ b/src/pages/Calibration/BidWinningResults/components/style.less @@ -0,0 +1,69 @@ +//新增招标公告 +.bidding { + margin-bottom: 8px; + :global { + .biddingLabel { + width: 30%; + display: inline-block; + text-align: right; + // padding-left: 20px; + padding-right: 10px; + } + .biddingIndex { + width: 40%; + display: inline-block; + justify-content: right; + } + .biddingDatePicker { + width: 40%; + } + .biddingRadio { + // display: inline-block; + width: 40%; + margin-top:24px; + } + .ant-row .ant-col { + margin: 6px 0px; + } + .uploadTotal { + display: inline-block; + width: 40%; + .upload { + --antd-wave-shadow-color:#1c84c6; + background: #1c84c6; + color:#fff; + border-color: #1c84c6; + } + .uploadLabel { + // display: inline; + font-size: 13px; + color: #c8ced1; + margin-top: 5px; + } + } + } +} +.announcementFootButton { + :global{ + display: flex; + justify-content: center; + margin-top: 15px; + .save{ + --antd-wave-shadow-color:#f7ab59; + background: #f7ab59; + color:#fff; + border-color: #f7ab59; + } + } +} +//招标公告 +.label { + :global { + color:#f62a2b; + } +} +.ant-pro-table-toolbar { + :global { + margin: -12px 0px; + } +} diff --git a/src/pages/Calibration/BidWinningResults/data.d.ts b/src/pages/Calibration/BidWinningResults/data.d.ts new file mode 100644 index 0000000..a84c06f --- /dev/null +++ b/src/pages/Calibration/BidWinningResults/data.d.ts @@ -0,0 +1,35 @@ +export interface NoticeData { + key?: number; + annoEndTime?:string;//结束日期 + annoNature?:string;//性质(“1”表示“正常公告”;“4”表示“失败公告”;“7”表示“变更公告”;“8”表示“再次发布的公告;“101”表示邀请函;“201”表示公示。) + annoProjType?:string;//项目类型(项目类型分为三类,货物,工程和服务。可以修改。) + annoStartTime?:string;//发布时间 + annoTitle?:string;//标题 + annoType?:string;//类型(跟随项目cgfs) + attDatasetId?:string;//附件集id + contentText?:string;// 内容文本 + contentTextWithStyle?:string;//正文(带格式) + csAnnoId?:string;//初始公告id(变更公告存储该字段,其它公告不存储) + docEndTime?:string;//招标文件获取截止时间(购标结束时间) + docStartTime?:string;//招标文件获取开始时间(购标开始时间) + docSubmitMethod?:string;//招标文件递交方式//去掉 + id?:number;//主键id + medias?:string;//选择的媒体,以英文,分隔 + openhallId?:number;//开标大厅 + openhallTitle?:string;//开标大厅名称 + openingPlace?:string;//开标地点 + openingTime?:string;//开标时间 + openingWay?:string;//开标方式 + replyEndTime?:string;//应答截至时间 + sectionIds?:string;//关联的包id,以英文,分隔 + sectionNames?:string;//关联的包名称,以英文,分隔 + sections?:[{ + bsId?:number;//包id + bsName?:string;//包名称 + }]; + source?:number;//来源(1:预审公告;2:预审公示;11:资审公告;12资审公示;21:邀请函) + status?:number;//业务状态(1:起草,2:已提交,3已审批,4:已拒绝,5已发布,6:发布失败,9:异常) + tpId?:number;//招标项目表主键 + +} + diff --git a/src/pages/Calibration/BidWinningResults/index.tsx b/src/pages/Calibration/BidWinningResults/index.tsx new file mode 100644 index 0000000..962ad80 --- /dev/null +++ b/src/pages/Calibration/BidWinningResults/index.tsx @@ -0,0 +1,505 @@ +import { UnorderedListOutlined } from "@ant-design/icons" +import ProTable, { ActionType, ProColumns } from "@ant-design/pro-table" +import { Button, Card, Divider, Drawer, message, Modal, Popconfirm, Spin, Table } from "antd" +import React, { useEffect, useRef, useState } from "react" +import { + GetfileList, + GetNoticeList, + removeNotice, + releaseNotice, + releaseNoticeAgain, + ApprovalNotice, + GetNoticeUsablePackage, GetPublicityUsablePackage, getApprovalFor, over +} from "./service" + +// import BidPublicityResults from "@/pages/Calibration/BidPublicityResult/components/BidPublicityResults"; +import BidWinningResults from "@/pages/Calibration/BidWinningResults/components/BidWinningResults"; +import { getDefId, getProId, getProMethod } from "@/utils/session"; +import { btnAuthority } from "@/utils/authority"; +import { getApprProcessList } from "@/utils/SeleApprovalProcess/service" +import SeleApprovalProcess from "@/utils/SeleApprovalProcess" +import { releaseNoticeOffline } from "@/pages/Bid/BiddingAnnouncement/service" +import { isEmpty } from "@/utils/CommonUtils" +import { checkObjectId } from "@/utils/DownloadUtils" +import ApprovalModal from "@/components/ApprovalModal" + +/* +* 招标公示开始 +*/ +interface DataItem { + key: number, + announcementName: string, + associatedPackage: string, + writeTime: Date, + announcementState: string, + onSubmit: (values: any) => void;//点击保存的回调 +} + + +const BidPublicityResult: React.FC<{}> = (props) => { + const [Refresh, setRefresh] = useState(Math.random); + const [selectedRowsState, setSelectedRows] = useState([]); + const [updateVisible, setUpdateVisible] = useState(false) + const [updateChange, setUpdateChange] = useState('');//弹窗名 + const [type, setType] = useState('cease');//弹窗类型 + const [pkId, setPkId] = useState();//公示/邀请函id + const [tpId, setTpId] = useState(getProId);//项目id + const [dataSource, setdataSource] = useState([]); //公示列表数据 + const [dataSourcePage, setDataSourcePage] = useState(1);//当前页数 + const [dataSourceAllNum, setDataSourceAllNum] = useState();//总行数 + const [dataSourceNum, setDataSourceNum] = useState(10);//当前每页行数 + + + const [pageloading, setPageloading] = useState(false);//加载遮罩 + const [spin, spinSet] = useState(false);//遮罩 + const [recordData, setRecordData] = useState({});//存储当前record数据 + const [approvalVisible, setApprovalVisible] = useState(false);//选择流程弹窗控制参数 + const [approvalData, setApprovalData] = useState([]);//选择流程数据存储 + const [approvalViewVisible, setApprovalViewVisible] = useState(false);//查看审批流程弹窗 + const [approvalViewUrl, setApprovalViewUrl] = useState("");//查看审批流程参数-url + + let name1 = "中标候选人"; + let name2 = "评标"; + let name3 = "开标"; + let name4 = "标段"; + let name5 = '定标'; + let TpPackageName = ""; + let proDict = getProMethod(); + let defId = getDefId(); + if (proDict == "procurement_mode_1" || proDict == "procurement_mode_2") { + TpPackageName = "招标"; + name1 = "中标候选人"; + name2 = "评标"; + name3 = "开标"; + name4 = "标段"; + name5 = '定标'; + } else if (proDict == "procurement_mode_3") { + TpPackageName = "比选"; + name1 = "中选候选人"; + name2 = "评审"; + name3 = "评审开始" + name4 = "采购包"; + name5 = '评审结果'; + } else if (proDict == "procurement_mode_5" || proDict == "procurement_mode_6" || proDict == "procurement_mode_9") { + TpPackageName = "谈判"; + name1 = "中选候选人"; + name2 = "评审"; + name3 = "评审开始"; + name4 = "采购包"; + name5 = '评审结果'; + } else if (proDict == "procurement_mode_4") { + TpPackageName = "招募"; + name1 = "招募结果"; + name2 = "评审"; + name3 = "评审开始" + name4 = "包件"; + name5 = '评审结果'; + } else if (proDict == "procurement_mode_7") { + TpPackageName = "询价"; + name1 = "中选候选人"; + name2 = "评审"; + name3 = "评审开始"; + name4 = "采购包"; + name5 = '评审结果'; + } + + + const columns: ProColumns[] = [ + { + title: '公示名称', + dataIndex: 'annoTitle', + key: 'annoTitle', + align: 'left', + + }, + { + title: name4 + '名称', + dataIndex: 'sectionNames', + key: 'sectionNames', + align: 'left', + }, + { + title: '起草时间', + dataIndex: 'createDate', + // dataIndex: 'annoStartTime', + key: "annoStartTime", + align: 'left', + valueType: 'dateTime', + }, + { + title: '公示状态', + dataIndex: 'status', + key: "status", + align: 'left', + // valueEnum: { + // 1: { text: '起草', status: '' }, + // 2: { text: '已提交', status: '' }, + // 3: { text: '已审批', status: '' }, + // 4: { text: '已拒绝', status: '' }, + // 5: { text: '已发布', status: '' }, + // 6: { text: '发布失败', status: '' }, + // }, + render: (_: any, record: any) => { + let text = '' + record.status == 1 && (text = '起草'); + record.status == 2 && (text = '已提交'); + record.status == 3 && (text = '已审批'); + record.status == 4 && (text = '已拒绝'); + record.status == 5 && record.publishType == 1 && (text = '线下发布'); + record.status == 5 && (record.publishType == 0 || record.publishType == null) && (text = '发布成功'); + record.status == 6 && (text = '发布失败'); + record.status == 9 && (text = '异常处理'); + return text + } + }, + { + title: '操作', + dataIndex: 'status', + key: "", + align: 'left', + render: (_: any, record: any) => { + let btn1 = ( + <> +    +    + + + + ); + let btn2 = ( + <> + + + + + ); + let btn3 = ( + <> +    + + + + + ); + let btn4 = ( + <> +    +    + + + + + ); + let btn5 = ( + <> + + + + { + spinSet(true); + await over(record.sectionIds).then((res: any) => { + if (res.success) { + message.success('已结束!'); + } + }) + spinSet(false); + }} + okText="确定" + cancelText="取消" + > + + + + ); + let btn6 = ( + <> +    + + + + + + ); + + /*if(true){ + return btn3; + }else*/ + if (record.status == 1) { + return btn1; + } else if (record.status == 2) { + return btn2; + } else if (record.status == 3) { + return btn3; + } else if (record.status == 4) { + return btn4; + } else if (record.status == 5) { + return btn5; + } else if (record.status == 6) { + return btn6; + } else { + return (<>) + } + }, + + + }, + ]; + + /*拉取数据 beg*/ + useEffect(() => { + GetList("page") + }, [tpId, dataSourceNum, dataSourcePage, Refresh]) + + const GetList = (props: any) => { + setPageloading(true); + if (props == "page") {//初始化页面 + GetNoticeList({ + "annoNature": 201, + "annoTitle": "", + "csAnnoId": "", + "pageNo": dataSourcePage, + "pageSize": dataSourceNum, + "source": 13, + "tpId": tpId + }).then(res => { + if (res.code == 200) { + setdataSource(res.data.records) + setDataSourceAllNum(res.data.total) + } + }).finally(() => { + setPageloading(false); + }) + } + } + + /*拉取数据 end*/ + + /*新增中标结果公示*/ + const toEditAdd = (props: any) => { + console.log("新增--------") + GetPublicityUsablePackage(tpId).then(res => { + if (res != null && res.message == "success") { + if (res.data.length == 0) { + console.log("111111111111") + message.warn(`没有可关联的${name4}!`) + } else { + setPkId(""); + // setUpdateChange(`${proDict == "procurement_mode_4" ? '新增' : '新建'}${name1}公示`) + setUpdateChange("新增中标结果公示"); + setType("new"); + setUpdateVisible(true); + } + } + }) + + + } + /*编辑招标公示*/ + const toEdit = (props: any) => { + setUpdateChange(`编辑${name1}公示`) + setPkId(props.id); + setType("edit"); + setUpdateVisible(true); + } + /*查看招标公示*/ + const toRead = (props: any) => { + setUpdateChange(`查看${name1}公示`) + setType("read"); + setPkId(props.id); + setUpdateVisible(true); + } + + + /** + * 删除节点 + * @param selectedRows + */ + const handleRemove = async (record: any) => { + setPageloading(true); + removeNotice(record.id).then(res => { + if (res.code == 200) { + message.success('删除成功'); + setRefresh(Math.random() + 1); + } + }).finally(() => { + setPageloading(false); + }); + + }; + /** + * 批量删除 + * */ + const handleRemoveMore = async () => { + if (selectedRowsState.length != 0) { + setPageloading(true); + let param = [] + for (const item of selectedRowsState) { + param.push(item.id); + } + removeNotice(param).then(res => { + if (res.code == 200) { + message.success('删除成功'); + setRefresh(Math.random() + 1); + } + }).finally(() => { + setPageloading(false); + }); + } + }; + /** + * 发布 + * */ + const handleRelease = async (record: any) => { + setPageloading(true); + console.log(record) + console.log("record--------------") + releaseNotice(record.id).then(res => { + if (res.code == 200) { + message.success('发布成功'); + setRefresh(Math.random() + 1); + } + }).finally(() => { + setPageloading(false); + }); + }; + /** + * 再次发布 + * */ + const handleReleaseAgain = async (record: any) => { + + setPageloading(true); + releaseNoticeAgain(record.id).then(res => { + if (res.code == 200) { + message.success('发布成功'); + setRefresh(Math.random() + 1); + } + }).finally(() => { + setPageloading(false); + }); + }; + /** + * + * 线下发布 + * */ + const handleReleaseOffline = async (record: any) => { + setPageloading(true); + releaseNoticeOffline(record.id).then(res => { + if (res.code == 200) { + message.success('发布成功'); + // if (type == "change" || type == "changeNew") { + // GetList(FpkId); + // } + } + }).finally(() => { + setRefresh(Math.random() + 1); + setPageloading(false); + }); + }; + /** + * 发起审批 + * */ + const handleApproval = async (record: any) => { + setPageloading(true); + //获取流程列表 + getApprProcessList(record.id).then(res => { + if (res?.code == 200) { + const data = res?.data + if (data?.approval == true) {//打开选择流程界面 + setRecordData(record) + setApprovalData(data?.list) + setApprovalVisible(true) + } else { //直接提交审批 + ApprovalNotice(record.id).then(res => { + if (res?.code == 200) { + message.success('发起审批成功'); + } + setRefresh(Math.random() + 1) + }); + } + } + }).finally(() => { + setPageloading(false); + }) + }; + + //公示审批单 + const toApprovalFor = async (record: any) => { + setPageloading(true); + await getApprovalFor(record.id).then(res => { + if (res?.code == 200 || res?.success == true) { + const data = res?.data; + let durl = /http:\/\/([^\/]+)\//i; + let d = data?.replace(durl, '/'); + setApprovalViewUrl(d); + setApprovalViewVisible(true); + } + }).finally(() => { + setPageloading(false); + }); + } + + + return ( +
+ + [ + , + // , + ]} + search={false} + options={false} + columns={columns} + dataSource={dataSource} + rowKey={"id"} + rowSelection={{ + onChange: (_, selectedRows) => setSelectedRows(selectedRows), + }} + + pagination={{ + pageSize: dataSourceNum, + current: dataSourcePage, + total: dataSourceAllNum, + pageSizeOptions: ['10', '20', '50'], + onShowSizeChange: ((current, size) => setDataSourceNum(size)), + onChange: ((page, pageSize) => setDataSourcePage(page)) + }} + + /> + {updateVisible ? ( + setRefresh(Math.random() + 1)} titleName={updateChange} + pkId={pkId} type={type} tpId={tpId} onCancel={() => setUpdateVisible(false)} + modalVisible={updateVisible} /> + ) : null} + {approvalVisible ? ( + { + setApprovalVisible(false) + setApprovalData([]) + setRecordData({}) + setRefresh(Math.random() + 1) + }} data={approvalData} annoId={recordData?.id} /> + ) : null} + { setApprovalViewVisible(false) }} url={approvalViewUrl} /> + +
+ ) +} + + +export default BidPublicityResult diff --git a/src/pages/Calibration/BidWinningResults/service.ts b/src/pages/Calibration/BidWinningResults/service.ts new file mode 100644 index 0000000..60b6afc --- /dev/null +++ b/src/pages/Calibration/BidWinningResults/service.ts @@ -0,0 +1,104 @@ +import request from '@/utils/request'; +// import {demo} from './data.d'; + + +/*公告列表请求*/ +export async function GetNoticeList(params?: any) { + return request('/api/biz-service-ebtp-bid/v1/anno/pageList', { + method: 'post', + data: { + ...params + }, + }) +} +/*当前公告可用包请求*/ +export async function GetNoticeUsablePackage(params?: any) { + return request('/api/biz-service-ebtp-bid/v1/anno/tobs/' + params) +} +/*公告信息查询*/ +export async function GetNoticeMsg(params?: any) { + return request('/api/biz-service-ebtp-bid/v1/anno/' + params) +} +/*创建公告*/ +export async function creatNotice(type: any, params?: any) { + let url = "/api/biz-service-ebtp-bid/v1/anno"; + if (type == "edit") + url = "/api/biz-service-ebtp-bid/v1/anno/updateById"; + return request(url, { + method: "POST", + data: { + ...params + }, + }) +} +/*删除公告*/ +export async function removeNotice(params?: any) { + let method = "POST"; + return request('/api/biz-service-ebtp-bid/v1/anno/delete/' + params, { method: method }) +} +/*发布公告 type=0 正常发布*/ +export async function releaseNotice(params?: any) { + let method = "post"; + return request('/api/biz-service-ebtp-bid/v1/anno/publish/' + params + "/0", { + method: method, + }) +} + +/*再次发布公告*/ +export async function releaseNoticeAgain(params?: any) { + let method = "post"; + return request('/api/biz-service-ebtp-bid/v1/anno/republish/' + params, { + method: method, + data: { + ...params + }, + }) +} +/*公告发起审批*/ +export async function ApprovalNotice(params?: any) { + let method = "post"; + return request('/api/biz-service-ebtp-bid/v1/anno/approval/' + params, { + method: method, + data: { + ...params + }, + }) +} + +export async function GetfileList(params?: any) { + return request('/api/biz-service-ebtp-bid/v1/document/pageList', { + method: 'post', + data: { + ...params + }, + }) +} +/*开标大厅选择*/ +export async function getChooseRoom(params?: any) { + let method = "get"; + return request('/api/biz-service-ebtp-bid/v1/bizbidopenhall/list?opendate' + params, { method: method }) +} + +/*当前公示可用包请求*/ +export async function GetPublicityUsablePackage(params?: any, annoId?: any) { + return request('/api/biz-service-ebtp-bid/v1/anno/tobs/pub/' + params + "?annoId=" + annoId); +} + +/** + * 审批单链接查询(公告,变更公告,失败公告,邀请函,公示) + * @param id + * @returns + */ +export async function getApprovalFor(id?: any) { + return request(`/api/biz-service-ebtp-bid/v1/anno/approve/trace/${id}`, { + method: "POST", + }) +} +/** + * 定标结束 初始化归档 + * @param id + * @returns + */ +export async function over(sectionId?: any) { + return request(`/api/biz-service-ebtp-archive/v1/archiveRounds/initExceptionArchiveByRounds/${sectionId}`) +}