更新版本库

This commit is contained in:
ajaxfan
2021-01-16 11:29:42 +08:00
parent b42e0c1ddd
commit ff889c3db4
352 changed files with 39993 additions and 15507 deletions

View File

@ -0,0 +1,353 @@
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
} from "./service"
import style from "./components/style.less"
import BidPublicityResults from "@/pages/Calibration/BidPublicityResult/components/BidPublicityResults";
import {getProId} from "@/utils/session";
/*
* 招标公示开始
*/
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<any>(Math.random);
const [selectedRowsState, setSelectedRows] = useState<DataItem[]>([]);
const [updateVisible, setUpdateVisible] = useState<boolean>(false)
const [updateChange, setUpdateChange] = useState<string>('');//弹窗名
const [type, setType] = useState<any>('cease');//弹窗类型
const [pkId,setPkId] =useState<string>();//公示/邀请函id
const [tpId,setTpId] = useState<any>(getProId);//项目id
const [dataSource,setdataSource]= useState<any[]>([]); //公示列表数据
const [dataSourcePage,setDataSourcePage] = useState<any>(1);//当前页数
const [dataSourceAllNum,setDataSourceAllNum] = useState<any>();//总行数
const [dataSourceNum,setDataSourceNum] = useState<any>(20);//当前每页行数
const [ChangeNoticeListVisible,setChangeNoticeListVisible] =useState<boolean>(false); //变更公示列表窗状态
const [ChangeNoticeListdataSource,setChangeNoticeListdataSource]= useState<any[]>([]); //变更公示列表数据
const [pageloading,setPageloading]=useState<boolean>(false);//加载遮罩
const columns: ProColumns<DataItem>[] = [
{
title: '公示名称',
dataIndex: 'annoTitle',
key:'annoTitle',
align:'center',
},
{
title: '关联标段',
dataIndex: 'sectionNames',
key:'sectionNames',
align:'center',
},
{
title: '起草时间',
dataIndex: 'annoStartTime',
key:"annoStartTime",
align:'center',
valueType: 'dateTime',
},
{
title: '公示状态',
dataIndex: 'status',
key:"status",
align:'center',
valueEnum: {
1: { text: '起草', status: '' },
2: { text: '已提交', status: '' },
3: { text: '已审批', status: '' },
4: { text: '已拒绝', status: '' },
5: { text: '已发布', status: '' },
6: { text: '发布失败', status: '' },
},
},
{
title: '操作',
dataIndex: 'status',
key:"",
align:'center',
render: (_:any, record: any) => {
let btn1= (
<>
<a onClick={() => toEdit(record)}></a><Divider type="vertical"/>
<a onClick={() => handleApproval(record)}></a><Divider type="vertical"/>
<a onClick={() => handleRemove(record)}></a>
</>
);
let btn2= (
<>
<a onClick={() => toRead(record)}></a><Divider type="vertical"/>
</>
);
let btn3= (
<>
<a onClick={() => handleRelease(record)}></a><Divider type="vertical"/>
<a onClick={() => toRead(record)}></a>
</>
);
let btn4= (
<>
<a onClick={() => toEdit(record)}></a><Divider type="vertical"/>
<a onClick={() => handleApproval(record)}></a><Divider type="vertical"/>
<a onClick={() => handleRemove(record)}></a>
</>
);
let btn5= (
<>
<a onClick={() => toRead(record)}></a><Divider type="vertical"/>
<a onClick={() => handleReleaseAgain(record)}></a><Divider type="vertical"/>
</>
);
let btn6= (
<>
<a onClick={() => handleRelease(record)}></a><Divider type="vertical"/>
<a onClick={() => toRead(record)}></a>
</>
);
/*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!=null&&res.message=="success"){
setdataSource(res.data.records)
setDataSourceAllNum(res.total)
} else{
message.error('程序出错,亲您稍后在世');
}
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{
setUpdateVisible(true);
setUpdateChange('新建中标候选人公示')
setType("new");
}
}else {
message.error("查询标段信息失败:"+res.message)
}
})
}
/*编辑招标公示*/
const toEdit = (props: any) => {
setUpdateVisible(true);
setUpdateChange('编辑招标公示')
setPkId(props.id);
setType("edit");
}
/*查看招标公示*/
const toRead = (props: any) => {
setUpdateVisible(true);
setUpdateChange('查看招标公示')
setType("read");
setPkId(props.id);
}
/**
* 删除节点
* @param selectedRows
*/
const handleRemove = async (record: any) => {
setPageloading(true);
removeNotice(record.id).then(res=>{
if(res!=null&&res.message=="success"){
message.success('删除成功');
setRefresh(Math.random()+1);
}else {
message.error("删除失败:"+res.message);
}
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!=null&&res.data){
message.success('删除成功');
setRefresh(Math.random()+1);
}else {
message.error("删除失败:"+res.message);
}
setPageloading(false);
});
}
};
/**
* 发布
* */
const handleRelease = async (record:any) => {
setPageloading(true);
releaseNotice(record.id).then(res=>{
if(res!=null&&res.data){
message.success('发布成功');
setRefresh(Math.random()+1);
}else {
message.error('发布失败:'+res.message);
}
setPageloading(false);
});
};
/**
* 再次发布
* */
const handleReleaseAgain = async (record:any) => {
setPageloading(true);
releaseNoticeAgain(record.id).then(res=>{
if(res!=null&&res.data){
message.success('发布成功');
setRefresh(Math.random()+1);
}else {
message.error('发布失败:'+res.message);
}
setPageloading(false);
});
};
/**
* 发起审批
* */
const handleApproval = async (record:any) => {
setPageloading(true);
ApprovalNotice(record.id).then(res=>{
if(res!=null&&res.data){
message.success('发起审批成功');
setRefresh(Math.random()+1);
}else {
message.error('发起审批失败:'+res.message);
}
setPageloading(false);
});
};
return (
<>
<Card>
<Divider style={{margin: "8px 0px"}}/>
<div className={style.label}>
<UnorderedListOutlined style={{marginRight: "8px"}}/>
</div>
<ProTable
loading={pageloading}
toolBarRender={() => [
<Button key={"1"} type="primary" onClick={() => toEditAdd([])}></Button>,
<Button key={"2"} onClick={()=>{handleRemoveMore()}}></Button>,
]}
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))
}}
/>
</Card>
{updateVisible?(
<BidPublicityResults SX={()=>setRefresh(Math.random()+1)} titleName={updateChange} pkId={pkId} type={type} tpId={tpId} onCancel={() => setUpdateVisible(false)} modalVisible={updateVisible} />
):null}
</>
)
}
export default BidPublicityResult