import { UnorderedListOutlined } from "@ant-design/icons" import ProTable, { ActionType, ProColumns } from "@ant-design/pro-table" import { Button, Card, Divider, Drawer, message, Modal, Spin, Table } from "antd" import React, { useEffect, useRef, useState } from "react" import { GetfileList, GetNoticeList, removeNotice, releaseNotice, releaseNoticeAgain, ApprovalNotice, GetNoticeUsablePackage, GetPublicityUsablePackage, getApprovalFor } from "./service" import BidPublicityResults from "./components/BidPublicityResults"; import { getProId } from "@/utils/session"; 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" /* * 招标公示开始 */ 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 [recordData, setRecordData] = useState({});//存储当前record数据 const [approvalVisible, setApprovalVisible] = useState(false);//选择流程弹窗控制参数 const [approvalData, setApprovalData] = useState([]);//选择流程数据存储 const columns: ProColumns[] = [ { title: '公示名称', dataIndex: 'annoTitle', key: 'annoTitle', align: 'left', }, { title: '包件名称', 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: '' }, // 9: { 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 = ( <> ); 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) } setPageloading(false); }) } } /*拉取数据 end*/ /*新增招标公示*/ const toEditAdd = (props: any) => { GetPublicityUsablePackage(tpId).then(res => { if (res != null && res.message == "success") { if (res.data.length == 0) { message.warn("没有可关联的包件!") } else { setUpdateChange('新增招募结果公示') setType("new"); setUpdateVisible(true); } } }) } /*编辑招标公示*/ const toEdit = (props: any) => { setUpdateChange('编辑招募结果公示') setPkId(props.id); setType("edit"); setUpdateVisible(true); } /*查看招标公示*/ const toRead = (props: any) => { setUpdateChange('查看招募结果公示') 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); } 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); } setPageloading(false); }); } }; /** * 发布 * */ const handleRelease = async (record: any) => { setPageloading(true); releaseNotice(record.id).then(res => { if (res.code == 200) { message.success('发布成功'); setRefresh(Math.random() + 1); } setPageloading(false); }); }; /** * 再次发布 * */ const handleReleaseAgain = async (record: any) => { setPageloading(true); releaseNoticeAgain(record.id).then(res => { if (res.code == 200) { message.success('发布成功'); 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) => { await getApprovalFor(record.id).then(res => { if (res?.code == 200 || res?.success == true) { const data = res?.data; let durl = /http:\/\/([^\/]+)\//i; let d = data?.traceDetailUrl?.replace(durl, '/'); window.open(d); } }) } return (
[ , , ]} search={false} options={false} columns={columns} dataSource={dataSource} rowKey={"id"} rowSelection={{ onChange: (_, selectedRows) => setSelectedRows(selectedRows), }} pagination={{ pageSize: dataSourceNum, current: dataSourcePage, defaultPageSize: 10, showSizeChanger: false, total: dataSourceAllNum, 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}
) } export default BidPublicityResult