import ProTable, { ActionType, ProColumns } from "@ant-design/pro-table"; import { Button, Col, Descriptions, Form, Input, message, Modal, Progress, Row, Spin } from "antd"; import React, { useEffect, useRef, useState } from "react"; import styles from './index.less'; import './index.less'; import { getList, jieMi, jmRate, singBid, endTimeUp, updatePrice, queryFx } from './service'; const Room: React.FC<{}> = () => { const [spin, spinSet] = useState(false); const [form] = Form.useForm(); const FormItem = Form.Item; const { TextArea } = Input; const formLayout = { labelCol: { span: 8 }, wrapperCol: { span: 16 }, }; //控制字段 角色、开标状态、唱标阶段、是否需要ipass解密 // const proId = 1111111; const juese = 1//1代理 2供应商 const actionRef = useRef(); const [projectName, projectNameSet] = useState(''); //项目名称 const [projectNo, projectNoSet] = useState(''); //项目编号 const [sectionName, sectionNameSet] = useState(''); //标包名称 const [sectionNo, sectionNoSet] = useState(''); //标包编号 const [openTime, openTimeSet] = useState(''); //开标时间 const [openState, openStateSet] = useState();//是否开标 const [range, rangeSet] = useState();//是否唱标 const [jm, jmSet] = useState();//是否解密 const [rangeOver, rangeOverSet] = useState();//是否唱标结束 const [important, importantSet] = useState();//是否重大项目 const [turnId, turnIdSet] = useState('');//轮次id const [configId, configIdSet] = useState('');//唱标配置id const [openRoom, openRoomSet] = useState('');//开标室id const [repairVis, repairVisSet] = useState(false);//补录报价显隐 const [subentryVis, handleSubentryVis] = useState(false);//分项报价显隐 const [tdocId, tdocIdSet] = useState('');//tdocId 分项报价表用 const [jmTimeVis, jmTimeVisSet] = useState(false);//解密时限显隐 const [endTime, endTimeSet] = useState();//解密时限 const [rateVis, handleRateVis] = useState(false); //进度显隐 const [rateCount, rateCountSet] = useState(0); //查询进度启动器 const [jmFileCount, jmFileCountSet] = useState(0);//文件总数 const [jmComplete, jmCompleteSet] = useState(0);//已解密成功 const [jmWait, jmWaitSet] = useState(0);//未解密 const [jmFail, jmFailSet] = useState(0);//解密失败 //开标室表格 const [columnsKb, columnsKbSet] = useState([]); const [columnsKbData, columnsKbDataSet] = useState([]); //解密 const sing = async (fields: any) => { const hide = message.loading('正在配置'); try { await singBid({ ...fields }); hide(); message.success('成功!'); getTableData(); return true; } catch (error) { hide(); message.error('失败请重试!'); return false; } }; //设置解密时限 const endTimeConfig = async (fields: any) => { const hide = message.loading('正在配置'); try { await endTimeUp({ ...fields }); hide(); message.success('配置成功!'); return true; } catch (error) { hide(); message.error('配置失败请重试!'); return false; } }; //开标室表格按钮 const tools = [ juese == 1 && !important && !range ? : null, juese == 1 && !range ? : null, juese == 1 && !range ? : null, juese == 1 && (jmComplete + jmFail) > 0 && !rangeOver && !range ? : null, juese == 1 && range && !rangeOver ? : null, juese == 1 ? : null, ]; //取参数 function getQueryString(name: any) { let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); let r = window.location.search.substr(1).match(reg); return r !== null ? unescape(r[2]) : null; } //进页面执行 useEffect(() => { getTableData(); }, []); //查询进度 useEffect(() => { if (rateVis) { console.log(123423); let all: number, comp: number, fail: number, wait: number = 0; jmRate({ turnId: turnId }).then((res) => { console.log(res); let data = res.data; if (data != undefined) { all = data['-1'] != undefined ? data['-1'] : 0; comp = data['1'] != undefined ? data['1'] : 0; fail = data['2'] != undefined ? data['2'] : 0; wait = data['0'] != undefined ? data['0'] : 0; } jmCompleteSet(comp); jmFailSet(fail); jmFileCountSet(all); jmWaitSet(wait); }); setTimeout(async () => { rateCountSet(rateCount + 1); }, 2000); } }, [rateCount]); //取表格数据 const getTableData = async () => { spinSet(true); let assessRoomId: any = ""; let turnSort: any = ''; if (getQueryString("aa") != null) { assessRoomId = getQueryString("aa") } if (getQueryString("bb") != null) { turnSort = getQueryString("bb") } let column: any = []; let data: any = []; let category: any[] = []; let projectName: any, projectNo: any, sectionName: any, sectionNo: any, openTime: any, turnId: any, configId: any, openRoomId: any, tdocId: any = ''; let openState: any, rangeT: any, rangeOverT: any, decryptStatus: any, important: any = false; await getList({ assessRoomId: assessRoomId, turnSort: turnSort }).then((res) => { console.log(res); //拼记录表信息 if (res.data != undefined) { projectName = res.data.singConfig.projectName; projectNo = res.data.singConfig.projectNo; sectionName = res.data.singConfig.sectionName; sectionNo = res.data.singConfig.sectionNo; openTime = res.data.singConfig.openTime; openState = res.data.singConfig.openState == 1 ? true : false; rangeT = res.data.singConfig.whetherRange == 1 ? true : false; rangeOverT = res.data.singConfig.whetherRangeOver == 1 ? true : false; decryptStatus = res.data.singConfig.decryptStatus == 1 ? true : false; important = res.data.singConfig.passDecode == 1 ? true : false; turnId = res.data.singConfig.turnId; configId = res.data.singConfig.id; openRoomId = res.data.singConfig.openRoomId; important = res.data.singConfig.passDecode == 1 ? true : false; } if (res.data != undefined) { //拼表格 column.push({ title: '序号', dataIndex: 'index', valueType: 'index', }); column.push({ title: '投标单位', dataIndex: 'companyName', }); res.data.title.map((item: any, index: any) => { column.push({ title: item.name, dataIndex: item.id, }); category.push(item.id); }); column.push({ title: '签名信息', dataIndex: 'bidUserName', width: 200, }); column.push({ title: '操作', dataIndex: 'option', width: 250, valueType: 'option', render: (_: any, record: any) => { return ( <> { juese == 1 && rangeT ?<>    : null } { juese == 1 && rangeT && !rangeOverT && record.quoteDecryptStatus != 2 ? <> : null } {/* console.log(record)}>aaaa */} ) } }); //拼data res.data.suppliers != undefined ? res.data.suppliers.map((item1: any, index: any) => { let oneGys = {}; oneGys["key"] = index; oneGys["companyName"] = item1.companyName; oneGys["bidUserName"] = item1.bidUserName + "(" + item1.signTime + ")"; oneGys["sectionName"] = sectionName; oneGys["tendererId"] = item1.id;//投标人id,补录报价用 oneGys["contentDataId"] = item1.quoteId;//数据表id,补录报价用 oneGys["quoteDecryptStatus"] = item1.quoteDecryptStatus; category.map((item2: any, index: any) => { oneGys[item2] = item1.dataMap[item2]; }); data.push(oneGys); }) : null; //取tdoc id 分项报价用 tdocId = res.data.tdoc.id; } columnsKbSet(column); columnsKbDataSet(data); projectNameSet(projectName); projectNoSet(projectNo); sectionNameSet(sectionName); sectionNoSet(sectionNo); openTimeSet(openTime); openStateSet(openState); rangeSet(rangeT); rangeOverSet(rangeOverT); jmSet(decryptStatus); turnIdSet(turnId); configIdSet(configId); openRoomSet(openRoomId); importantSet(important); tdocIdSet(tdocId); }); //查询进度 let all: number, comp: number, fail: number, wait: number = 0; await jmRate({ turnId: turnId }).then((res) => { console.log(res); let data = res.data; if (data != undefined) { all = data['-1'] != undefined ? data['-1'] : 0; comp = data['1'] != undefined ? data['1'] : 0; fail = data['2'] != undefined ? data['2'] : 0; wait = data['0'] != undefined ? data['0'] : 0; } jmCompleteSet(comp); jmFailSet(fail); jmFileCountSet(all); jmWaitSet(wait); }); spinSet(false); } //开标记录表 const kbjl = () => { return ( <>
开标报价记录
{projectName} {projectNo} {sectionName} {sectionNo} {openTime}
tools} pagination={false} /> ) } //补录报价 const [formBlbj] = Form.useForm(); const blbj = () => { return ( repairVisSet(false)} onOk={async () => { console.log(formBlbj.getFieldsValue()); let verify = false; await formBlbj.validateFields().then(() => { verify = true; }).catch((errorInfo) => { console.log(errorInfo); }); if (verify) { const { newPrice, contentDataId, tendererId } = formBlbj.getFieldsValue(); const success = await updatePrice({ newPrice: newPrice, contentDataId: contentDataId, tendererId: tendererId }); if (success) { message.success('补录成功!'); repairVisSet(false); } else { message.error('补录失败!') } getTableData(); } }} >