Commit 665bed38 authored by 卢均锐's avatar 卢均锐

feat: 采购竞价,对接接口,业务逻辑

parent 1f578402
......@@ -14,20 +14,21 @@ const transforType = {
}
interface BidDetailLayoutProps {
detail?: any
detail?: any,
btnType?: number
}
const BidDetailLayout: React.FC<BidDetailLayoutProps> = (props: any) => {
const { detail } = props;
const { detail, btnType } = props;
const { awardProcess = [], materiels = [] } = detail;
const [showMore, setShowMore] = useState<boolean>(false);
const [activeItem, setActiveItem] = useState<any>(awardProcess[0] || { detailss: [] });
const [activeItem, setActiveItem] = useState<any>(awardProcess?.[0] || { detailss: [] });
const dataSource = showMore ? [...activeItem.detailss].splice(0, 4) : activeItem.detailss;
useEffect(() => {
awardProcess && setActiveItem(awardProcess[0] || { detailss: [] })
},[awardProcess])
awardProcess && setActiveItem(awardProcess?.[0] || { detailss: [] })
}, [detail])
const columns: ColumnType<any>[] = [
{
......@@ -59,7 +60,7 @@ const BidDetailLayout: React.FC<BidDetailLayoutProps> = (props: any) => {
render: (text: any, record: any) => (
<Space direction='vertical'>
<Text type='secondary'>{transforType[text]}</Text>
<Text type='secondary'>{record.taxRate}</Text>
<Text type='secondary'>{`${record.taxRate ? `${record.taxRate}%` : ''}`}</Text>
</Space>
)
},
......@@ -93,17 +94,21 @@ const BidDetailLayout: React.FC<BidDetailLayoutProps> = (props: any) => {
{awardProcess?.map((item, index) => {
return (
<Col span={7} key={item.id} onClick={() => { chooseItem(item) }}>
<BtnItem detail={item} active={item.id === activeItem.id} />
<BtnItem btnType={btnType} detail={item} active={item.id === activeItem.id} />
</Col>
)
})}
</Row>
<Table dataSource={dataSource} columns={columns} pagination={false} />
{!showMore && dataSource.length >4 && <Button type="link" block onClick={() => { setShowMore(true) }}>显示更多</Button>}
{!showMore && dataSource.length > 4 && <Button type="link" block onClick={() => { setShowMore(true) }}>显示更多</Button>}
</Card>
</div>
)
}
BidDetailLayout.defaultProps = {
btnType: 1
}
export default BidDetailLayout
\ No newline at end of file
import React, { useRef, useState } from 'react';
import { Row, Col, Table, Button, Typography, Space } from 'antd';
import { StandardTable } from 'god';
import Card from '../../../card';
import EyePreview from '@/components/EyePreview';
import selfStyles from './index.less';
const { Text } = Typography;
const transforType = {
1: '是',
0: '否'
}
export interface TableCommonLayoutProps {
layoutId?: string,
layoutTitle?: string,
......@@ -21,43 +30,46 @@ const LowestQuotationRecord: React.FC<TableCommonLayoutProps> = (props: any) =>
const columns = [
{
title: '物料编号/名称',
key: 'number',
dataIndex: 'number',
render: (text: any, record: any) => (
<Space direction='vertical'>
<Text type='secondary'>{text}</Text>
<Text type='secondary'>{record.name}</Text>
</Space>
)
},
{
title: '规格型号',
key: 'model',
dataIndex: 'model',
},
{
title: '品类',
key: 'category',
dataIndex: 'category',
},
{
title: '品牌',
key: 'brand',
dataIndex: 'brand',
},
{ title: '规格型号', dataIndex: 'model', },
{ title: '品类', dataIndex: 'category', },
{ title: '品牌', dataIndex: 'brand', },
{
title: '采购数量/单位',
key: 'unit',
dataIndex: 'unit',
render: (text: any, record: any) => (
<Space direction='vertical'>
<Text type='secondary'>{record.purchaseCount}</Text>
<Text type='secondary'>{text}</Text>
</Space>
)
},
{
title: '含税/税率',
key: 'purchaseCount',
dataIndex: 'purchaseCount',
render: (text: any, record: any) => (
<Space direction='vertical'>
<Text type='secondary'>{transforType[text]}</Text>
<Text type='secondary'>{`${record.taxRate ? `${record.taxRate}%` : ''}`}</Text>
</Space>
)
},
{
title: '单价(含税)',
key: 'purchaseCount',
dataIndex: 'purchaseCount',
render: (text: any, record: any) => <Text type='secondary'>¥{text}</Text>
},
{
title: '金额(含税)',
key: 'purchaseCount',
dataIndex: 'purchaseCount',
render: (text: any, record: any) => <Text type='secondary'>¥{text}</Text>
},
];
......
......@@ -284,10 +284,12 @@ const SearchDetail = () => {
const _returnLowestQuotationRecordLayout = () => {
return (
<LowestQuotationRecordLayout
id={id}
number={number}
layoutId='quotationRecordLayout'
layoutTitle='最低报价记录'
fetch={PublicApi.getPurchaseOnlineBiddingMinimumBidding}
extra={<Button type='link' onClick={() => {setProgressVisible(false)}}>查看竞价过程</Button>}
extra={<Button type='link' onClick={() => {setProgressVisible(true)}}>查看竞价过程</Button>}
/>
)
}
......
......@@ -68,7 +68,7 @@ const Detail = () => {
</Col>
</Row>
<Row>
<BidDetailLayout detail={dataSource} />
<BidDetailLayout detail={dataSource} btnType={2} />
</Row>
</div>
</div>
......
......@@ -52,8 +52,7 @@ const SubmitResultModal:React.FC<SubmitResultModalProps> = (props: any) => {
const formSubmit = () => {
form.validateFields().then(res => {
onOk && onOk();
onCancel && onCancel();
onOk && onOk(res.opinion,files);
})
}
......
......@@ -45,11 +45,11 @@ const RankItem: React.FC<RankItemProps> = (props: any) => {
</div>
<Tabs defaultActiveKey="1">
<TabPane tab="报价排名" key="1">
{queryPriceDynamicsData?.map((item, index) => <RankRow detail={item} key={item.id} />)}
{queryPriceDynamicsData?.map((item, index) => <RankRow detail={item} key={`queryPriceDynamicsData_${item.id}`} />)}
<Button type="link" block onClick={() => { setShowMoreQuery(true) }}>显示更多</Button>
</TabPane>
<TabPane tab="报名会员" key="2">
{signupMembersData?.map((item, index) => <RankRow detail={item} key={item.id} rowType={2} />)}
{signupMembersData?.map((item, index) => <RankRow detail={item} key={`signupMembersData_${item.id}`} rowType={2} />)}
<Button type="link" block onClick={() => { setShowMoreSign(true) }}>显示更多</Button>
</TabPane>
</Tabs>
......
import React, { useState, useEffect } from 'react';
import React, { useState, useEffect, useMemo } from 'react';
import { history } from 'umi';
import { Row, Col, Input, Drawer, Table, Space, Typography } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
......@@ -23,8 +23,11 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
const [dataSource, setDataSource] = useState<any>(materiels);
const [dataSource2, setDataSource2] = useState<any>(materiels);
useEffect(() => {
setDataSource(materiels)
}, [materiels])
if (visible) {
setDataSource(materiels)
setDataSource2(materiels);
}
}, [visible])
const columns: ColumnType<any>[] = [
{
title: '物料编号/名称',
......@@ -69,7 +72,9 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
const _changeTax = (record: any, value: any) => {
let _dataSource = [...dataSource2];
const _i = _dataSource.findIndex((item) => item.id === record.id);
_dataSource[_i].taxRate = value;
let _item = { ..._dataSource[_i] };
_item.taxRate = value;
_dataSource[_i] = _item;
setDataSource(_dataSource);
setDataSource2(_dataSource)
}
......@@ -77,19 +82,21 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
const _changeUnitPrice = (record: any, value: any) => {
let _dataSource = [...dataSource2];
const _i = _dataSource.findIndex((item) => item.id === record.id);
_dataSource[_i].unitPrice = value;
_dataSource[_i].price = _calcTotal(value, _dataSource[_i].purchaseCount);
setDataSource2(_dataSource)
let _item = { ..._dataSource[_i] };
_item.unitPrice = value;
_item.price = _calcTotal(value, _dataSource[_i].purchaseCount);
_dataSource[_i] = _item;
setDataSource(_dataSource);
setDataSource2(_dataSource)
}
const _calcTotal = (price: any, purchaseCount: any) => {
return Number(price) * Number(purchaseCount) || 0;
}
const _calcCurrentTotal = () => {
return dataSource2?.reduce((total, cur) => total + cur.price, 0) || 0;
}
const _calcCurrentTotal = useMemo(() => {
return dataSource2?.reduce((total, cur) => total + (cur.price || 0), 0) || 0;
}, [dataSource2])
const chooseItem = (item?: any) => {
if (item) {
......@@ -127,12 +134,12 @@ const DetailBottomDrawer: React.FC<DetailBottomDrawerProps> = (props: any) => {
closeIcon={<div>取消报价</div>}
>
<Row gutter={[8, 8]} style={{ marginBottom: '10px' }}>
<Col span={7} onClick={() => { chooseItem() }}>
<BtnItem btnType={3} detail={{ sumPice: _calcCurrentTotal(), peportPriceSum: 1 }} active={!activeItem} onOk={bidOk} onCancle={onClose} />
<Col span={7} key={'BtnItem_0'} onClick={() => { chooseItem() }}>
<BtnItem btnType={3} detail={{ sumPice: _calcCurrentTotal, peportPriceSum: dataSource.length + 1 }} active={!activeItem} onOk={bidOk} onCancle={onClose} />
</Col>
{awardProcess?.map((item, index) => {
return (
<Col span={7} key={item.id} onClick={() => { chooseItem(item) }}>
<Col span={7} key={`BtnItem_${item.id}`} onClick={() => { chooseItem(item) }}>
<BtnItem btnType={2} detail={item} active={item.id === activeItem.id} />
</Col>
)
......
import React, { useState } from 'react';
import { Row, Col, Button, Divider } from 'antd';
import { Row, Col, Button, Divider,message } from 'antd';
import { PlusOutlined } from '@ant-design/icons';
import useCountDown from '@/hooks/useCountDown';
......@@ -22,12 +22,21 @@ const StatuBox: React.FC<StatuBoxProps> = (props: any) => {
const { hasBidBtn, detail } = props;
const [hour, minute, second, stillRun] = useCountDown(detail?.biddingEndTime / 1000);
const [visible, setVisible] = useState<boolean>(false);
const _handleBid = () => {
if(detail.allowPurchaseCount > detail.offerCount){
setVisible(true)
}else{
message.error('当前报价次数已超过允许报价次数!');
}
}
return (
<>
<div className='ant-card ant-card-bordered'>
<div className='ant-card-body'>
<div className={styles.statusBox}>
<div className={styles.statusBoxStatus}>当前状态:<span>竞价中</span></div>
<div className={styles.statusBoxStatus}>当前状态:<span>{stillRun ? `竞价中` : '竞价结束'}</span></div>
<p className={styles.statusBoxTips}>距离竞价结束还剩</p>
<div className={styles.statusBoxTime}>
<div className={styles.statusBoxTimeChild}>
......@@ -54,7 +63,7 @@ const StatuBox: React.FC<StatuBoxProps> = (props: any) => {
<div className={styles.statusBoxText}><div>允许报价次数:</div>{detail?.allowPurchaseCount}</div>
<div className={styles.statusBoxText}><div>报价排名:</div>按项目总价排名</div>
{hasBidBtn ? (
<Button type="primary" icon={<PlusOutlined />} block onClick={() => { setVisible(true) }} size={'large'} style={{ margin: '15px 0' }}>我要报价</Button>
<Button disabled={!stillRun} type="primary" icon={<PlusOutlined />} block onClick={_handleBid} size={'large'} style={{ margin: '15px 0' }}>我要报价</Button>
) : (
<>
<div className={styles.statusBoxText}><div>公开最低报价:</div>{transforType[detail?.isOpenPurchase]}</div>
......
......@@ -27,6 +27,7 @@ const Management = () => {
const [dynamic, setDynamic] = useState<any>({});
const [queryPriceDynamics, setQueryPriceDynamics] = useState<any>([]);
const [signupMembers, setSignupMembers] = useState<any>([]);
const [awardProcess, setAwardProcess] = useState<any>([]);
const fetchDataSource = async () => {
const params = {
......@@ -75,6 +76,14 @@ const Management = () => {
const { data } = res;
setSignupMembers(data);
})
PublicApi.getPurchaseBiddingBiddingMateriel({ ..._params }).then(res => {
if (res.code !== 1000) {
history.goBack();
return;
}
const { data } = res;
setAwardProcess(data);
})
}
useEffect(() => {
......@@ -102,7 +111,7 @@ const Management = () => {
</Col>
</Row>
<Row>
<BidDetailLayout detail={dataSource} />
<BidDetailLayout detail={{awardProcess : awardProcess}} />
</Row>
</Col>
</Row>
......
......@@ -45,7 +45,7 @@ const ReadyConfirm = () => {
key: 'createMemberName',
dataIndex: 'createMemberName',
render: (text: any, record: any) => (
<EyePreview url={`/memberCenter/procurementAbility/offter/addOffter/view?id=${record.id}&number=${text}`}>{text}</EyePreview>
<EyePreview url={`/shop?shopId=${btoa(JSON.stringify({ shopId: record.memberShopId, memberId: record.memberId }))}`}>{text}</EyePreview>
)
}, {
title: '竞价开始/结束时间',
......
......@@ -39,7 +39,7 @@ const ReadyExamineResultOne = () => {
key: 'createMemberId',
dataIndex: 'createMemberId',
render: (text: any, record: any) => (
<EyePreview url={`/memberCenter/procurementAbility/offter/addOffter/view?id=${record.id}&number=${text}`}>{record.createMemberName}</EyePreview>
<EyePreview url={`/shop?shopId=${btoa(JSON.stringify({ shopId: record.memberShopId, memberId: record.memberId }))}`}>{record.createMemberName}</EyePreview>
)
}, {
title: '竞价开始/结束时间',
......
......@@ -40,7 +40,7 @@ const ReadyExamineResultTwo = () => {
key: 'createMemberId',
dataIndex: 'createMemberId',
render: (text: any, record: any) => (
<EyePreview url={`/memberCenter/procurementAbility/offter/addOffter/view?id=${record.id}&number=${text}`}>{record.createMemberName}</EyePreview>
<EyePreview url={`/shop?shopId=${btoa(JSON.stringify({ shopId: record.memberShopId, memberId: record.memberId }))}`}>{record.createMemberName}</EyePreview>
)
}, {
title: '竞价开始/结束时间',
......
......@@ -45,7 +45,7 @@ const ReadyExamineSignUp = () => {
dataIndex: 'signUpTime',
render: (text: any, record: any) => (
<Space direction='vertical'>
<EyePreview url={`/memberCenter/procurementAbility/offter/addOffter/view?id=${record.id}&number=${record.biddingNo}`}>{record.createMemberName}</EyePreview>
<EyePreview url={`/shop?shopId=${btoa(JSON.stringify({ shopId: record.memberShopId, memberId: record.memberId }))}`}>{record.createMemberName}</EyePreview>
<Text type='secondary'>{formatTimeString(record.signUpTime)}</Text>
</Space>
)
......
......@@ -40,7 +40,7 @@ const ReadySubmitExamineResult = () => {
key: 'createMemberName',
dataIndex: 'createMemberName',
render: (text: any, record: any) => (
<EyePreview url={`/memberCenter/procurementAbility/offter/addOffter/view?id=${record.id}&number=${record.biddingNo}`}>{text}</EyePreview>
<EyePreview url={`/shop?shopId=${btoa(JSON.stringify({ shopId: record.memberShopId, memberId: record.memberId }))}`}>{text}</EyePreview>
)
}, {
title: '竞价开始/结束时间',
......@@ -77,53 +77,41 @@ const ReadySubmitExamineResult = () => {
</>
}];
/** 批量审核 */
const fetchSubmitBatch = async (id?: number) => {
let res = null;
if (id) {
res = await PublicApi.postPurchaseQuotedPriceSubmit({ id });
} else {
res = await PublicApi.postPurchaseQuotedPriceSubmitBatch({ ids: rowkeys });
}
if (res.code === 1000) {
ref.current.reload();
setRowKeys([])
}
}
const handleSubmit = (id: number) => {
setId(id);
setVisible(true);
}
const _handleBiddingReturn = (signUpIdea: string, urls: any) => {
const _params = {
biddingId: id,
signUpIdea,
urls
}
console.log(_params)
PublicApi.postPurchaseBiddingSubmitExamineBiddingReturn(_params).then(res => {
if (res.code === 1000) {
setVisible(false);
ref.current.reload();
}
})
}
return (
<>
<Table
selectedRow
reload={ref}
fetchRowkeys={(e) => setRowKeys(e)}
schemaType="PURCHASEBIDREADYADD_SCHEMA"
schemaType="PURCHASEBIDOSIGNUP_SCHEMA"
columns={columns}
effects="biddingNo"
fetch={PublicApi.getPurchaseBiddingStaySubmitBiddingList}
controllerBtns={
<Row>
<Col span={24}>
<Space size={16}>
<Button
onClick={() => fetchSubmitBatch()}
disabled={rowkeys.length === 0}
>
批量提交
</Button>
</Space>
</Col>
</Row>
}
/>
<SubmitResultModal
title={'提交竞价结果'}
visible={visible}
onOk={_handleBiddingReturn}
onCancel={() => { setVisible(false) }}
/>
</>
......
......@@ -34,17 +34,17 @@ const transforType = {
const TABLINK = [
{ id: 'progressLayout', title: '流转进度' },
{ id: 'bidResultLayout', title: '竞价结果', include: ['search', 'readyAdd','readyBid'] },
{ id: 'bidResultLayout', title: '竞价结果', include: ['search', 'readyAdd', 'readyBid'] },
{ id: 'basicLayout', title: '基本信息' },
{ id: 'materialLayout', title: '采购物料', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'bidRulesLayout', title: '竞价规则', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'signUpLayout', title: '报名要求', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit', 'readyExamineSignUp','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'signUpMsgLayout', title: '报名信息', include: ['search', 'readyAdd', 'readyExamineSignUp','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'materialLayout', title: '采购物料', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'bidRulesLayout', title: '竞价规则', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'signUpLayout', title: '报名要求', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit', 'readyExamineSignUp', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'signUpMsgLayout', title: '报名信息', include: ['search', 'readyAdd', 'readyExamineSignUp', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'signUpFileLayout', title: '报名文件', include: ['readyExamineSignUp'] },
{ id: 'conditionLayout', title: '交易条件', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'fileLayout', title: '附件', include: ['search', 'readyAdd','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'demandLayout', title: '需求对接', include: ['search', 'readyAdd','readyBid'] },
{ id: 'resultLayout', title: '授标结果', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit','readySubmitExamineResult','readyBid','readyExamineResultOne','readyExamineResultTwo','readyConfirm'] },
{ id: 'conditionLayout', title: '交易条件', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'fileLayout', title: '附件', include: ['search', 'readyAdd', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'demandLayout', title: '需求对接', include: ['search', 'readyAdd', 'readyBid'] },
{ id: 'resultLayout', title: '授标结果', include: ['search', 'readyAdd', 'readyExamineOne', 'readyExamineTwo', 'readySubmit', 'readySubmitExamineResult', 'readyBid', 'readyExamineResultOne', 'readyExamineResultTwo', 'readyConfirm'] },
{ id: 'recordLyout', title: '流转记录' },
]
......@@ -236,7 +236,7 @@ const SearchDetail = () => {
pageSize: '1'
}
const _fetch = pathPci === 'readySubmitExaminResult' ? PublicApi.getPurchaseBiddingStaySubmitDetails : PublicApi.getPurchaseBiddingDetails
const _fetch = pathPci === 'readySubmitExaminResult' ? PublicApi.getPurchaseBiddingStaySubmitDetails : PublicApi.getPurchaseBiddingDetails
await _fetch({ ...params }).then(res => {
if (res.code !== 1000) {
......@@ -434,9 +434,9 @@ const SearchDetail = () => {
case 'readyConfirm':
return (<BidCommonLayout layoutId="signUpMsgLayout" title="报名信息" layoutType='msg' effect={dataSource.sginUpInfos || []} />)
case 'readyExamineSignUp':
let _data : any = {};
for(let key in dataSource.sginUpInfos){
if(dataSource.sginUpInfos[key].id = signUpId){
let _data: any = {};
for (let key in dataSource.sginUpInfos) {
if (dataSource.sginUpInfos[key].id = signUpId) {
_data = dataSource.sginUpInfos[key];
}
}
......@@ -560,13 +560,27 @@ const SearchDetail = () => {
layoutType='result'
checkDetailFunc={_openQuotationDetailsDrawer}
effect={awardResult}
extra={<Button type='link' onClick={() => {setProgressVisible(true)}}>查看竞价过程</Button>} />
extra={<Button type='link' onClick={() => { setProgressVisible(true) }}>查看竞价过程</Button>} />
)
default:
return null;
}
}
const _handleBiddingReturn = (signUpIdea: string, urls: any) => {
const _params = {
biddingId: id,
signUpIdea,
urls
}
console.log(_params)
PublicApi.postPurchaseBiddingSubmitExamineBiddingReturn(_params).then(res => {
if(res.code === 1000){
history.goBack()
}
})
}
return (
<Context.Provider value={dataSource}>
<PeripheralLayout
......@@ -610,6 +624,7 @@ const SearchDetail = () => {
<SubmitResultModal
title="提交竞价结果"
visible={uploadBidResultVisible}
onOk={_handleBiddingReturn}
onCancel={() => setUploadBidResultVisible(false)}
/>
<QuotationDetailsDrawer
......@@ -621,7 +636,7 @@ const SearchDetail = () => {
visible={quotationDetailsVisible}
onClose={() => setQuotationDetailsVisible(false)}
/>
<BidProgressDrawer
<BidProgressDrawer
effects='id'
title="竞价过程"
visible={progressVisible}
......
......@@ -94,7 +94,7 @@ export const PURCHASEBIDORDER_SCHEMA: ISchema = {
}
}
/** 采购竞价 - 待新增采购竞价单&待审核(一级)&待审核(二级)&待审核结果(一级)&待审核结果(二级)&待提交&待提交审核结果 */
/** 采购竞价 - 待新增采购竞价单&待审核(一级)&待审核(二级)&待审核结果(一级)&待审核结果(二级)&待提交审核结果 */
export const PURCHASEBIDREADYADD_SCHEMA: ISchema = {
type: 'object',
properties: {
......@@ -132,7 +132,7 @@ export const PURCHASEBIDREADYADD_SCHEMA: ISchema = {
flexWrap: 'nowrap'
},
colStyle: {
marginLeft: 20
marginRight: 16
}
},
properties: {
......@@ -175,7 +175,7 @@ export const PURCHASEBIDREADYADD_SCHEMA: ISchema = {
}
}
/** 采购竞价 - 待审核竞价报名&待确认&待审核报名 */
/** 采购竞价 - 待审核竞价报名&待确认&待审核报名&待提交 */
export const PURCHASEBIDOSIGNUP_SCHEMA: ISchema = {
type: 'object',
properties: {
......
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