Commit b8745bc0 authored by Bill's avatar Bill

Merge branch 'dev-srm' of 10.0.0.22:lingxi/lingxi-business-paltform into dev-srm

parents 9a13bbfd 9b8e7018
...@@ -149,6 +149,15 @@ export const paramsRenderFn = (value) => { ...@@ -149,6 +149,15 @@ export const paramsRenderFn = (value) => {
}) })
} }
if(value?.materielList?.length) {
value['materielList'] = _value['materielList'].map(item => {
return {
...item,
categoryId: item.categoryId.split(',').map(item => item.replaceAll('|',''))
}
})
}
return value return value
} }
......
...@@ -153,6 +153,15 @@ const AddNewBid:React.FC<AddNewBidProps> = (props) => { ...@@ -153,6 +153,15 @@ const AddNewBid:React.FC<AddNewBidProps> = (props) => {
} }
} }
}) })
// 转换品类字符
addSchemaAction.getFieldState('materielList', state => {
if(params.materielList.length) {
params['materielList'] = state.value.map(item => ({
...item,
categoryId: item.categoryId.map(item => `|${item}|`).join()
}))
}
})
let res = await PublicApi.postPurchaseInviteTenderSaveOrUpdateInviteTender(params) let res = await PublicApi.postPurchaseInviteTenderSaveOrUpdateInviteTender(params)
if(res.code === 1000) { if(res.code === 1000) {
history.goBack() history.goBack()
......
...@@ -145,7 +145,17 @@ const AddRemarkBidCommittee:React.FC<AddRemarkBidCommitteeProps> = (props) => { ...@@ -145,7 +145,17 @@ const AddRemarkBidCommittee:React.FC<AddRemarkBidCommitteeProps> = (props) => {
const conditionExtractExpret = async () => { const conditionExtractExpret = async () => {
const expertExtractQueryList = addSchemaAction.getFieldValue('expertExtractQueryList') const expertExtractQueryList = addSchemaAction.getFieldValue('expertExtractQueryList')
await PublicApi.postPurchaseExpertGetBatchExpertList(expertExtractQueryList) const { code, data } = await PublicApi.postPurchaseExpertGetBatchExpertList(expertExtractQueryList)
if(code === 1000) {
const fixedData = data.map(item => ({
id: item.id,
source: item.source,
status: 1,
expert: { ...item }
}))
console.log(fixedData, 'fff')
addSchemaAction.setFieldValue('expertExtractRecordList', fixedData)
}
} }
const addd = (<span>添加评标内容</span>) const addd = (<span>添加评标内容</span>)
......
...@@ -55,6 +55,7 @@ const CallForBidsSearchDetail: React.FC = () => { ...@@ -55,6 +55,7 @@ const CallForBidsSearchDetail: React.FC = () => {
// 勾选资格预审 才有资格预审信息 // 勾选资格预审 才有资格预审信息
if(!data?.isQualificationCheck) { if(!data?.isQualificationCheck) {
anchorTitleList.forEach((ele, index) => ele['title'] === '资格预审要求' && anchorTitleList.splice(index, 1)) anchorTitleList.forEach((ele, index) => ele['title'] === '资格预审要求' && anchorTitleList.splice(index, 1))
anchorTitleList.forEach((ele, index) => ele['title'] === '资格预审信息' && anchorTitleList.splice(index, 1))
} }
// 招标完成 才显示招标结果 // 招标完成 才显示招标结果
......
...@@ -22,13 +22,14 @@ ...@@ -22,13 +22,14 @@
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
margin-bottom: 2px; margin-bottom: 2px;
margin-top: 2px; // margin-top: 2px;
} }
} }
} }
} }
} }
background: #F4F5F7; background: #F4F5F7;
overflow-y: scroll;
.bidTableHead { .bidTableHead {
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
...@@ -52,12 +53,26 @@ ...@@ -52,12 +53,26 @@
text-align: center; text-align: center;
} }
} }
.materialInfo, .amountInfo, .throwBidInfo, .totalWrapper { .materialInfo {
overflow: hidden;
}
.materialInfo, .amountInfo, .throwBidInfo {
height: 162px; height: 162px;
background-color: #fff;
padding: 16px; padding: 16px;
position: relative; position: relative;
overflow: hidden; }
.totalContainer {
height: 162px;
padding: 16px;
}
.totalWrapper {
width: 100%;
height: 100%;
background-color: #fff;
padding-top: 8px;
}
.materialInfo, .amountInfo, .throwBidInfo {
background-color: #fff;
} }
.rankNumber { .rankNumber {
width: 32px; width: 32px;
......
...@@ -38,7 +38,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -38,7 +38,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
} }
} }
}).filter(Boolean).sort((a, b) => b.totalAmount - a.totalAmount) }).filter(Boolean).sort((a, b) => b.totalAmount - a.totalAmount)
console.log(_memberList, 'vvvvv')
/** 组合table列 */ /** 组合table列 */
let columns: any[] = [ let columns: any[] = [
{ {
...@@ -150,7 +150,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -150,7 +150,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
<Row gutter={[0, 4]}> <Row gutter={[0, 4]}>
<Col span={24}> <Col span={24}>
{/* header */} {/* header */}
<Row> <Row wrap={false}>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col>
{ {
...@@ -163,7 +163,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -163,7 +163,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
</Row> </Row>
{/* body */} {/* body */}
{ {
tableDataSource.map((item, index) => (<Row key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px', backgroundColor: '#fff'}}> tableDataSource.map((item, index) => (<Row key={`row_${index}`} wrap={false} gutter={[0, 4]} style={{margin: '0 4px'}}>
{ {
tableColumns.map((_item, _index) => { tableColumns.map((_item, _index) => {
const { title, dataIndex } = _item const { title, dataIndex } = _item
...@@ -220,11 +220,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -220,11 +220,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
} }
</Row>)) </Row>))
} }
{/* statistics */} {/* statistics 停用组件 */}
<Row gutter={[0, 4]} style={{margin: '0 4px'}}> {/* <Row gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={24}> <Col span={24}>
<TotalAmount datas={tableDataSource} columns={tableColumns} /> <TotalAmount datas={tableDataSource} columns={tableColumns} />
</Col> </Col>
</Row> */}
<Row wrap={false} gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6} style={{marginBottom: 0}}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价小计:</p></Col>
<Col>
<p>¥{ (tableDataSource.reduce((a, b) => a + b[item.dataIndex]['price'] * b.count, 0)).toFixed(2) }(含税)</p>
</Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价排名:</p></Col>
<Col><p>{index - 1}</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row>
<Row wrap={false}>
<Divider dashed={true} style={{margin: '0 4px'}} />
</Row>
<Row wrap={false} style={{margin: '0 4px'}}>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标数量:</p></Col>
<Col><p>{tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? 1 : 0), 0)}</p></Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标总额:</p></Col>
<Col><p>¥{(tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? (b[item.dataIndex]['price'] * b.count * b[item.dataIndex]['awardRate'] / 100) : 0), 0)).toFixed(2)}(含税)</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row> </Row>
</Col> </Col>
</Row> </Row>
......
...@@ -22,13 +22,14 @@ ...@@ -22,13 +22,14 @@
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
margin-bottom: 2px; margin-bottom: 2px;
margin-top: 2px; // margin-top: 2px;
} }
} }
} }
} }
} }
background: #F4F5F7; background: #F4F5F7;
overflow-y: scroll;
.bidTableHead { .bidTableHead {
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
...@@ -52,12 +53,26 @@ ...@@ -52,12 +53,26 @@
text-align: center; text-align: center;
} }
} }
.materialInfo, .amountInfo, .throwBidInfo, .totalWrapper { .materialInfo {
overflow: hidden;
}
.materialInfo, .amountInfo, .throwBidInfo {
height: 162px; height: 162px;
background-color: #fff;
padding: 16px; padding: 16px;
position: relative; position: relative;
overflow: hidden; }
.totalContainer {
height: 162px;
padding: 16px;
}
.totalWrapper {
width: 100%;
height: 100%;
background-color: #fff;
padding-top: 8px;
}
.materialInfo, .amountInfo, .throwBidInfo {
background-color: #fff;
} }
.rankNumber { .rankNumber {
width: 32px; width: 32px;
......
...@@ -150,7 +150,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -150,7 +150,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
<Row gutter={[0, 4]}> <Row gutter={[0, 4]}>
<Col span={24}> <Col span={24}>
{/* header */} {/* header */}
<Row> <Row wrap={false}>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col>
{ {
...@@ -163,7 +163,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -163,7 +163,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
</Row> </Row>
{/* body */} {/* body */}
{ {
tableDataSource.map((item, index) => (<Row key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px', backgroundColor: '#fff'}}> tableDataSource.map((item, index) => (<Row wrap={false} key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px'}}>
{ {
tableColumns.map((_item, _index) => { tableColumns.map((_item, _index) => {
const { title, dataIndex } = _item const { title, dataIndex } = _item
...@@ -220,11 +220,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -220,11 +220,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
} }
</Row>)) </Row>))
} }
{/* statistics */} {/* statistics 停用组件 */}
<Row gutter={[0, 4]} style={{margin: '0 4px'}}> {/* <Row gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={24}> <Col span={24}>
<TotalAmount datas={tableDataSource} columns={tableColumns} /> <TotalAmount datas={tableDataSource} columns={tableColumns} />
</Col> </Col>
</Row> */}
<Row wrap={false} gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6} style={{marginBottom: 0}}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价小计:</p></Col>
<Col>
<p>¥{ (tableDataSource.reduce((a, b) => a + b[item.dataIndex]['price'] * b.count, 0)).toFixed(2) }(含税)</p>
</Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价排名:</p></Col>
<Col><p>{index - 1}</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row>
<Row wrap={false}>
<Divider dashed={true} style={{margin: '0 4px'}} />
</Row>
<Row wrap={false} style={{margin: '0 4px'}}>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标数量:</p></Col>
<Col><p>{tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? 1 : 0), 0)}</p></Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标总额:</p></Col>
<Col><p>¥{(tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? (b[item.dataIndex]['price'] * b.count * b[item.dataIndex]['awardRate'] / 100) : 0), 0)).toFixed(2)}(含税)</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row> </Row>
</Col> </Col>
</Row> </Row>
......
...@@ -28,8 +28,9 @@ export const TotalAmount:React.FC<TotalAmountProps> = ({ ...@@ -28,8 +28,9 @@ export const TotalAmount:React.FC<TotalAmountProps> = ({
// }) // })
// }, [datas]) // }, [datas])
return <div className={style.totalWrapper}> return <div className={style.totalContainer}>
<Row> <Row wrap={false}>
<div className={style.totalWrapper}>
<Col span={4} lg={6}></Col> <Col span={4} lg={6}></Col>
<Col span={4} lg={6}></Col> <Col span={4} lg={6}></Col>
{ {
...@@ -50,9 +51,19 @@ export const TotalAmount:React.FC<TotalAmountProps> = ({ ...@@ -50,9 +51,19 @@ export const TotalAmount:React.FC<TotalAmountProps> = ({
</div> </div>
</Col>) : null) </Col>) : null)
} }
</div>
</Row> </Row>
<Divider dashed={true} style={{margin: 0, marginBottom: 8}} /> <Row wrap={false}>
<Row> <Col span={4} lg={6}><Divider dashed={true} style={{margin: 0, marginBottom: 8}} /></Col>
<Col span={4} lg={6}><Divider dashed={true} style={{margin: 0, marginBottom: 8}} /></Col>
{
columns.map((item, index) => index > 1 ? (<Col span={4} lg={6}>
<Divider dashed={true} style={{margin: 0, marginBottom: 8}} />
</Col>) : null)
}
</Row>
<Row wrap={false}>
<div className={style.totalWrapper}>
<Col span={4} lg={6}></Col> <Col span={4} lg={6}></Col>
<Col span={4} lg={6}></Col> <Col span={4} lg={6}></Col>
{ {
...@@ -71,6 +82,7 @@ export const TotalAmount:React.FC<TotalAmountProps> = ({ ...@@ -71,6 +82,7 @@ export const TotalAmount:React.FC<TotalAmountProps> = ({
</div> </div>
</Col>) : null) </Col>) : null)
} }
</div>
</Row> </Row>
</div> </div>
} }
......
.card-list { .card-list {
font-size: 12px; font-size: 12px;
// line-height: 20px;
// margin-top: 24px;
// border: 1px solid #F4F5F7;
// padding: 12px;
p { p {
margin-bottom: 8px; margin-bottom: 8px;
} }
...@@ -22,13 +18,14 @@ ...@@ -22,13 +18,14 @@
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
margin-bottom: 2px; margin-bottom: 2px;
margin-top: 2px; // margin-top: 2px;
} }
} }
} }
} }
} }
background: #F4F5F7; background: #F4F5F7;
overflow-y: scroll;
.bidTableHead { .bidTableHead {
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
...@@ -52,12 +49,26 @@ ...@@ -52,12 +49,26 @@
text-align: center; text-align: center;
} }
} }
.materialInfo, .amountInfo, .throwBidInfo, .totalWrapper { .materialInfo {
overflow: hidden;
}
.materialInfo, .amountInfo, .throwBidInfo {
height: 162px; height: 162px;
background-color: #fff;
padding: 16px; padding: 16px;
position: relative; position: relative;
overflow: hidden; }
.totalContainer {
height: 162px;
padding: 16px;
}
.totalWrapper {
width: 100%;
height: 100%;
background-color: #fff;
padding-top: 8px;
}
.materialInfo, .amountInfo, .throwBidInfo {
background-color: #fff;
} }
.rankNumber { .rankNumber {
width: 32px; width: 32px;
......
import React, { useContext, useState, useEffect } from 'react' import React, { useContext, useState, useEffect } from 'react'
import { Row, Col } from 'antd' import { Row, Col, Divider } from 'antd'
import MellowCard from '@/components/MellowCard' import MellowCard from '@/components/MellowCard'
import { ReadyConfirmBidContext } from '@/pages/procurement/_public/bid/context'; import { ReadyConfirmBidContext } from '@/pages/procurement/_public/bid/context';
import style from './index.less' import style from './index.less'
...@@ -121,7 +121,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -121,7 +121,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
<Row gutter={[0, 4]}> <Row gutter={[0, 4]}>
<Col span={24}> <Col span={24}>
{/* header */} {/* header */}
<Row> <Row wrap={false}>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col>
{ {
...@@ -134,12 +134,12 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -134,12 +134,12 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
</Row> </Row>
{/* body */} {/* body */}
{ {
tableDataSource.map((item, index) => (<Row key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px', backgroundColor: '#fff'}}> tableDataSource.map((item, index) => (<Row wrap={false} key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px'}}>
{ {
tableColumns.map((_item, _index) => { tableColumns.map((_item, _index) => {
const { title, dataIndex } = _item const { title, dataIndex } = _item
if(title === '采购物料' && item[dataIndex]) { if(title === '采购物料' && item[dataIndex]) {
return (<Col span={4} lg={6} style={{paddingTop: 0, marginTop: 0}}> return (<Col span={4} lg={6} style={{paddingTop: 0}}>
<div className={style.materialInfo}> <div className={style.materialInfo}>
<span className={style.rankNumber}>{index+1}</span> <span className={style.rankNumber}>{index+1}</span>
<div className={style['card-list']}> <div className={style['card-list']}>
...@@ -191,11 +191,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -191,11 +191,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
} }
</Row>)) </Row>))
} }
{/* statistics */} {/* statistics 停用组件 */}
<Row gutter={[0, 4]} style={{margin: '0 4px'}}> {/* <Row wrap={false} gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={24}> <Col span={24}> */}
<TotalAmount datas={tableDataSource} columns={tableColumns} /> {/* <TotalAmount datas={tableDataSource} columns={tableColumns} /> */}
</Col> {/* </Col>
</Row> */}
<Row wrap={false} gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6} style={{marginBottom: 0}}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价小计:</p></Col>
<Col>
<p>¥{ (tableDataSource.reduce((a, b) => a + b[item.dataIndex]['price'] * b.count, 0)).toFixed(2) }(含税)</p>
</Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价排名:</p></Col>
<Col><p>{index - 1}</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row>
<Row wrap={false}>
<Divider dashed={true} style={{margin: '0 4px'}} />
</Row>
<Row wrap={false} style={{margin: '0 4px'}}>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标数量:</p></Col>
<Col><p>{tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? 1 : 0), 0)}</p></Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标总额:</p></Col>
<Col><p>¥{(tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? (b[item.dataIndex]['price'] * b.count * b[item.dataIndex]['awardRate'] / 100) : 0), 0)).toFixed(2)}(含税)</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row> </Row>
</Col> </Col>
</Row> </Row>
......
...@@ -19,6 +19,7 @@ import ParticipateInfo from '../components/participateInfo'; ...@@ -19,6 +19,7 @@ import ParticipateInfo from '../components/participateInfo';
import BidConfirm from '../components/bidConfirm'; import BidConfirm from '../components/bidConfirm';
import ModalForm from '@/components/ModalForm'; import ModalForm from '@/components/ModalForm';
import { createFormActions } from '@formily/antd'; import { createFormActions } from '@formily/antd';
import Item from 'antd/lib/list/Item';
const modalActions = createFormActions() const modalActions = createFormActions()
...@@ -37,15 +38,23 @@ const ReadyQualifityCheckedDetail: React.FC = () => { ...@@ -37,15 +38,23 @@ const ReadyQualifityCheckedDetail: React.FC = () => {
const onSubmit = () => { const onSubmit = () => {
console.log(paramsTableData) console.log(paramsTableData)
let validate = false let errorValidate = false
let rigthRate: boolean[] = []
paramsTableData.forEach(element => { paramsTableData.forEach(element => {
// 校验是否授标
Object.values(element).forEach((_ele: any) => { Object.values(element).forEach((_ele: any) => {
if(_ele?.isAward) validate = true if(_ele?.isAward) errorValidate = true
}) })
// 校验授标100%
const rate = Object.values(element).reduce((a: any, b: any) => a + (b.isAward ? b.awardRate : 0), 0)
rigthRate.push(rate === 100)
}) })
if(!validate) { if(!errorValidate) {
return message.error('请授标') return message.error('请授标')
} }
if(rigthRate.some(item => !item)) {
return message.error('请正确授标,授标比例为100%')
}
currentRef.current.setVisible(true) currentRef.current.setVisible(true)
} }
...@@ -84,6 +93,7 @@ const ReadyQualifityCheckedDetail: React.FC = () => { ...@@ -84,6 +93,7 @@ const ReadyQualifityCheckedDetail: React.FC = () => {
submitTender: tempTenderObject, submitTender: tempTenderObject,
} }
}) })
console.log(params)
const { code } = await PublicApi.postPurchaseInviteTenderSubmitCheckFinishTender(params) const { code } = await PublicApi.postPurchaseInviteTenderSubmitCheckFinishTender(params)
if (code === 1000) { if (code === 1000) {
......
...@@ -22,13 +22,14 @@ ...@@ -22,13 +22,14 @@
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
margin-bottom: 2px; margin-bottom: 2px;
margin-top: 2px; // margin-top: 2px;
} }
} }
} }
} }
} }
background: #F4F5F7; background: #F4F5F7;
overflow-y: scroll;
.bidTableHead { .bidTableHead {
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
...@@ -52,12 +53,26 @@ ...@@ -52,12 +53,26 @@
text-align: center; text-align: center;
} }
} }
.materialInfo, .amountInfo, .throwBidInfo, .totalWrapper { .materialInfo {
overflow: hidden;
}
.materialInfo, .amountInfo, .throwBidInfo {
height: 162px; height: 162px;
background-color: #fff;
padding: 16px; padding: 16px;
position: relative; position: relative;
overflow: hidden; }
.totalContainer {
height: 162px;
padding: 16px;
}
.totalWrapper {
width: 100%;
height: 100%;
background-color: #fff;
padding-top: 8px;
}
.materialInfo, .amountInfo, .throwBidInfo {
background-color: #fff;
} }
.rankNumber { .rankNumber {
width: 32px; width: 32px;
......
...@@ -149,7 +149,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -149,7 +149,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
<Row gutter={[0, 4]}> <Row gutter={[0, 4]}>
<Col span={24}> <Col span={24}>
{/* header */} {/* header */}
<Row> <Row wrap={false}>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购物料</p></Col>
<Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col> <Col span={4} lg={6}><p className={style.bidTableHead}>采购数量</p></Col>
{ {
...@@ -162,7 +162,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -162,7 +162,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
</Row> </Row>
{/* body */} {/* body */}
{ {
tableDataSource.map((item, index) => (<Row key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px', backgroundColor: '#fff'}}> tableDataSource.map((item, index) => (<Row wrap={false} key={`row_${index}`} gutter={[0, 4]} style={{margin: '0 4px'}}>
{ {
tableColumns.map((_item, _index) => { tableColumns.map((_item, _index) => {
const { title, dataIndex } = _item const { title, dataIndex } = _item
...@@ -219,11 +219,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -219,11 +219,62 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
} }
</Row>)) </Row>))
} }
{/* statistics */} {/* statistics 停用组件 */}
<Row gutter={[0, 4]} style={{margin: '0 4px'}}> {/* <Row gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={24}> <Col span={24}>
<TotalAmount datas={tableDataSource} columns={tableColumns} /> <TotalAmount datas={tableDataSource} columns={tableColumns} />
</Col> </Col>
</Row> */}
<Row wrap={false} gutter={[0, 4]} style={{margin: '0 4px'}}>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6} style={{marginBottom: 0}}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6} style={{marginBottom: 0}}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价小计:</p></Col>
<Col>
<p>¥{ (tableDataSource.reduce((a, b) => a + b[item.dataIndex]['price'] * b.count, 0)).toFixed(2) }(含税)</p>
</Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>报价排名:</p></Col>
<Col><p>{index - 1}</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row>
<Row wrap={false}>
<Divider dashed={true} style={{margin: '0 4px'}} />
</Row>
<Row wrap={false} style={{margin: '0 4px'}}>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
<Col span={4} lg={6}><div className={style.totalWrapper}></div></Col>
{
tableColumns.map((item, index) => index > 1 ? (<Col span={4} lg={6}>
<div className={style.totalWrapper}>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标数量:</p></Col>
<Col><p>{tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? 1 : 0), 0)}</p></Col>
</Row>
</div>
<div className={style['card-list']}>
<Row>
<Col span={8}><p className={style['card-list_title']}>授标总额:</p></Col>
<Col><p>¥{(tableDataSource.reduce((a, b) => a + (b[item.dataIndex]['isAward'] ? (b[item.dataIndex]['price'] * b.count * b[item.dataIndex]['awardRate'] / 100) : 0), 0)).toFixed(2)}(含税)</p></Col>
</Row>
</div>
</div>
</Col>) : null)
}
</Row> </Row>
</Col> </Col>
</Row> </Row>
......
...@@ -175,7 +175,7 @@ const ContrastPrice = () => { ...@@ -175,7 +175,7 @@ const ContrastPrice = () => {
if (link !== 'preview' && path === 'confirmResults') { if (link !== 'preview' && path === 'confirmResults') {
setBid({ setBid({
id, id,
awardResults: ` ${dataSource.createMemberName}${dataSource.details}》评标工作已经结束,中标人已经确定。现将中标结果公布如下:\n中标供应商: ${companyJoinUs.join(',')}\n中标理由:${dataSource.awardComments}`, awardResults: ` ${dataSource.createMemberName}${dataSource.details}》评标工作已经结束,中标人已经确定。现将中标结果公布如下:\n中标供应商: ${companyJoinUs.join(',')}\n中标理由:${dataSource.awardComments || ""}`,
content: `贵公司参与了我公司《${dataSource.details}》竞标。在我公司综合各投标单位的基本情况,并进行充分技术交流后,经评标委员会综合评定,贵公司未能中标。我公司对贵公司的积极参与和支持深表感谢!希望下次合作成功。`, content: `贵公司参与了我公司《${dataSource.details}》竞标。在我公司综合各投标单位的基本情况,并进行充分技术交流后,经评标委员会综合评定,贵公司未能中标。我公司对贵公司的积极参与和支持深表感谢!希望下次合作成功。`,
}) })
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment