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(); const IPassDecode = getIPassDecode();
//获取用户数据 //获取用户数据
let data = getSessionUserData(); let data = getSessionUserData();
//获取比选一阶段二次项目,自定义流程,当前供应商
const isBxOneSecondCustom = sessionStorage.getItem("isBxOneSecondCustom");
//获取评审室id //获取评审室id
const roomId = getRoomId(); const roomId = getRoomId();
const [list, setList] = useState(); const [list, setList] = useState();
@ -289,7 +291,7 @@ const BiddingRoom = (props) => {
//供应商是否用ipass解密判断 //供应商是否用ipass解密判断
IPassDecode == 0 ? null : supplierList.splice(2, 1) 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) 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 [singUserId, singUserIdSet] = useState<any>([]); //评审专家id
const userId = getSessionUserData().userId; const userId = getSessionUserData().userId;
const role = getSessionRoleData().roleCode; const role = getSessionRoleData().roleCode;
//获取比选一阶段二次项目,自定义流程,当前供应商
const isBxOneSecondCustom = sessionStorage.getItem("isBxOneSecondCustom");
function showConfirm(mes?: any, confirmFlag?: boolean) { function showConfirm(mes?: any, confirmFlag?: boolean) {
//环节流转提示 //环节流转提示
mes == '是否开启' ? (mes = mes + instTurnName + '') : mes; mes == '是否开启' ? (mes = mes + instTurnName + '') : mes;
@ -454,6 +456,7 @@ const Index: React.FC<{}> = () => {
selectedKeys={selectedKeysTransfer} selectedKeys={selectedKeysTransfer}
onChange={onChange} onChange={onChange}
onSelectChange={onSelectChange} onSelectChange={onSelectChange}
disabled={isBxOneSecondCustom == "1"}
selectAllLabels={[, (info: { selectedCount: number, totalCount: number }) => <> selectAllLabels={[, (info: { selectedCount: number, totalCount: number }) => <>
{ {
info.selectedCount != 0 && `${info.selectedCount}/` 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 React, { PureComponent } from 'react';
import {Divider,Button,Form,Card,Tabs,Table,Tooltip,Input,Select,Row,Col,message} from 'antd'; import { Divider, Button, Form, Card, Tabs, Table, Tooltip, Input, Select, Row, Col, message } from 'antd';
import './index.less'; import './index.less';
import { connect } from "dva"; 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 { routerRedux } from 'dva/router';
import { getURLInformation } from '@/utils/CommonUtils'; import { getURLInformation } from '@/utils/CommonUtils';
import { btnAuthority } from '@/utils/authority'; import { btnAuthority } from '@/utils/authority';
@connect(({ bidev,loading }) => ({ import { getMaxTurnSortSupplier } from './components/service';
@connect(({ bidev, loading }) => ({
...bidev, ...bidev,
supplierlistLoading:loading.effects['bidev/fetchSupplierList'], supplierlistLoading: loading.effects['bidev/fetchSupplierList'],
})) }))
class supplier extends PureComponent { class supplier extends PureComponent {
state={ state = {
pageNo:1, pageNo: 1,
pageSize:10, pageSize: 10,
tpId: getProId(), tpId: getProId(),
sectionName:"采购包", sectionName: "采购包",
sectionType:"评审", sectionType: "评审",
defId: getDefId(), defId: getDefId(),
loading: false, loading: false,
} }
componentDidMount(){ componentDidMount() {
//确定显示字段名称 //确定显示字段名称
let sectionName = "采购包"; let sectionName = "采购包";
let sectionType = "评审"; let sectionType = "评审";
let proMethod = getProMethod(); let proMethod = getProMethod();
if(proMethod == "procurement_mode_1" || proMethod == "procurement_mode_2") { if (proMethod == "procurement_mode_1" || proMethod == "procurement_mode_2") {
sectionName= "标段"; sectionName = "标段";
sectionType= "评标"; sectionType = "评标";
} else if(proMethod == "procurement_mode_5" || proMethod == "procurement_mode_6") { } else if (proMethod == "procurement_mode_5" || proMethod == "procurement_mode_6") {
sectionName= "采购包"; sectionName = "采购包";
sectionType= "谈判"; sectionType = "谈判";
} else if(proMethod == "procurement_mode_4") { } else if (proMethod == "procurement_mode_4") {
sectionName= "包件"; sectionName = "包件";
} }
this.setState({ this.setState({
sectionName, sectionName,
@ -40,99 +41,111 @@ class supplier extends PureComponent {
}) })
this.setState({ this.setState({
tpId: getProId() tpId: getProId()
}) })
const { dispatch }=this.props; const { dispatch } = this.props;
// const {pageNo,pageSize}=this.state; // const {pageNo,pageSize}=this.state;
const params={ const params = {
pageNo:1, pageNo: 1,
pageSize:10, pageSize: 10,
// roomType:this.props.match.params.roomType, // roomType:this.props.match.params.roomType,
roomType: getURLInformation('roomType'), roomType: getURLInformation('roomType'),
tpId:getProId()//项目id tpId: getProId()//项目id
} }
dispatch({ dispatch({
type:"bidev/fetchSupplierList", type: "bidev/fetchSupplierList",
payload:{...params} payload: { ...params }
}) })
} }
handleRedirect=async(record)=>{ handleRedirect = async (record) => {
sessionStorage.setItem("roomId",record.id) sessionStorage.setItem("roomId", record.id)
sessionStorage.setItem("roomStatus",record.status) sessionStorage.setItem("roomStatus", record.status)
sessionStorage.setItem("groupId",record.chatGroupId) sessionStorage.setItem("groupId", record.chatGroupId)
sessionStorage.setItem("expertGroupId",record.expertChatGroupId) sessionStorage.setItem("expertGroupId", record.expertChatGroupId)
this.setState({loading: true}) this.setState({ loading: true })
await getQuotationMethodById(record.id) 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')) // this.props.dispatch(routerRedux.push('/ProjectLayout/EvaRoom'))
window.open('/EvaRoom') window.open('/EvaRoom')
} }
render(){ render() {
const { supplierList,supplierlistLoading}=this.props; const { supplierList, supplierlistLoading } = this.props;
const { pageNo,pageSize,tpId ,sectionType,sectionName,defId,loading}=this.state; const { pageNo, pageSize, tpId, sectionType, sectionName, defId, loading } = this.state;
const pagination = { const pagination = {
current: pageNo, current: pageNo,
total: supplierList && supplierList.total , total: supplierList && supplierList.total,
// showSizeChanger: true, // showSizeChanger: true,
showQuickJumper:true, showQuickJumper: true,
showTotal: (total,range) => `${total} 条记录,第${range.slice(',')[0]}-${range.slice(',')[1]}`, showTotal: (total, range) => `${total} 条记录,第${range.slice(',')[0]}-${range.slice(',')[1]}`,
onChange:(page, pageSize)=>{ onChange: (page, pageSize) => {
this.setState({ this.setState({
pageNo:page, pageNo: page,
pageSize:pageSize, pageSize: pageSize,
}); });
const params={ const params = {
pageNo:page, pageNo: page,
pageSize:pageSize, pageSize: pageSize,
// roomType:this.props.match.params.roomType, // roomType:this.props.match.params.roomType,
roomType: getURLInformation('roomType'), roomType: getURLInformation('roomType'),
tpId:tpId//项目id tpId: tpId//项目id
} }
this.props.dispatch({ this.props.dispatch({
type:"bidev/fetchSupplierList", type: "bidev/fetchSupplierList",
payload:{...params} payload: { ...params }
}) })
}, },
onShowSizeChange: (current, pageSize) => { onShowSizeChange: (current, pageSize) => {
this.setState({ this.setState({
pageNo:1, pageNo: 1,
pageSize:pageSize, pageSize: pageSize,
}); });
const params={ const params = {
pageNo:1, pageNo: 1,
pageSize:pageSize, pageSize: pageSize,
// roomType:this.props.match.params.roomType, // roomType:this.props.match.params.roomType,
roomType: getURLInformation('roomType'), roomType: getURLInformation('roomType'),
tpId:tpId//项目id tpId: tpId//项目id
} }
this.props.dispatch({ this.props.dispatch({
type:"bidev/fetchSupplierList", type: "bidev/fetchSupplierList",
payload:{...params} payload: { ...params }
}) })
} }
} }
const columns=[ const columns = [
{ title: '序号', dataIndex: 'id', width: '10%', {
render:(text, record, index)=>{ title: '序号', dataIndex: 'id', width: '10%',
return (index+1) 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%', { title: `${sectionName}名称`, dataIndex: 'sectionName', width: '10%' },
render:(text, record, index)=>{ { 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}</> 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%', { title: `${sectionType}开始时间`, dataIndex: 'openTime', width: '10%' },
render:(text, record, index)=>{ {
title: '状态', dataIndex: 'status', width: '10%',
render: (text, record, index) => {
let txt = record.status let txt = record.status
return txt == 0 || txt == 1 ? `准备${sectionType}` : (txt == 2 ? `正在${sectionType}` : (txt == 3 ? `${sectionType}结束`: null)) 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></> title: '操作', dataIndex: 'operation', width: '10%',
}} render: (text, record, index) => {
return <><Button type="text" onClick={() => { this.handleRedirect(record) }} hidden={btnAuthority(["ebtp-supplier"])}>进入{sectionType}</Button></>
}
}
] ]
return <> return <>
@ -140,7 +153,7 @@ class supplier extends PureComponent {
<Table <Table
loading={supplierlistLoading || loading} loading={supplierlistLoading || loading}
columns={columns} columns={columns}
dataSource={supplierList!="" && supplierList.records} dataSource={supplierList != "" && supplierList.records}
pagination={pagination} pagination={pagination}
size="small" size="small"
/> />