2.17 修改比选一阶段二次项目自定义流程的供应商报价逻辑

This commit is contained in:
jl-zhoujl2
2023-02-17 16:21:15 +08:00
parent ee8c88bf40
commit 1d43a430f0
4 changed files with 125 additions and 97 deletions

View File

@ -31,6 +31,8 @@ const BiddingRoom = (props) => {
const IPassDecode = getIPassDecode();
//获取用户数据
let data = getSessionUserData();
//获取比选一阶段二次项目,自定义流程,当前供应商
const isBxOneSecondCustom = sessionStorage.getItem("isBxOneSecondCustom");
//获取评审室id
const roomId = getRoomId();
const [list, setList] = useState();
@ -289,7 +291,7 @@ const BiddingRoom = (props) => {
//供应商是否用ipass解密判断
IPassDecode == 0 ? null : supplierList.splice(2, 1)
//供应商是否显示评审进展判断(招标类不显示)
isBidProcess ? supplierList.splice(1, 1) : null
isBidProcess && (isBxOneSecondCustom != "1") ? supplierList.splice(1, 1) : null
//项目经理澄清说明判断
NoClarification.findIndex(item => item == defId) == -1 ? null : managerList.splice(5, 1)
//专家算数错误调整判断

View File

@ -43,6 +43,8 @@ const Index: React.FC<{}> = () => {
const [singUserId, singUserIdSet] = useState<any>([]); //评审专家id
const userId = getSessionUserData().userId;
const role = getSessionRoleData().roleCode;
//获取比选一阶段二次项目,自定义流程,当前供应商
const isBxOneSecondCustom = sessionStorage.getItem("isBxOneSecondCustom");
function showConfirm(mes?: any, confirmFlag?: boolean) {
//环节流转提示
mes == '是否开启' ? (mes = mes + instTurnName + '') : mes;
@ -454,6 +456,7 @@ const Index: React.FC<{}> = () => {
selectedKeys={selectedKeysTransfer}
onChange={onChange}
onSelectChange={onSelectChange}
disabled={isBxOneSecondCustom == "1"}
selectAllLabels={[, (info: { selectedCount: number, totalCount: number }) => <>
{
info.selectedCount != 0 && `${info.selectedCount}/`

View File

@ -93,5 +93,15 @@ export async function saveClosingReason(param: any) {
});
}
/**
* 比选一阶段二次项目,获取最新轮的供应商
* @param param
*/
export async function getMaxTurnSortSupplier(param: any) {
return request(`/api/biz-service-ebtp-tender/v1/supplier_register/turnSort/max/${param}`, {
method: 'GET',
});
}

View File

@ -1,38 +1,39 @@
import React, {PureComponent} from 'react';
import {Divider,Button,Form,Card,Tabs,Table,Tooltip,Input,Select,Row,Col,message} from 'antd';
import React, { PureComponent } from 'react';
import { Divider, Button, Form, Card, Tabs, Table, Tooltip, Input, Select, Row, Col, message } from 'antd';
import './index.less';
import { connect } from "dva";
import { getProId,getProMethod,getDefId, getQuotationMethodById } from '@/utils/session';
import { getProId, getProMethod, getDefId, getQuotationMethodById, getSessionUserData } from '@/utils/session';
import { routerRedux } from 'dva/router';
import { getURLInformation } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority';
@connect(({ bidev,loading }) => ({
import { getMaxTurnSortSupplier } from './components/service';
@connect(({ bidev, loading }) => ({
...bidev,
supplierlistLoading:loading.effects['bidev/fetchSupplierList'],
supplierlistLoading: loading.effects['bidev/fetchSupplierList'],
}))
class supplier extends PureComponent {
state={
pageNo:1,
pageSize:10,
tpId: getProId(),
sectionName:"采购包",
sectionType:"评审",
state = {
pageNo: 1,
pageSize: 10,
tpId: getProId(),
sectionName: "采购包",
sectionType: "评审",
defId: getDefId(),
loading: false,
}
componentDidMount(){
componentDidMount() {
//确定显示字段名称
let sectionName = "采购包";
let sectionType = "评审";
let proMethod = getProMethod();
if(proMethod == "procurement_mode_1" || proMethod == "procurement_mode_2") {
sectionName= "标段";
sectionType= "评标";
} else if(proMethod == "procurement_mode_5" || proMethod == "procurement_mode_6") {
sectionName= "采购包";
sectionType= "谈判";
} else if(proMethod == "procurement_mode_4") {
sectionName= "包件";
if (proMethod == "procurement_mode_1" || proMethod == "procurement_mode_2") {
sectionName = "标段";
sectionType = "评标";
} else if (proMethod == "procurement_mode_5" || proMethod == "procurement_mode_6") {
sectionName = "采购包";
sectionType = "谈判";
} else if (proMethod == "procurement_mode_4") {
sectionName = "包件";
}
this.setState({
sectionName,
@ -40,99 +41,111 @@ class supplier extends PureComponent {
})
this.setState({
tpId: getProId()
tpId: getProId()
})
const { dispatch }=this.props;
const { dispatch } = this.props;
// const {pageNo,pageSize}=this.state;
const params={
pageNo:1,
pageSize:10,
const params = {
pageNo: 1,
pageSize: 10,
// roomType:this.props.match.params.roomType,
roomType: getURLInformation('roomType'),
tpId:getProId()//项目id
tpId: getProId()//项目id
}
dispatch({
type:"bidev/fetchSupplierList",
payload:{...params}
type: "bidev/fetchSupplierList",
payload: { ...params }
})
}
handleRedirect=async(record)=>{
sessionStorage.setItem("roomId",record.id)
sessionStorage.setItem("roomStatus",record.status)
sessionStorage.setItem("groupId",record.chatGroupId)
sessionStorage.setItem("expertGroupId",record.expertChatGroupId)
this.setState({loading: true})
handleRedirect = async (record) => {
sessionStorage.setItem("roomId", record.id)
sessionStorage.setItem("roomStatus", record.status)
sessionStorage.setItem("groupId", record.chatGroupId)
sessionStorage.setItem("expertGroupId", record.expertChatGroupId)
this.setState({ loading: true })
await getQuotationMethodById(record.id)
this.setState({loading: false})
const res = await getMaxTurnSortSupplier(record.id);//获取最新轮次的供应商信息
if (record.bxOneSecondProjectStatus && (record.instFlowType == 2) && (getSessionUserData()?.userId == res?.data[0].bidUserId)) {//比选一阶段二次项目,选择自定义流程
sessionStorage.setItem("isBxOneSecondCustom", "1")
}
this.setState({ loading: false })
// this.props.dispatch(routerRedux.push('/ProjectLayout/EvaRoom'))
window.open('/EvaRoom')
}
render(){
const { supplierList,supplierlistLoading}=this.props;
const { pageNo,pageSize,tpId ,sectionType,sectionName,defId,loading}=this.state;
render() {
const { supplierList, supplierlistLoading } = this.props;
const { pageNo, pageSize, tpId, sectionType, sectionName, defId, loading } = this.state;
const pagination = {
current: pageNo,
total: supplierList && supplierList.total ,
total: supplierList && supplierList.total,
// showSizeChanger: true,
showQuickJumper:true,
showTotal: (total,range) => `${total} 条记录,第${range.slice(',')[0]}-${range.slice(',')[1]}`,
onChange:(page, pageSize)=>{
showQuickJumper: true,
showTotal: (total, range) => `${total} 条记录,第${range.slice(',')[0]}-${range.slice(',')[1]}`,
onChange: (page, pageSize) => {
this.setState({
pageNo:page,
pageSize:pageSize,
pageNo: page,
pageSize: pageSize,
});
const params={
pageNo:page,
pageSize:pageSize,
const params = {
pageNo: page,
pageSize: pageSize,
// roomType:this.props.match.params.roomType,
roomType: getURLInformation('roomType'),
tpId:tpId//项目id
tpId: tpId//项目id
}
this.props.dispatch({
type:"bidev/fetchSupplierList",
payload:{...params}
type: "bidev/fetchSupplierList",
payload: { ...params }
})
},
onShowSizeChange: (current, pageSize) => {
this.setState({
pageNo:1,
pageSize:pageSize,
pageNo: 1,
pageSize: pageSize,
});
const params={
pageNo:1,
pageSize:pageSize,
const params = {
pageNo: 1,
pageSize: pageSize,
// roomType:this.props.match.params.roomType,
roomType: getURLInformation('roomType'),
tpId:tpId//项目id
tpId: tpId//项目id
}
this.props.dispatch({
type:"bidev/fetchSupplierList",
payload:{...params}
type: "bidev/fetchSupplierList",
payload: { ...params }
})
}
}
const columns=[
{ title: '序号', dataIndex: 'id', width: '10%',
render:(text, record, index)=>{
return (index+1)
}},
{ title: `${sectionName}名称`, dataIndex: 'sectionName', width: '10%'},
{ title: `${sectionName}编号`, dataIndex: 'sectionNum', width: '10%'},
{ title: `${sectionType}次数`, dataIndex: 'roomSort', width: '10%',
render:(text, record, index)=>{
const columns = [
{
title: '序号', dataIndex: 'id', width: '10%',
render: (text, record, index) => {
return (index + 1)
}
},
{ title: `${sectionName}名称`, dataIndex: 'sectionName', width: '10%' },
{ title: `${sectionName}编号`, dataIndex: 'sectionNum', width: '10%' },
{
title: `${sectionType}次数`, dataIndex: 'roomSort', width: '10%',
render: (text, record, index) => {
return defId == "recruit_multi" ? <>{text}</> : record.reviewMark == 1 ? <>第{text + record.reviewSort}次{sectionType}</> : <>{text}{sectionType}</>
}},
{ title: `${sectionType}开始时间`, dataIndex: 'openTime', width: '10%'},
{ title: '状态', dataIndex: 'status', width: '10%',
render:(text, record, index)=>{
}
},
{ title: `${sectionType}开始时间`, dataIndex: 'openTime', width: '10%' },
{
title: '状态', dataIndex: 'status', width: '10%',
render: (text, record, index) => {
let txt = record.status
return txt == 0 || txt == 1 ? `准备${sectionType}` : (txt == 2 ? `正在${sectionType}` : (txt == 3 ? `${sectionType}结束`: null))
}},
{ title: '操作', dataIndex: 'operation', width: '10%',
render:(text, record, index)=>{
return <><Button type="text" onClick={()=>{this.handleRedirect(record)}} hidden={btnAuthority(["ebtp-supplier"])}>进入{sectionType}</Button></>
}}
return txt == 0 || txt == 1 ? `准备${sectionType}` : (txt == 2 ? `正在${sectionType}` : (txt == 3 ? `${sectionType}结束` : null))
}
},
{
title: '操作', dataIndex: 'operation', width: '10%',
render: (text, record, index) => {
return <><Button type="text" onClick={() => { this.handleRedirect(record) }} hidden={btnAuthority(["ebtp-supplier"])}>进入{sectionType}</Button></>
}
}
]
return <>
@ -140,7 +153,7 @@ class supplier extends PureComponent {
<Table
loading={supplierlistLoading || loading}
columns={columns}
dataSource={supplierList!="" && supplierList.records}
dataSource={supplierList != "" && supplierList.records}
pagination={pagination}
size="small"
/>