Commit b4c3d4b2 authored by 卢均锐's avatar 卢均锐

feat: 采购竞价&在线竞价 整理代码 价格增加格式化

parent 7ba97f17
......@@ -20,7 +20,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/search/detail',
name: '采购竞价单详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -48,7 +48,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyAdd/detail',
name: '待新增采购竞价单详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -62,7 +62,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyExamineOne/detail',
name: '待审核采购竞价单(一级)详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -76,7 +76,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyExamineTwo/detail',
name: '待审核采购竞价单(二级)详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -90,7 +90,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readySubmit/detail',
name: '待提交采购竞价单详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -104,7 +104,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyExamineSignUp/detail',
name: '待审核竞价报名详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -126,7 +126,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyBid/detail',
name: '待竞价详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -140,7 +140,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readySubmitExamineResult/detail',
name: '待提交审核竞价结果详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -154,7 +154,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyExamineResultOne/detail',
name: '待审核竞价结果(一级)详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -168,7 +168,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyExamineResultTwo/detail',
name: '待审核竞价结果(二级)详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......@@ -182,7 +182,7 @@ export const purchaseBidRoute = [
{
path: '/memberCenter/procurementAbility/purchaseBid/readyConfirm/detail',
name: '待审核竞价结果详情',
component: '@/pages/transaction/purchaseAbility/purchaseBid/search/detail',
component: '@/pages/transaction/purchaseAbility/purchaseBid/detail',
hideInMenu: true,
noMargin: true,
},
......
import React, { useContext, useEffect, useState } from 'react';
import { Row, Col, Table, Button } from 'antd';
import { CaretDownOutlined } from '@ant-design/icons'
import React from 'react';
import { Row, Col, Button } from 'antd';
import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat';
import TrendTag from '../trendTag';
import styles from './index.less';
......@@ -26,7 +26,7 @@ const BtnItem: React.FC<BtnItemProps> = (props: any) => {
{detail?.peportPriceSum}</div>
<div className={styles.btnItemPrice}>
<div>
¥{detail?.sumPice}
¥{priceFormat(detail?.sumPice)}
<span>(含税)</span>
</div>
{formatTimeString(detail?.peportTime, 'HH:mm:ss')}
......@@ -38,11 +38,11 @@ const BtnItem: React.FC<BtnItemProps> = (props: any) => {
<div className={styles.btnItem2} style={{ borderColor: active ? '#00B37A' : '#F4F5F7' }}>
<div className={styles.info}>
{detail?.isOpenRanking ? `第 ${detail?.ranking} 名` : '不公开'}
<span>当前最低价:{detail?.isOpenPurchase ? `¥${detail?.minPrice}` : '不公开'}</span>
<span>当前最低价:{detail?.isOpenPurchase ? `¥${priceFormat(detail?.minPrice)}` : '不公开'}</span>
</div>
<div className={styles.box}>
<div className={styles.price}>
<div>¥{detail?.sumPice}<span>(含税)</span></div>
<div>¥{priceFormat(detail?.sumPice)}<span>(含税)</span></div>
{detail?.peportPriceSum}
</div>
<div className={styles.time}>
......@@ -57,7 +57,7 @@ const BtnItem: React.FC<BtnItemProps> = (props: any) => {
<div className={styles.btnItem3} style={{ borderColor: active ? '#00B37A' : '#F4F5F7' }}>
<div className={styles.title}>
<div>
¥{detail?.sumPice}
¥{priceFormat(detail?.sumPice)}
<span>(含税)</span>
</div>
{detail?.peportPriceSum}
......
import React, { useEffect, useState } from 'react';
import { ColumnType } from 'antd/lib/table/interface';
import { Row, Col, Space, Button, Typography, Table, Drawer } from 'antd';
import { priceFormat } from '@/utils/numberFomat';
import BtnItem from '../bidDetailBtnItem';
interface BidProgressDrawerProps {
......@@ -75,12 +78,12 @@ const BidProgressDrawer: React.FC<BidProgressDrawerProps> = (props: any) => {
title: '单价(含税)',
key: 'unitPrice',
dataIndex: 'unitPrice',
render: (text: any, record: any) => ${text}`,
render: (text: any, record: any) => ${priceFormat(text)}`,
}, {
title: '金额(含税)',
key: 'price',
dataIndex: 'price',
render: (text: any, record: any) => ${text}`,
render: (text: any, record: any) => ${priceFormat(text)}`,
}];
const chooseItem = (item: any, index: number) => {
......
.baseItem{
display: flex;
font-size: 12px;
margin-bottom: 16px;
.label{
width: 104px;
color: #909399;
margin: 0;
.baseItem {
display: flex;
font-size: 12px;
margin-bottom: 16px;
.label {
width: 104px;
color: #909399;
margin: 0;
}
.content {
flex: 1;
margin: 0;
img {
width: 24px;
}
.content{
flex: 1;
margin: 0;
.badge {
width: 24px;
height: 24px;
background: #EBECF0;
border-radius: 12px;
text-align: center;
line-height: 24px;
color: #909399;
font-size: 12px;
display: inline-block;
}
}
\ No newline at end of file
}
}
import React, { useRef } from 'react';
import { Typography, Space } from 'antd';
import { StandardTable } from 'god';
import { priceFormat } from '@/utils/numberFomat';
import level1 from '@/assets/icons/the_first.png';
import level2 from '@/assets/icons/the_second.png';
import level3 from '@/assets/icons/the_third.png';
import Card from '../../../card';
import selfStyles from './index.less';
const { Text } = Typography;
......@@ -64,12 +71,12 @@ const LowestQuotationRecord: React.FC<TableCommonLayoutProps> = (props: any) =>
{
title: '单价(含税)',
dataIndex: 'unitPrice',
render: (text: any, record: any) => <Text type='secondary'>¥{text}</Text>
render: (text: any, record: any) => <Text type='secondary'>¥{priceFormat(text)}</Text>
},
{
title: '金额(含税)',
dataIndex: 'price',
render: (text: any, record: any) => <Text type='secondary'>¥{text}</Text>
render: (text: any, record: any) => <Text type='secondary'>¥{priceFormat(text)}</Text>
},
];
......@@ -81,6 +88,20 @@ const LowestQuotationRecord: React.FC<TableCommonLayoutProps> = (props: any) =>
})
}
const _returnBadge = (number) => {
const _number = Number(number ?? 0);
switch (_number) {
case 1:
return <img src={level1} alt='第一名' />;
case 2:
return <img src={level2} alt='第二名' />;
case 3:
return <img src={level3} alt='第三名' />;
default:
return <div className={selfStyles.badge}>{_number}</div>
}
}
return (
<Card
id={layoutId}
......@@ -89,11 +110,11 @@ const LowestQuotationRecord: React.FC<TableCommonLayoutProps> = (props: any) =>
>
<div className={selfStyles.baseItem}>
<h5 className={selfStyles.label}>竞价排名: </h5>
<h5 className={selfStyles.content}></h5>
<h5 className={selfStyles.content}>{_returnBadge(effect?.ranking)}</h5>
</div>
<div className={selfStyles.baseItem}>
<h5 className={selfStyles.label}>报价总额(含税): </h5>
<h5 className={selfStyles.content}>{effect.sumAwardPrice}</h5>
<h5 className={selfStyles.content}>{effect?.reportPrice ? priceFormat(effect?.reportPrice) : '-'}</h5>
</div>
<StandardTable
currentRef={currentRef}
......
......@@ -4,6 +4,7 @@ import { ColumnType } from 'antd/lib/table/interface';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { Space, Button, Typography, Drawer } from 'antd';
import { priceFormat } from '@/utils/numberFomat';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import NiceForm from '@/components/NiceForm';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
......@@ -75,12 +76,12 @@ const QuotationDetailsDrawer = (props: any) => {
title: '单价(含税)',
key: 'unitPrice',
dataIndex: 'unitPrice',
render: (text: any, record: any) => ${text}`,
render: (text: any, record: any) => ${priceFormat(text)}`,
}, {
title: '金额(含税)',
key: 'price',
dataIndex: 'price',
render: (text: any, record: any) => ${text}`,
render: (text: any, record: any) => ${priceFormat(text)}`,
}];
/** 列表数据 */
......
import React, { useRef } from 'react';
import { StandardTable } from 'god';
import { priceFormat } from '@/utils/numberFomat';
import Card from '../../../card';
import { Space, Typography } from 'antd';
const { Text } = Typography;
......@@ -74,13 +77,13 @@ const TableCommonLayout: React.FC<TableCommonLayoutProps> = (props: any) => {
title: '单价(含税)',
key: 'unitPrice',
dataIndex: 'unitPrice',
render: (text: any, record: any) => <Text type='secondary'>¥{text}</Text>
render: (text: any, record: any) => <Text type='secondary'>¥{priceFormat(text)}</Text>
},
{
title: '金额(含税)',
key: 'price',
dataIndex: 'price',
render: (text: any, record: any) => <Text type='secondary'>¥{text}</Text>
render: (text: any, record: any) => <Text type='secondary'>¥{priceFormat(text)}</Text>
},
];
......
......@@ -9,12 +9,16 @@ interface TrendTagProps {
const TrendTag: React.FC<TrendTagProps> = (props: any) => {
const { ratio } = props;
return (
<div className={styles.trendTag}>
<CaretDownOutlined style={{ color: '#E63F3B', fontSize: '10px', marginRight: '2px' }} />
{ratio}%
</div>
)
if(ratio < 0){
return (
<div className={styles.trendTag}>
<CaretDownOutlined style={{ color: '#E63F3B', fontSize: '10px', marginRight: '2px' }} />
{Math.abs(ratio)}%
</div>
)
}else{
return null
}
}
export default TrendTag
\ No newline at end of file
......@@ -4,6 +4,7 @@ import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat';
import { Context } from '../../components/detail/components/context';
import PeripheralLayout from '../../components/detail';
......@@ -116,7 +117,7 @@ const SearchDetail = () => {
setResultEffect([
{
col: [
{ label: '中标金额(含税)', extra: data.sumAwardPrice, type: 'text' },
{ label: '中标金额(含税)', extra: priceFormat(data?.sumAwardPrice), type: 'text' },
{ label: '中标理由', extra: '价格最低', type: 'text' },
]
},
......@@ -133,13 +134,13 @@ const SearchDetail = () => {
{
col: [
{ label: '竞价时间', extra: `${formatTimeString(data.biddingStartTime)}${formatTimeString(data.biddingEndTime)}`, type: 'text' },
{ label: '起拍价', extra: data.startingPrice ? ${data.startingPrice}` : '-', type: 'text', tips: '初始起拍价,首次报价要低于或等于起拍价' },
{ label: '目标价', extra: data.targetPrice ? ${data.targetPrice}` : '-', type: 'text', tips: '期望成交价格' },
{ label: '起拍价', extra: data.startingPrice ? ${priceFormat(data.startingPrice)}` : '-', type: 'text', tips: '初始起拍价,首次报价要低于或等于起拍价' },
{ label: '目标价', extra: data.targetPrice ? ${priceFormat(data.targetPrice)}` : '-', type: 'text', tips: '期望成交价格' },
]
},
{
col: [
{ label: '最小价差', extra: data.minPrice ? ${data.minPrice}` : '-', type: 'text', tips: '每次报价降价幅度须大于或等于最小价差' },
{ label: '最小价差', extra: data.minPrice ? ${priceFormat(data.minPrice)}` : '-', type: 'text', tips: '每次报价降价幅度须大于或等于最小价差' },
{ label: '允许报价次数', extra: data.allowPurchaseCount, type: 'text', tips: '允许每个供应商最多可以报价的次数' },
]
},
......
......@@ -4,6 +4,9 @@ import level1 from '@/assets/icons/the_first.png';
import level2 from '@/assets/icons/the_second.png';
import level3 from '@/assets/icons/the_third.png';
import { priceFormat } from '@/utils/numberFomat';
import TrendTag from '../../../../components/detail/components/trendTag';
import styles from './index.less';
......@@ -44,9 +47,9 @@ const HistoryItem: React.FC<HistoryItemProps> = (props: any) => {
{detail?.offerRatio ? <TrendTag ratio={detail?.offerRatio} /> : ''}
</div>
<p>本次报价金额</p>
<p className={styles.currentPrice}><span>¥</span>{detail?.offerPrice || '-'}</p>
<p className={styles.currentPrice}><span>¥</span>{detail?.offerPrice ? priceFormat(detail?.offerPrice) : '-'}</p>
<div className={styles.row}>
<div className={styles.col} style={{ borderRight: '1px solid #EBECF0' }}>当前最低价:<span>{detail?.minLowPrice ?? '-'}</span></div>
<div className={styles.col} style={{ borderRight: '1px solid #EBECF0' }}>当前最低价:<span>{detail?.minLowPrice ? priceFormat(detail?.minLowPrice) : '-'}</span></div>
<div className={styles.col}>报价次数:<span>{detail?.offerCount ? detail?.offerCount : '-'}</span></div>
</div>
</div>
......
......@@ -47,15 +47,16 @@ const Detail = () => {
let _list = [];
let _offerList = [];
let _minList = [];
data?.offerLogs.forEach((item) => {
_offerList.push({type: 'offer',time: formatTimeString(item.offerTime, 'HH:mm:ss'),value: item.offerPrice});
let _offerLogs = data?.offerLogs ? [...data.offerLogs].reverse() : [];
_offerLogs.forEach((item) => {
_offerList.push({ type: 'offer', time: formatTimeString(item.offerTime, 'HH:mm:ss'), value: item.offerPrice });
})
_list.push({title: '报价金额',type: 'offer',list: _offerList});
if(data.isOpenPurchase){
data?.offerLogs.forEach((item) => {
_minList.push({type: 'min',time: formatTimeString(item.offerTime, 'HH:mm:ss'),value: item.minPrice});
_list.push({ title: '报价金额', type: 'offer', list: _offerList });
if (data.isOpenPurchase) {
_offerLogs.forEach((item) => {
_minList.push({ type: 'min', time: formatTimeString(item.offerTime, 'HH:mm:ss'), value: item.minPrice });
})
_list.push({title: '最低价',type: 'min',list: _minList});
_list.push({ title: '最低价', type: 'min', list: _minList });
}
setChartsList(_list)
})
......
......@@ -23,6 +23,7 @@
span{
font-size: 14px;
color: #303133;
margin-right: 4px;
}
}
.rowTime{
......
import React from 'react';
import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat';
import TrendTag from '../../../../components/detail/components/trendTag';
......@@ -20,8 +21,8 @@ const OfferItem: React.FC<OfferItemProps> = (props: any) => {
<div className={styles.right}>
<div className={styles.row}>
<div className={styles.rowPrice}>
<span>¥ {detail.offerPrice}</span>
当前最低价:{detail.isOpenPurchase ? `¥${detail.minPrice}` : '不公开'}
<span>¥ {priceFormat(detail.offerPrice)}</span>
当前最低价:{detail.isOpenPurchase ? `¥${priceFormat(detail.minPrice)}` : '不公开'}
</div>
{detail.offerCount}
</div>
......
......@@ -4,6 +4,9 @@ const { TabPane } = Tabs;
const { TextArea } = Input;
import { priceFormat } from '@/utils/numberFomat';
import styles from './index.less';
interface ConfirmBidResultModalProps {
......@@ -55,7 +58,7 @@ const ConfirmBidResultModal: React.FC<ConfirmBidResultModalProps> = (props: any)
const _returnDefaultAwardResults = useMemo(() => {
return record ? `${record?.purchaseMamberName ?? record?.createMemberName}${record.details}》竞价工作已经结束,中标人已经确定。现将中标结果公布如下:
中标供应商:${record.mamberName || record.memberName}(中标总金额(含税):${record.sumAwardPrice})。
中标供应商:${record.mamberName || record.memberName}(中标总金额(含税):${priceFormat(record.sumAwardPrice)})。
中标理由:价格最低` : '';
}, [record])
......
......@@ -6,6 +6,7 @@ import { CheckCircleOutlined } from '@ant-design/icons';
import { PublicApi } from '@/services/api';
import { GlobalConfig } from '@/global/config'
import { formatTimeString } from '@/utils'
import { priceFormat } from '@/utils/numberFomat';
import { Context } from '../../components/detail/components/context';
import PeripheralLayout from '../../components/detail';
......@@ -158,13 +159,13 @@ const SearchDetail = () => {
{
col: [
{ label: '竞价时间', extra: `${formatTimeString(data.biddingStartTime)}${formatTimeString(data.biddingEndTime)}`, type: 'text' },
{ label: '起拍价', extra: data.startingPrice ? ${data.startingPrice}` : '', type: 'text', tips: '初始起拍价,首次报价要低于或等于起拍价' },
{ label: '目标价', extra: data.targetPrice ? ${data.targetPrice}` : '', type: 'text', tips: '期望成交价格' },
{ label: '起拍价', extra: data.startingPrice ? ${priceFormat(data.startingPrice)}` : '', type: 'text', tips: '初始起拍价,首次报价要低于或等于起拍价' },
{ label: '目标价', extra: data.targetPrice ? ${priceFormat(data.targetPrice)}` : '', type: 'text', tips: '期望成交价格' },
]
},
{
col: [
{ label: '最小价差', extra: data.minPrice ? ${data.minPrice}` : '', type: 'text', tips: '每次报价降价幅度须大于或等于最小价差' },
{ label: '最小价差', extra: data.minPrice ? ${priceFormat(data.minPrice)}` : '', type: 'text', tips: '每次报价降价幅度须大于或等于最小价差' },
{ label: '允许报价次数', extra: data.allowPurchaseCount, type: 'text', tips: '允许每个供应商最多可以报价的次数' },
]
},
......
......@@ -4,6 +4,7 @@ import { Tabs, Button } from 'antd';
import level1 from '@/assets/icons/the_first.png';
// import level2 from '@/assets/icons/the_second.png';
// import level3 from '@/assets/icons/the_third.png';
import { priceFormat } from '@/utils/numberFomat';
import TriangleTag from '../triangleTag';
import RankRow from '../rankRow';
......@@ -38,7 +39,7 @@ const RankItem: React.FC<RankItemProps> = (props: any) => {
{dynamic?.memberName}
</h4>
<div className={styles.rankHeaderBoxInfo}>
<div className={styles.rankHeaderBoxInfoChild}>当前最低价:<span>{dynamic?.minPrice ? `¥ ${dynamic?.minPrice}` : '-'}</span></div>
<div className={styles.rankHeaderBoxInfoChild}>当前最低价:<span>{dynamic?.minPrice ? `¥ ${priceFormat(dynamic?.minPrice)}` : '-'}</span></div>
<div className={styles.rankHeaderBoxInfoChild}>报价次数:<span>{dynamic?.count ?? '-'}</span></div>
</div>
</div>
......
......@@ -3,6 +3,7 @@ import React, { useEffect, useState } from 'react';
import level1 from '@/assets/icons/the_first.png';
import level2 from '@/assets/icons/the_second.png';
import level3 from '@/assets/icons/the_third.png';
import { priceFormat } from '@/utils/numberFomat';
import IMBtn from '../../../../../components/detail/components/iMBtn';
......@@ -45,7 +46,7 @@ const RankRow: React.FC<RankRowProps> = (props: any) => {
{detail.ranking === 1 && <TriangleTag text='最低价' wrapStyle={{ backgroundColor: '#EA8000', marginLeft: '8px' }} bgcolor='#EA8000' direction='left' />}
</div>
<div className={styles.rankRowLeftBottom}>
¥{detail.sumPrice}
¥{priceFormat(detail.sumPrice)}
<div className={styles.rankRowLeftBottomTag}>{detail.count}</div>
</div>
</div>
......
......@@ -3,10 +3,12 @@ import { history } from 'umi';
import { Row, Col, Input, Drawer, Table, Space, Typography, message } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
import { priceFormat } from '@/utils/numberFomat';
import { PublicApi } from '@/services/api';
import BtnItem from '../../../../../../components/detail/components/bidDetailBtnItem';
import styles from './index.less';
import { PublicApi } from '@/services/api';
const { Text } = Typography;
......@@ -66,7 +68,7 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
{
title: '金额(含税)',
dataIndex: 'price',
render: (text: any, record: any) => <Text type='secondary'>{text && `¥${text}`}</Text>
render: (text: any, record: any) => <Text type='secondary'>{text && `¥${priceFormat(text)}`}</Text>
},
]
......
......@@ -2,6 +2,7 @@ import React, { useState } from 'react';
import { Button, Divider,message } from 'antd';
import { PlusOutlined } from '@ant-design/icons';
import { priceFormat } from '@/utils/numberFomat';
import useCountDown from '@/hooks/useCountDown';
import DetailBottomDrawer from './detailBottomDrawer'
......@@ -57,9 +58,9 @@ const StatuBox: React.FC<StatuBoxProps> = (props: any) => {
<Divider dashed style={{ color: '#EBECF0', margin: '6px 0' }} />
<h4>竞价规则</h4>
<div className={styles.statusBoxText}><div>报价规则:</div>项目总价(含税)</div>
<div className={styles.statusBoxText}><div>起拍价:</div>{detail.isStartingPrice ? `¥ ${detail?.startingPrice}`: '无' }</div>
{!hasBidBtn && <div className={styles.statusBoxText}><div>目标价:</div>{detail.isTargetPrice ? `¥ ${detail?.targetPrice}`: '无' }</div>}
<div className={styles.statusBoxText}><div>最小价差:</div>{detail.isMinPrice ? `¥ ${detail?.minPrice}`: '无' }</div>
<div className={styles.statusBoxText}><div>起拍价:</div>{detail.isStartingPrice ? `¥ ${priceFormat(detail?.startingPrice)}`: '无' }</div>
{!hasBidBtn && <div className={styles.statusBoxText}><div>目标价:</div>{detail.isTargetPrice ? `¥ ${priceFormat(detail?.targetPrice)}`: '无' }</div>}
<div className={styles.statusBoxText}><div>最小价差:</div>{detail.isMinPrice ? `¥ ${priceFormat(detail?.minPrice)}`: '无' }</div>
<div className={styles.statusBoxText}><div>允许报价次数:</div>{detail?.allowPurchaseCount}</div>
<div className={styles.statusBoxText}><div>报价排名:</div>{hasBidBtn ? (detail.isOpenPurchase ? '按项目总价排名' : '无' ): '按项目总价排名'}</div>
{hasBidBtn ? (
......
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