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 { 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": 12, "tpId": tpId }).then(res => { if (res.code == 200) { setdataSource(res.data.records) setDataSourceAllNum(res.data.total) } }).finally(() => { setPageloading(false); }) } } /*拉取数据 end*/ /*新增招标公示*/ const toEditAdd = (props: any) => { GetPublicityUsablePackage(tpId).then(res => { if (res != null && res.message == "success") { if (res.data.length == 0) { message.warn(`没有可关联的${name4}!`) } else { setPkId(""); setUpdateChange(`${proDict == "procurement_mode_4" ? '新增' : '新建'}${name1}公示`) 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); 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