3.10 工程代码同步master

This commit is contained in:
jl-zhoujl2
2022-03-10 14:24:13 +08:00
parent 41ab55a4ac
commit 62f6b07ee2
914 changed files with 143121 additions and 29110 deletions

View File

@ -1,8 +1,9 @@
import React, {useEffect, useState} from 'react';
import {Button, Card, Collapse, Divider, List, message, Modal, Table} from "antd";
import React, { useEffect, useState } from 'react';
import { Button, Card, Collapse, Input, List, message, Modal, Space, Spin } from "antd";
import ProTable from "@ant-design/pro-table";
import {getBidAssessmentResultList, getBidAssessmentResultsList, pushBidAssessmentResult} from "./service"
import {getProId} from "@/utils/session";
import { getBidAssessmentResultsList } from "./service"
import { getDefId, getProId, getProMethod } from "@/utils/session";
import { isEmpty } from '@/utils/CommonUtils';
/*接收定标结果*/
@ -10,116 +11,54 @@ const BidReceiveCalibrationResult: React.FC<{}> = (props) => {
const [pageloading, setPageloading] = useState<boolean>(false);
const [ListData, setListData] = useState<any>();
const [activeKey, setActiveKey] = useState<any>([]);
const [proID,setProID] = useState<any>(getProId);
const [proID, setProID] = useState<any>(getProId);
const [spintype, setSpintype] = useState<boolean>(false);
//查询条件-包件名称
const [name, setName] = useState<string>('');
const [Refresh, setRefresh] = useState<number>(0);
const columns: any = [
{
title: '排名',
dataIndex: 'sort',
valueType: 'text'
},
{
title: '供应商名称',
dataIndex: 'companyName',
valueType: 'text'
},
{
title: '报价(元)',
dataIndex: 'price',
valueType: 'text'
},
{
title: '评审价(元)',
dataIndex: 'priceReview',
valueType: 'text'
},
{
title: '商务分',
dataIndex: 'businessScore',
valueType: 'text'
},
{
title: '技术分',
dataIndex: 'technicalScore',
valueType: 'text'
},
{
title: '服务分',
dataIndex: 'serviceScore',
valueType: 'text'
},
{
title: '价格分',
dataIndex: 'priceScore',
valueType: 'text'
},
{
title: '综合得分',
dataIndex: 'totalScore',
valueType: 'text'
},
{
title: '拟签约金额(不含增值税)(元)',
dataIndex: 'contractedMoney',
valueType: 'text'
},
{
title: '增值税金额(元)',
dataIndex: 'taxRatePrice',
valueType: 'text'
},
{
title: '是否通过初步评审',
dataIndex: 'firstRvwResult',
valueType: 'text',
valueEnum: {
0: {text: '未通过'},
1: {text: '通过'},
},
},
/*未完成*/
{
title: '是否中标',
dataIndex: 'winnerCandidate',
valueType: 'text',
valueEnum: {
0: {text: '否'},
1: {text: '是'},
},
},
/*未完成 end*/
{
title: '备注',
dataIndex: 'remarks',
align: 'center',
render: (_: any, record: any) => {
return(
<>
<a onClick={() =>showRemarks(record.remarks)}></a><Divider type="vertical"/>
</>
)
}
},
]
const showRemarks=(Msg:any)=>{
if(Msg!=null&&Msg!=""){
Modal.info({
title: 'This is a notification message',
content: (
<div>
<p>Msg</p>
</div>
),
onOk() {},
});
} else{
message.success("无备注信息!")
}
let name1 = "中标";
let name2 = "评标";
let name3 = "标段";
let TpPackageName = "";
let type1 = false;
let type2 = false;
let type3 = false;
let type4 = false;
let proDict = getProMethod();
let defId = getDefId();
if (proDict == "procurement_mode_1" || proDict == "procurement_mode_2") {
TpPackageName = "招标";
name1 = "中标";
name2 = "评标";
name3 = "标段";
} else if (proDict == "procurement_mode_3") {
TpPackageName = "比选";
name1 = "中选";
name2 = "评审";
name3 = "采购包";
} else if (proDict == "procurement_mode_5" || proDict == "procurement_mode_6") {
TpPackageName = "谈判";
name1 = "中选";
name2 = "评审";
name3 = "采购包";
} else if (proDict == "procurement_mode_4") {
TpPackageName = "招募";
name1 = "中选";
name2 = "评审";
name3 = "包件";
type1 = true;
type2 = true;
type3 = true;
type4 = true;
} else if (proDict == "procurement_mode_7") {
TpPackageName = "询价";
name1 = "中选";
name2 = "评审";
name3 = "采购包";
type3 = true;
type4 = true;
}
const changeActiveKey = (param: string) => {
@ -136,53 +75,51 @@ const BidReceiveCalibrationResult: React.FC<{}> = (props) => {
}
useEffect(() => {
/*projectType :2 评标 1 资审*/
getBidAssessmentResultsList({"tpId":proID,"projectType":"2"}).then(res => {
if (res != undefined && res.message == "success") {
setSpintype(true);
getBidAssessmentResultsList({ "tpId": proID, "roomType": "2", "sectionName": name }).then(res => {
if (res.code == 200) {
setListData(res.data);
}else{
message.warn("获取信息失败,请稍后")
}
}).finally(() => {
setSpintype(false)
})
}, [proID])
}, [proID, Refresh])
const {Panel} = Collapse;
const { Panel } = Collapse;
return (
<>
<List
grid={{
gutter: 16,
xs: 1,
sm: 1,
md: 1,
lg: 1,
xl: 1,
xxl: 1,
}}
key={Math.random()}
itemLayout="vertical"
dataSource={ListData}
renderItem={item => (
<List.Item key={Math.random()}>
<Card
title={item.sectionName}
extra={
<>
<Button onClick={() => changeActiveKey(item.sectionId)}> /</Button>
</>
}
key={Math.random()}
>
<Collapse
activeKey={activeKey}
bordered={false}
ghost={true}
key={Math.random()}
>
<Spin spinning={spintype}>
<Card bordered={false} bodyStyle={{ padding: '0px 24px' }}>
<div style={{ textAlign: 'right' }}>
<Space style={{ margin: '16px 0px' }}>
<Input type="text" placeholder={`${name3}名称`} value={name} onChange={(event) => setName(event.target.value)} />
<Button type="primary" key='c' onClick={() => {
setRefresh(Refresh + 1);
}}></Button>
<Button key='reload' onClick={() => {
setName('');
setRefresh(Refresh + 1);
}}></Button>
</Space>
</div>
<List
grid={{
gutter: 16,
xs: 1,
sm: 1,
md: 1,
lg: 1,
xl: 1,
xxl: 1,
}}
itemLayout="vertical"
dataSource={ListData}
renderItem={(item: any, index: any) => (
<Collapse defaultActiveKey={index == 0 ? item.sectionId : ""} className="calibration-panel">
<Panel
header={""} showArrow={false} key={item.sectionId}>
header={item.sectionName} key={item.sectionId}>
<List
grid={{
gutter: 16,
@ -194,39 +131,123 @@ const BidReceiveCalibrationResult: React.FC<{}> = (props) => {
xxl: 1,
}}
itemLayout="vertical"
key={Math.random()}
dataSource={item.assesList}
renderItem={item1 => (
<List.Item key={Math.random()}>
renderItem={(item1: any) => {
//标段上的报价类型确认 1-% 0-元
let sectionQuot = item?.quotationMethodDict == 'quotation_method_2' || item?.quotationMethodDict == 'quotation_method_3' ? '1' : '0'
const columns: any = [
{
title: '排名',
dataIndex: 'sort',
valueType: 'text'
},
{
title: '供应商名称',
dataIndex: 'companyName',
valueType: 'text'
},
{
hideInTable: type1,
title: proDict == 'procurement_mode_7' ? '报价总金额净价(元)' : sectionQuot == '1' ? '报价(%' : '报价(元)',
dataIndex: 'price',
valueType: 'text'
},
{
hideInTable: type2,
title: proDict == 'procurement_mode_7' ? '报价总金额含税价(元)' : sectionQuot == '1' ? '评审价(%' : '评审价(元)',
dataIndex: 'priceReview',
valueType: 'text'
},
{
title: '商务分',
dataIndex: 'businessScore',
valueType: 'text'
},
{
title: '技术分',
dataIndex: 'technicalScore',
valueType: 'text'
},
{
title: '服务分',
dataIndex: 'serviceScore',
valueType: 'text'
},
{
title: '价格分',
dataIndex: 'priceScore',
valueType: 'text'
},
{
title: '综合得分',
dataIndex: 'totalScore',
valueType: 'text'
},
{
hideInTable: type3,
title: '拟签约金额(不含增值税)(元)',
dataIndex: 'contractedMoney',
valueType: 'text'
},
{
hideInTable: type4,
title: '增值税金额(元)',
dataIndex: 'taxRatePrice',
valueType: 'text'
},
{
title: '是否通过初步评审',
dataIndex: 'firstRvwResult',
valueType: 'text',
valueEnum: {
0: { text: '未通过' },
1: { text: '通过' },
},
},
/*未完成*/
{
title: '是否' + name1,
dataIndex: 'winnerCandidate',
valueType: 'text',
valueEnum: {
1: { text: name1 },
2: { text: '候选' },
3: { text: '落选' },
},
},
]
return (
<ProTable
key={Math.random()}
bordered={true}
size={"small"}
loading={pageloading}
search={false}
options={false}
columns={columns}
dataSource={item1.winnerList}
toolbar={{
title: "第:" + item1.assesRoomSort + "轮",
title: item1.againEvaluationSort == 'null' || isEmpty(item1.againEvaluationSort) ? null : `${item1.againEvaluationSort}次重审`,
}}
rowKey={() => Math.random().toString()}
pagination={{
pageSizeOptions:['10','20','50'],
showSizeChanger: false,
defaultPageSize: 10,
}}
/>
</List.Item>
)}
)
}
}
>
</List>
</Panel>
</Collapse>
</Card>
</List.Item>
)}
/>
)}
/>
</Card>
</Spin>
</>
)