Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄庭坚
jinfa-platform
Commits
665bed38
Commit
665bed38
authored
May 13, 2021
by
卢均锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 采购竞价,对接接口,业务逻辑
parent
1f578402
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
150 additions
and
103 deletions
+150
-103
index.tsx
...ty/components/detail/components/bidDetailLayout/index.tsx
+14
-8
index.tsx
...s/detail/components/lowestQuotationRecordLayout/index.tsx
+32
-20
index.tsx
...es/transaction/purchaseAbility/onlineBid/detail/index.tsx
+3
-1
index.tsx
...ction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
+1
-1
index.tsx
...bility/purchaseBid/components/submitResultModal/index.tsx
+1
-2
index.tsx
...purchaseBid/readyBid/management/components/rank/index.tsx
+2
-2
index.tsx
...agement/components/statusBox/detailBottomDrawer/index.tsx
+20
-13
index.tsx
...aseBid/readyBid/management/components/statusBox/index.tsx
+12
-3
index.tsx
...purchaseAbility/purchaseBid/readyBid/management/index.tsx
+10
-1
index.tsx
...action/purchaseAbility/purchaseBid/readyConfirm/index.tsx
+1
-1
index.tsx
...rchaseAbility/purchaseBid/readyExamineResultOne/index.tsx
+1
-1
index.tsx
...rchaseAbility/purchaseBid/readyExamineResultTwo/index.tsx
+1
-1
index.tsx
.../purchaseAbility/purchaseBid/readyExamineSignUp/index.tsx
+1
-1
index.tsx
...aseAbility/purchaseBid/readySubmitExamineResult/index.tsx
+18
-30
detail.tsx
...transaction/purchaseAbility/purchaseBid/search/detail.tsx
+30
-15
purchaseBid.ts
src/pages/transaction/purchaseAbility/schema/purchaseBid.ts
+3
-3
No files found.
src/pages/transaction/purchaseAbility/components/detail/components/bidDetailLayout/index.tsx
View file @
665bed38
...
...
@@ -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
src/pages/transaction/purchaseAbility/components/detail/components/lowestQuotationRecordLayout/index.tsx
View file @
665bed38
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
>
},
];
...
...
src/pages/transaction/purchaseAbility/onlineBid/detail/index.tsx
View file @
665bed38
...
...
@@ -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
(
fals
e
)}
}
>
查看竞价过程
</
Button
>
}
extra=
{
<
Button
type=
'link'
onClick=
{
()
=>
{
setProgressVisible
(
tru
e
)}
}
>
查看竞价过程
</
Button
>
}
/>
)
}
...
...
src/pages/transaction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
View file @
665bed38
...
...
@@ -68,7 +68,7 @@ const Detail = () => {
</
Col
>
</
Row
>
<
Row
>
<
BidDetailLayout
detail=
{
dataSource
}
/>
<
BidDetailLayout
detail=
{
dataSource
}
btnType=
{
2
}
/>
</
Row
>
</
div
>
</
div
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/components/submitResultModal/index.tsx
View file @
665bed38
...
...
@@ -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
);
})
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/rank/index.tsx
View file @
665bed38
...
...
@@ -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
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/statusBox/detailBottomDrawer/index.tsx
View file @
665bed38
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
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/statusBox/index.tsx
View file @
665bed38
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
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/index.tsx
View file @
665bed38
...
...
@@ -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
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyConfirm/index.tsx
View file @
665bed38
...
...
@@ -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
:
'竞价开始/结束时间'
,
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultOne/index.tsx
View file @
665bed38
...
...
@@ -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
:
'竞价开始/结束时间'
,
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultTwo/index.tsx
View file @
665bed38
...
...
@@ -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
:
'竞价开始/结束时间'
,
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineSignUp/index.tsx
View file @
665bed38
...
...
@@ -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
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readySubmitExamineResult/index.tsx
View file @
665bed38
...
...
@@ -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=
"PURCHASEBID
READYADD
_SCHEMA"
schemaType=
"PURCHASEBID
OSIGNUP
_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
)
}
}
/>
</>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/search/detail.tsx
View file @
665bed38
...
...
@@ -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
}
...
...
src/pages/transaction/purchaseAbility/schema/purchaseBid.ts
View file @
665bed38
...
...
@@ -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
:
{
margin
Left
:
20
margin
Right
:
16
}
},
properties
:
{
...
...
@@ -175,7 +175,7 @@ export const PURCHASEBIDREADYADD_SCHEMA: ISchema = {
}
}
/** 采购竞价 - 待审核竞价报名&待确认&待审核报名 */
/** 采购竞价 - 待审核竞价报名&待确认&待审核报名
&待提交
*/
export
const
PURCHASEBIDOSIGNUP_SCHEMA
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment