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
shenshaokai
jinfa-platform
Commits
2368dfa9
Commit
2368dfa9
authored
May 06, 2021
by
卢均锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 采购竞价对接接口&修改部分组件
parent
13102e77
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
335 additions
and
189 deletions
+335
-189
purchaseBid.ts
config/routes/procurementRoute/purchaseBid.ts
+87
-0
index.tsx
...ents/detail/components/bidCommonLayout/areaItem/index.tsx
+6
-6
index.tsx
...ty/components/detail/components/bidCommonLayout/index.tsx
+6
-6
index.tsx
...nents/detail/components/bidCommonLayout/msgItem/index.tsx
+25
-23
index.tsx
...ts/detail/components/bidCommonLayout/resultItem/index.tsx
+9
-8
index.tsx
...ility/components/detail/components/demandLayout/index.tsx
+10
-3
index.tsx
...saction/purchaseAbility/components/modalOperate/index.tsx
+1
-1
index.tsx
...es/transaction/purchaseAbility/components/table/index.tsx
+42
-19
add.tsx
.../transaction/purchaseAbility/purchaseBid/readyAdd/add.tsx
+38
-8
basic.tsx
...purchaseAbility/purchaseBid/readyAdd/components/basic.tsx
+3
-3
bidRules.tsx
...chaseAbility/purchaseBid/readyAdd/components/bidRules.tsx
+14
-9
file.tsx
.../purchaseAbility/purchaseBid/readyAdd/components/file.tsx
+7
-6
index.tsx
...ransaction/purchaseAbility/purchaseBid/readyAdd/index.tsx
+72
-85
index.tsx
...ransaction/purchaseAbility/purchaseBid/readyBid/index.tsx
+2
-2
index.tsx
...action/purchaseAbility/purchaseBid/readyConfirm/index.tsx
+1
-1
index.tsx
...ion/purchaseAbility/purchaseBid/readyExamineOne/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
...ion/purchaseAbility/purchaseBid/readyExamineTwo/index.tsx
+1
-1
index.tsx
...saction/purchaseAbility/purchaseBid/readySubmit/index.tsx
+3
-3
index.tsx
...aseAbility/purchaseBid/readySubmitExamineResult/index.tsx
+1
-1
detail.tsx
...transaction/purchaseAbility/purchaseBid/search/detail.tsx
+0
-0
index.tsx
.../transaction/purchaseAbility/purchaseBid/search/index.tsx
+3
-0
No files found.
config/routes/procurementRoute/purchaseBid.ts
View file @
2368dfa9
...
...
@@ -37,30 +37,77 @@ export const purchaseBidRoute = [
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyAdd/add'
,
hideInMenu
:
true
},
// 修改采购竞价单
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyAdd/modify'
,
name
:
'修改采购竞价单'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyAdd/add'
,
hideInMenu
:
true
},
// 待新增采购竞价单详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyAdd/detail'
,
name
:
'待新增采购竞价单详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待审核采购竞价单(一级)
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineOne'
,
name
:
'待审核采购竞价单(一级)'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyExamineOne'
},
// 待审核采购竞价单(一级)详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineOne/detail'
,
name
:
'待审核采购竞价单(一级)详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待审核采购竞价单(二级)
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineTwo'
,
name
:
'待审核采购竞价单(二级)'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyExamineTwo'
},
// 待审核采购竞价单(二级)详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineTwo/detail'
,
name
:
'待审核采购竞价单(二级)详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待提交采购竞价单
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readySubmit'
,
name
:
'待提交采购竞价单'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readySubmit'
},
// 待提交采购竞价单详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readySubmit/detail'
,
name
:
'待提交采购竞价单详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待审核竞价报名
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineSignUp'
,
name
:
'待审核竞价报名'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyExamineSignUp'
},
// 待审核竞价报名详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineSignUp/detail'
,
name
:
'待审核竞价报名详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待竞价
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyBid'
,
...
...
@@ -75,30 +122,70 @@ export const purchaseBidRoute = [
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待竞价详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyBid/detail'
,
name
:
'待竞价详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待提交审核竞价结果
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readySubmitExamineResult'
,
name
:
'待提交审核竞价结果'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readySubmitExamineResult'
},
// 待提交审核竞价结果详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readySubmitExamineResult/detail'
,
name
:
'待提交审核竞价结果详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待审核竞价结果(一级)
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineResultOne'
,
name
:
'待审核竞价结果(一级)'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultOne'
},
// 待审核竞价结果(一级)详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineResultOne/detail'
,
name
:
'待审核竞价结果(一级)详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待审核竞价结果(二级)
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineResultTwo'
,
name
:
'待审核竞价结果(二级)'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultTwo'
},
// 待审核竞价结果(二级)详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyExamineResultTwo/detail'
,
name
:
'待审核竞价结果(二级)详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
// 待审核竞价结果
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyConfirm'
,
name
:
'待审核竞价结果'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/readyConfirm'
},
// 待审核竞价结果详情
{
path
:
'/memberCenter/procurementAbility/purchaseBid/readyConfirm/detail'
,
name
:
'待审核竞价结果详情'
,
component
:
'@/pages/transaction/purchaseAbility/purchaseBid/search/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
]
},
]
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/areaItem/index.tsx
View file @
2368dfa9
...
...
@@ -4,10 +4,10 @@ import { CaretDownOutlined, CaretUpOutlined } from '@ant-design/icons';
const
areaItem
=
(
props
:
any
)
=>
{
const
{
data
}
=
props
;
const
[
showMore
,
setShowMore
]
=
useState
<
any
>
(
false
);
// const showDataSource = showMore ? data['inviteTenderAreaList'] : [...data['inviteTenderAreaList']
].splice(0, 3)
const
showDataSource
=
useMemo
(()
=>
{
return
showMore
?
data
[
'inviteTenderAreaList'
]
:
[...
data
[
'inviteTenderAreaList'
]
].
splice
(
0
,
3
)
},
[
showMore
,
data
])
const
showDataSource
=
showMore
?
data
:
[...
data
].
splice
(
0
,
3
)
//
const showDataSource = useMemo(() => {
// return showMore ? data : [...data
].splice(0, 3)
//
}, [showMore, data])
const
toogleMore
=
()
=>
{
setShowMore
(
!
showMore
);
...
...
@@ -15,11 +15,11 @@ const areaItem = (props: any) => {
return
(
<>
{
showDataSource
.
map
((
_item
,
_i
)
=>
<
p
key=
{
`address${_i}`
}
>
{
_item
.
province
Name
+
'/'
+
(
_item
.
cityName
||
''
)
}
</
p
>)
}
{
showDataSource
.
map
((
_item
,
_i
)
=>
<
p
key=
{
`address${_i}`
}
>
{
_item
.
province
+
'/'
+
(
_item
.
city
||
''
)
}
</
p
>)
}
{
data
.
length
>
3
&&
<
p
onClick=
{
toogleMore
}
style=
{
{
cursor
:
'pointer'
}
}
className=
"commonPickColor"
>
展开
{
showMore
?
<
CaretDownOutlined
/>
:
<
CaretUp
Outlined
/>
}
{
showMore
?
'收起'
:
'展开'
}{
showMore
?
<
CaretUpOutlined
/>
:
<
CaretDown
Outlined
/>
}
</
p
>
}
</>
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/index.tsx
View file @
2368dfa9
...
...
@@ -38,9 +38,9 @@ const BidCommonLayout: React.FC<BidCommonLayoutProps> = (props: any) => {
case
'text'
:
return
data
.
extra
case
'area'
:
return
<
AreaItem
/>
return
<
AreaItem
data=
{
data
.
extra
}
/>
case
'files'
:
return
<
FilesItem
/>
return
<
FilesItem
files=
{
data
.
extra
}
/>
}
}
const
_returnChild
=
(
child
,
key
)
=>
{
...
...
@@ -80,23 +80,23 @@ const BidCommonLayout: React.FC<BidCommonLayoutProps> = (props: any) => {
return
(<
Row
gutter=
{
[
8
,
8
]
}
>
{
effect
.
map
((
item
,
index
)
=>
(
<
Col
span=
{
5
}
key=
{
`effect_msg_${index}`
}
>
<
MsgItem
itemIndex
=
{
index
}
/>
<
MsgItem
data=
{
item
}
rank
=
{
index
}
/>
</
Col
>
))
}
</
Row
>)
}
else
if
(
layoutType
===
'result'
)
{
return
(
<
Row
gutter=
{
[
8
,
8
]
}
>
{
effect
.
map
((
item
,
index
)
=>
(
{
effect
?.
list
?
.
map
((
item
,
index
)
=>
(
<
Col
span=
{
5
}
key=
{
`effect_result_${index}`
}
>
<
ResultItem
itemIndex=
{
index
}
checkDetailFunc=
{
checkDetailFunc
}
/>
<
ResultItem
detail=
{
item
}
itemIndex=
{
index
}
checkDetailFunc=
{
checkDetailFunc
}
/>
</
Col
>
))
}
<
Col
span=
{
24
}
>
<
Divider
dashed
style=
{
{
color
:
'#EBECF0'
}
}
/>
<
div
className=
{
selfStyles
.
baseItem
}
>
<
h5
className=
{
selfStyles
.
label
}
>
授标意见:
</
h5
>
<
h5
className=
{
selfStyles
.
content
}
>
最低价中标
</
h5
>
<
h5
className=
{
selfStyles
.
content
}
>
{
effect
.
signUpIdea
}
</
h5
>
</
div
>
<
div
className=
{
selfStyles
.
baseItem
}
>
<
h5
className=
{
selfStyles
.
label
}
>
附件:
</
h5
>
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/msgItem/index.tsx
View file @
2368dfa9
...
...
@@ -5,39 +5,41 @@ import { LinkOutlined } from '@ant-design/icons';
import
styles
from
'./index.less'
;
export
interface
MsgItemPrpos
{
itemIndex
:
number
,
d
etail
?:
any
rank
?
:
number
,
d
ata
?:
any
,
}
const
MsgItem
:
React
.
FC
<
MsgItemPrpos
>
=
(
props
:
any
)
=>
{
const
{
itemIndex
,
detial
}
=
props
;
const
{
data
,
rank
}
=
props
;
const
rankNumber
=
Number
(
rank
)
+
1
;
return
(
<
div
key=
{
`msgItem_key_${itemIndex}`
}
className=
{
styles
.
msgItem
}
>
<
div
className=
{
styles
.
msgItem
}
>
<
div
className=
{
styles
.
msgItemRow
}
>
<
div
className=
{
styles
.
badge
}
>
1
</
div
>
<
div
className=
{
styles
.
title
}
>
广州白马皮具交易中心
</
div
>
<
div
className=
{
styles
.
badge
}
>
{
rankNumber
}
</
div
>
<
div
className=
{
styles
.
title
}
>
{
data
.
memberName
}
</
div
>
</
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人姓名:
</
div
><
div
className=
{
styles
.
title
}
>
小王
</
div
></
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人手机:
</
div
><
div
className=
{
styles
.
title
}
>
185 2929 6758
</
div
></
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
电子邮箱:
</
div
><
div
className=
{
styles
.
title
}
>
kuaimeizheng@qq.com
</
div
></
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
联系地址:
</
div
>
{
<
Tooltip
placement=
"top"
title=
{
'广东省广州市海珠区新港东路168…'
}
>
<
div
className=
{
styles
.
title
}
>
广东省广州市海珠区新港东路168…
</
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人姓名:
</
div
><
div
className=
{
styles
.
title
}
>
{
data
.
contacts
}
</
div
></
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人手机:
</
div
><
div
className=
{
styles
.
title
}
>
{
data
.
tel
}
</
div
></
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
电子邮箱:
</
div
><
div
className=
{
styles
.
title
}
>
{
data
.
mail
}
</
div
></
div
>
<
div
className=
{
styles
.
msgItemRow
}
><
div
className=
{
styles
.
label
}
>
联系地址:
</
div
>
{
<
Tooltip
placement=
"top"
title=
{
data
.
address
}
>
<
div
className=
{
styles
.
title
}
>
{
data
.
address
}
</
div
>
</
Tooltip
>
}
</
div
>
<
div
className=
{
styles
.
msgItemRow
}
>
<
div
className=
{
styles
.
label
}
>
报名文件:
</
div
>
<
div
className=
{
styles
.
files
}
>
<
Typography
.
Link
style=
{
{
display
:
'block'
,
paddingBottom
:
'8px'
}
}
target=
"_blank"
>
<
LinkOutlined
/>
营业执照.pdf
</
Typography
.
Link
>
<
Typography
.
Link
style=
{
{
display
:
'block'
,
paddingBottom
:
'8px'
}
}
target=
"_blank"
>
<
LinkOutlined
/>
报名信息.doc
</
Typography
.
Link
>
{
data
.
enclosureUrls
&&
data
.
enclosureUrls
.
map
((
item
,
index
)
=>
{
return
(
<
Typography
.
Link
style=
{
{
display
:
'block'
,
paddingBottom
:
'8px'
}
}
target=
"_blank"
href=
{
item
.
url
}
key=
{
`Typography_${item.name}_${index}`
}
>
<
LinkOutlined
/>
{
item
.
name
}
</
Typography
.
Link
>
)
})
}
</
div
>
</
div
>
</
div
>
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/resultItem/index.tsx
View file @
2368dfa9
...
...
@@ -15,10 +15,11 @@ export interface ResultItemPrpos {
}
const
ResultItem
:
React
.
FC
<
ResultItemPrpos
>
=
(
props
:
any
)
=>
{
const
{
itemIndex
,
det
ia
l
,
checkDetailFunc
}
=
props
;
const
{
itemIndex
,
det
ai
l
,
checkDetailFunc
}
=
props
;
const
_returnBadge
=
(
number
)
=>
{
switch
(
number
)
{
const
_number
=
Number
(
number
)
+
1
;
switch
(
_number
)
{
case
1
:
return
<
img
src=
{
level1
}
alt=
'第一名'
/>;
case
2
:
...
...
@@ -26,22 +27,22 @@ const ResultItem: React.FC<ResultItemPrpos> = (props: any) => {
case
3
:
return
<
img
src=
{
level3
}
alt=
'第三名'
/>;
default
:
return
<
div
className=
{
styles
.
badge
}
>
number
</
div
>
return
<
div
className=
{
styles
.
badge
}
>
{
_number
}
</
div
>
}
}
return
(
<
div
key=
{
`msgItem_key_${itemIndex}`
}
className=
{
styles
.
resultItem
}
>
<
img
src=
{
winBig
}
alt=
"授标"
className=
{
styles
.
resultItemWinBid
}
/>
{
detail
.
isAward
&&
<
img
src=
{
winBig
}
alt=
"授标"
className=
{
styles
.
resultItemWinBid
}
/>
}
<
div
className=
{
styles
.
resultItemRow
}
>
<
div
className=
{
styles
.
title
}
>
广州白马皮具交易中心
{
_returnBadge
(
1
)
}
</
div
>
<
div
className=
{
styles
.
title
}
>
{
detail
.
memberName
}{
_returnBadge
(
detail
.
purchaseRanking
)
}
</
div
>
</
div
>
<
div
className=
{
styles
.
resultItemRow
}
>
<
div
className=
{
styles
.
money
}
>
¥
900.00
<
span
>
(含税)
</
span
></
div
>
<
div
className=
{
styles
.
money
}
>
¥
{
detail
.
price
}
<
span
>
(含税)
</
span
></
div
>
<
Button
type=
'link'
onClick=
{
checkDetailFunc
}
>
查看报价明细
</
Button
>
</
div
>
<
Divider
dashed
style=
{
{
color
:
'#EBECF0'
,
margin
:
'6px 0'
}
}
/>
<
div
className=
{
styles
.
resultItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人姓名:
</
div
><
div
className=
{
styles
.
title
}
>
小王
</
div
></
div
>
<
div
className=
{
styles
.
resultItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人手机:
</
div
><
div
className=
{
styles
.
title
}
>
185 2929 6758
</
div
></
div
>
<
div
className=
{
styles
.
resultItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人姓名:
</
div
><
div
className=
{
styles
.
title
}
>
{
detail
.
contacts
}
</
div
></
div
>
<
div
className=
{
styles
.
resultItemRow
}
><
div
className=
{
styles
.
label
}
>
联系人手机:
</
div
><
div
className=
{
styles
.
title
}
>
{
detail
.
tel
}
</
div
></
div
>
</
div
>
)
}
...
...
src/pages/transaction/purchaseAbility/components/detail/components/demandLayout/index.tsx
View file @
2368dfa9
...
...
@@ -25,11 +25,13 @@ const TextStyle = {
}
export
interface
DemandLayoutIProps
{
storeList
?:
any
storeList
?:
any
,
title
?:
string
}
const
DemandLayout
:
React
.
FC
<
DemandLayoutIProps
>
=
(
props
:
any
)
=>
{
const
{
storeList
}
=
props
;
const
{
storeList
,
title
}
=
props
;
console
.
log
(
title
)
const
context
=
useContext
(
Context
);
const
columns
=
[
...
...
@@ -109,7 +111,7 @@ const DemandLayout: React.FC<DemandLayoutIProps> = (props: any) => {
title=
'需求对接'
>
<
div
className=
{
style
.
list
}
>
<
h5
className=
{
style
.
listLable
}
style=
{
{
flex
:
'0 0 100px'
}
}
>
发布方式
:
</
h5
>
<
h5
className=
{
style
.
listLable
}
style=
{
{
flex
:
'0 0 100px'
}
}
>
{
title
}
:
</
h5
>
<
h5
className=
{
style
.
listContent
}
>
{
TYPE
[
context
.
type
]
}
</
h5
>
</
div
>
{
context
.
type
===
1
...
...
@@ -138,4 +140,9 @@ const DemandLayout: React.FC<DemandLayoutIProps> = (props: any) => {
</
Card
>
)
}
DemandLayout
.
defaultProps
=
{
title
:
'发布方式'
}
export
default
DemandLayout
;
src/pages/transaction/purchaseAbility/components/modalOperate/index.tsx
View file @
2368dfa9
...
...
@@ -206,7 +206,7 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
}
}
>
{
modalNode
()
}
{
(
modalType
===
'audit'
||
modalType
===
'abandon'
)
{
(
modalType
===
'audit'
||
modalType
===
'abandon'
||
modalType
===
'discard'
)
&&
(<
Field
title=
{
modalText
}
name=
{
modalType
===
'audit'
?
'auditOpinion'
:
'reason'
}
...
...
src/pages/transaction/purchaseAbility/components/table/index.tsx
View file @
2368dfa9
...
...
@@ -8,6 +8,9 @@ import NiceForm from '@/components/NiceForm';
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
searchSelectGetSelectCategoryOptionEffect
}
from
'@/pages/transaction/effect/index'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
const
{
onFormMount$
}
=
FormEffectHooks
import
{
PurchaseDemandSchema
,
PurchaseDemandPublicSchema
,
...
...
@@ -20,13 +23,13 @@ import {
CONFIRMOFFERSUBMITAPRICE_SCHEMA
,
CONFIRMOFFERAUDIT_SCHEMA
,
}
from
'../../schema'
;
import
{
import
{
PURCHASEBIDORDER_SCHEMA
,
PURCHASEBIDREADYADD_SCHEMA
,
PURCHASEBIDOSIGNUP_SCHEMA
,
}
from
'../../schema/purchaseBid'
;
import
{
import
{
ONLINEBIDORDER_SCHEMA
,
ONLINEBIDREADYBID_SCHEMA
,
ONLINEBIDREADYSIGN_SCHEMA
,
...
...
@@ -37,26 +40,28 @@ interface Iprops {
fetchRowkeys
?(
e
:
any
),
controllerBtns
?:
React
.
ReactNode
,
schemaType
?:
'PurchaseDemand'
|
'PurchaseDemandPublic'
|
'INQUIRYDEMANDORDER_SCHEMA'
|
'INQUIRYWAITORDER_SCHEMA'
|
'OFFERDEMANDSERAH_SCHEMA'
|
'OFFERSERAH_SCHEMA'
|
'OFFERSERAHAUDIT_SCHEMA'
|
'CONFIRMOFFERSERAH_SCHEMA'
|
'CONFIRMOFFERSUBMITAPRICE_SCHEMA'
|
'CONFIRMOFFERAUDIT_SCHEMA'
|
'PURCHASEBIDORDER_SCHEMA'
|
'PURCHASEBIDREADYADD_SCHEMA'
|
'PURCHASEBIDOSIGNUP_SCHEMA'
|
'ONLINEBIDORDER_SCHEMA'
|
'ONLINEBIDREADYBID_SCHEMA'
|
'ONLINEBIDREADYSIGN_SCHEMA'
'PurchaseDemand'
|
'PurchaseDemandPublic'
|
'INQUIRYDEMANDORDER_SCHEMA'
|
'INQUIRYWAITORDER_SCHEMA'
|
'OFFERDEMANDSERAH_SCHEMA'
|
'OFFERSERAH_SCHEMA'
|
'OFFERSERAHAUDIT_SCHEMA'
|
'CONFIRMOFFERSERAH_SCHEMA'
|
'CONFIRMOFFERSUBMITAPRICE_SCHEMA'
|
'CONFIRMOFFERAUDIT_SCHEMA'
|
'PURCHASEBIDORDER_SCHEMA'
|
'PURCHASEBIDREADYADD_SCHEMA'
|
'PURCHASEBIDOSIGNUP_SCHEMA'
|
'ONLINEBIDORDER_SCHEMA'
|
'ONLINEBIDREADYBID_SCHEMA'
|
'ONLINEBIDREADYSIGN_SCHEMA'
columns
:
ColumnType
<
any
>
[],
effects
?:
string
,
selectedRow
?:
boolean
,
reload
?:
any
,
externalStatusFetch
?:
any
,
interiorStatusFetch
?:
any
,
}
const
formActions
=
createFormActions
();
const
Table
:
React
.
FC
<
Iprops
>
=
(
props
:
any
)
=>
{
...
...
@@ -68,7 +73,9 @@ const Table: React.FC<Iprops> = (props: any) => {
controllerBtns
,
selectedRow
,
reload
,
fetchRowkeys
fetchRowkeys
,
externalStatusFetch
,
interiorStatusFetch
}
=
props
;
const
tableRef
=
useRef
<
any
>
({});
/** Schema */
...
...
@@ -138,6 +145,21 @@ const Table: React.FC<Iprops> = (props: any) => {
tableRef
.
current
.
reload
(
values
)
}
const
useBusinessEffects
=
()
=>
{
const
linkage
=
useLinkageUtils
();
onFormMount$
().
subscribe
(()
=>
{
externalStatusFetch
&&
externalStatusFetch
().
then
(
res
=>
{
const
_enum
=
res
.
data
.
map
((
item
)
=>
{
return
{
label
:
item
.
name
,
value
:
item
.
satatus
}})
linkage
.
enum
(
'externalState'
,
_enum
)
})
interiorStatusFetch
&&
interiorStatusFetch
().
then
(
res
=>
{
const
_enum
=
res
.
data
.
map
((
item
)
=>
{
return
{
label
:
item
.
name
,
value
:
item
.
satatus
}})
linkage
.
enum
(
'interiorState'
,
_enum
)
})
})
}
return
(
<
PageHeaderWrapper
>
<
Card
>
...
...
@@ -157,6 +179,7 @@ const Table: React.FC<Iprops> = (props: any) => {
FormEffectHooks
.
onFieldChange$
(
'category'
).
subscribe
(
state
=>
{
searchSelectGetSelectCategoryOptionEffect
(
actions
,
'category'
)
})
useBusinessEffects
();
}
}
schema=
{
schemaType
&&
SchemaRender
()
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/add.tsx
View file @
2368dfa9
...
...
@@ -31,8 +31,15 @@ const TabFormErrors = (props) => {
}
const
AddForm
=
()
=>
{
const
{
id
,
number
}
=
history
.
location
.
query
;
const
{
query
:
{
id
,
number
},
pathname
,
}
=
history
.
location
;
const
{
memberId
,
memberRoleId
,
name
}
=
JSON
.
parse
(
localStorage
.
getItem
(
'auth'
));
const
[
path
]
=
useState
(
pathname
.
split
(
'/'
)[
pathname
.
split
(
'/'
).
length
-
1
]);
console
.
log
(
path
)
/** 基本信息 */
const
[
basic
,
setBasic
]
=
useState
<
any
>
({});
/** 添加采购物料 */
...
...
@@ -76,14 +83,14 @@ const AddForm = () => {
memberRoleId
,
memberName
:
name
,
details
:
basicRef
.
data
.
details
,
isAreas
:
basicRef
.
data
.
isAreas
,
isAreas
:
basicRef
.
data
.
isAreas
,
areas
:
basicRef
.
data
.
areas
,
...
materialRef
.
data
,
...
conditionRef
.
data
,
...
demandRef
.
data
,
...
ruleRef
.
data
,
...
requirementRef
.
data
,
urls
:
[...
fileRef
.
data
]
urls
:
[...
fileRef
.
data
]
}
let
res
:
{
code
:
number
,
...
...
@@ -123,11 +130,13 @@ const AddForm = () => {
current
:
'1'
,
pageSize
:
'1'
,
}
PublicApi
.
getPurchase
PurchaseInquiry
Details
(
parmas
).
then
((
res
:
any
)
=>
{
PublicApi
.
getPurchase
Bidding
Details
(
parmas
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
===
1000
)
{
const
params
:
GetPurchasePurchaseInquiryDetailsResponse
=
res
.
data
;
const
basicInfo
:
GetPurchasePurchaseInquiryDetailsResponse
=
{
...
basic
};
const
materialInfo
:
GetPurchasePurchaseInquiryDetailsResponse
=
{
...
material
};
const
rulesInfo
:
GetPurchasePurchaseInquiryDetailsResponse
=
{
...
rules
};
const
requirementInfo
:
GetPurchasePurchaseInquiryDetailsResponse
=
{
...
requirement
};
const
conditionInfo
:
GetPurchasePurchaseInquiryDetailsResponse
=
{
...
condition
};
const
demandInfo
:
GetPurchasePurchaseInquiryDetailsResponse
=
{
...
demand
};
basicInfo
.
details
=
params
.
details
;
...
...
@@ -139,16 +148,35 @@ const AddForm = () => {
cityCode
:
''
,
city
:
''
}];
basicInfo
.
memberName
=
params
.
m
emberName
;
basicInfo
.
purchaseInquiryNo
=
params
.
purchaseInquiry
No
;
basicInfo
.
memberName
=
params
.
createM
emberName
;
basicInfo
.
biddingNo
=
params
.
bidding
No
;
basicInfo
.
createTime
=
params
.
createTime
;
basicInfo
.
externalState
=
params
.
externalState
basicInfo
.
externalState
=
params
.
externalState
;
basicInfo
.
externalStateName
=
params
.
externalStateName
;
basicInfo
.
interiorState
=
params
.
interiorState
;
basicInfo
.
interiorStateName
=
params
.
interiorStateName
;
setBasic
(
basicInfo
);
materialInfo
.
materielMode
=
params
.
materielMode
;
materialInfo
.
materiels
=
params
.
materiels
;
setMaterial
(
materialInfo
);
conditionInfo
.
deliveryTime
=
params
.
deliveryTime
;
rulesInfo
.
biddingStartTime
=
params
.
biddingStartTime
;
rulesInfo
.
biddingEndTime
=
params
.
biddingEndTime
;
rulesInfo
.
isStartingPrice
=
params
.
isStartingPrice
;
rulesInfo
.
isTargetPrice
=
params
.
isTargetPrice
;
rulesInfo
.
isMinPrice
=
params
.
isMinPrice
;
rulesInfo
.
isOpenPurchase
=
params
.
isOpenPurchase
;
rulesInfo
.
isOpenRanking
=
params
.
isOpenRanking
;
rulesInfo
.
startingPrice
=
params
.
startingPrice
;
rulesInfo
.
targetPrice
=
params
.
targetPrice
;
rulesInfo
.
allowPurchaseCount
=
params
.
allowPurchaseCount
;
rulesInfo
.
minPrice
=
params
.
minPrice
;
setRules
(
rulesInfo
);
requirementInfo
.
startSignUp
=
params
.
startSignUp
;
requirementInfo
.
endSignUp
=
params
.
endSignUp
;
requirementInfo
.
demand
=
params
.
demand
;
requirementInfo
.
demandUrls
=
params
.
demandUrls
;
setRequirement
(
requirementInfo
);
conditionInfo
.
deliver
=
params
.
deliver
;
conditionInfo
.
offerEndTime
=
params
.
offerEndTime
;
conditionInfo
.
address
=
params
.
address
;
conditionInfo
.
addressId
=
params
.
addressId
;
...
...
@@ -163,10 +191,12 @@ const AddForm = () => {
demandInfo
.
shopIds
=
params
.
shopIds
;
demandInfo
.
demandMembers
=
params
.
demandMembers
;
setDemand
(
demandInfo
);
setfile
([...
params
.
urls
]);
}
})
}
},
[
id
,
number
])
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/basic.tsx
View file @
2368dfa9
...
...
@@ -305,19 +305,19 @@ const BasicInfo: React.FC<Iprops> = (props: any) => {
label=
'竞价单号'
name=
'purchaseInquiryNo'
>
<
Text
strong
>
{
(
fetchdata
&&
fetchdata
.
purchaseInquiryNo
)
&&
fetchdata
.
purchaseInquiry
No
}
</
Text
>
<
Text
strong
>
{
(
fetchdata
&&
fetchdata
.
biddingNo
)
&&
fetchdata
.
bidding
No
}
</
Text
>
</
Form
.
Item
>
<
Form
.
Item
label=
'外部状态'
name=
'externalState'
>
<
Text
type=
"warning"
strong
>
{
(
fetchdata
&&
fetchdata
.
externalState
)
&&
BID_EXTERNALSTATE
[
fetchdata
.
externalState
]
}
</
Text
>
<
Text
type=
"warning"
strong
>
{
(
fetchdata
&&
fetchdata
.
externalState
)
&&
fetchdata
.
externalStateName
}
</
Text
>
</
Form
.
Item
>
<
Form
.
Item
label=
'内部状态'
name=
'interiorState'
>
<
Text
type=
"warning"
strong
>
{
(
fetchdata
&&
fetchdata
.
interiorState
)
&&
BID_INTERNALSTATE
[
fetchdata
.
interiorState
]
}
</
Text
>
<
Text
type=
"warning"
strong
>
{
(
fetchdata
&&
fetchdata
.
interiorState
)
&&
fetchdata
.
interiorStateName
}
</
Text
>
</
Form
.
Item
>
</
Form
>
</>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/bidRules.tsx
View file @
2368dfa9
...
...
@@ -74,6 +74,11 @@ const BidRules: React.FC<Iprops> = (props: any) => {
},
[])
useEffect
(()
=>
{
fetchdata
.
isStartingPrice
!=
undefined
&&
setIsStartingPrice
(
!!
fetchdata
.
isStartingPrice
);
fetchdata
.
isTargetPrice
!=
undefined
&&
setIsTargetPrice
(
!!
fetchdata
.
isTargetPrice
);
fetchdata
.
isMinPrice
!=
undefined
&&
setIsMinPrice
(
!!
fetchdata
.
isMinPrice
);
setIsOpenPurchase
(
!!
fetchdata
.
isOpenPurchase
);
setIsOpenRanking
(
!!
fetchdata
.
isOpenRanking
);
form
.
setFieldsValue
({
biddingTime
:
[
fetchdata
.
biddingStartTime
?
moment
(
fetchdata
.
biddingStartTime
)
:
''
,
fetchdata
.
biddingEndTime
?
moment
(
fetchdata
.
biddingEndTime
)
:
''
],
isStartingPrice
:
!!
fetchdata
.
isStartingPrice
,
...
...
@@ -90,8 +95,8 @@ const BidRules: React.FC<Iprops> = (props: any) => {
const
onCheckboxChange
=
(
e
:
{
target
:
{
checked
:
boolean
}
},
func
:
Function
,
name
?:
string
)
=>
{
func
(
e
.
target
.
checked
);
if
(
!
e
.
target
.
checked
&&
name
)
{
form
.
setFieldsValue
({
[
`
${
name
}
`
]
:
''
})
if
(
!
e
.
target
.
checked
&&
name
)
{
form
.
setFieldsValue
({
[
`
${
name
}
`
]:
''
})
}
};
...
...
@@ -127,12 +132,12 @@ const BidRules: React.FC<Iprops> = (props: any) => {
name=
'startingPrice'
className=
{
styles
.
hidden
}
rules=
{
[{
required
:
tru
e
,
required
:
isStartingPrice
?
true
:
fals
e
,
message
:
'请输入起拍价'
,
type
:
'number'
,
whitespace
:
true
,
transform
(
value
)
{
if
(
value
)
{
if
(
value
)
{
return
parseFloat
(
value
)
}
},
...
...
@@ -160,12 +165,12 @@ const BidRules: React.FC<Iprops> = (props: any) => {
name=
'targetPrice'
className=
{
styles
.
hidden
}
rules=
{
[{
required
:
tru
e
,
required
:
isTargetPrice
?
true
:
fals
e
,
message
:
'请输入目标价'
,
type
:
'number'
,
whitespace
:
true
,
transform
(
value
)
{
if
(
value
)
{
if
(
value
)
{
return
parseFloat
(
value
)
}
},
...
...
@@ -193,12 +198,12 @@ const BidRules: React.FC<Iprops> = (props: any) => {
label=
" "
className=
{
styles
.
hidden
}
rules=
{
[{
required
:
tru
e
,
required
:
isMinPrice
?
true
:
fals
e
,
message
:
'请输入最小价差'
,
type
:
'number'
,
whitespace
:
true
,
transform
(
value
)
{
if
(
value
)
{
if
(
value
)
{
return
parseFloat
(
value
)
}
},
...
...
@@ -225,7 +230,7 @@ const BidRules: React.FC<Iprops> = (props: any) => {
whitespace
:
true
,
pattern
:
new
RegExp
(
/^
[
1-9
]\d
*$/
,
"g"
),
transform
(
value
)
{
if
(
value
)
{
if
(
value
)
{
return
parseInt
(
value
);
}
},
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/file.tsx
View file @
2368dfa9
...
...
@@ -20,7 +20,7 @@ export interface IProps {
const
File
:
React
.
FC
<
IProps
>
=
(
props
)
=>
{
const
{
fetchdata
,
currentRef
}
=
props
;
const
[
form
]
=
Form
.
useForm
();
const
[
files
,
setFiles
]
=
useState
([]);
const
[
files
,
setFiles
]
=
useState
(
fetchdata
||
[]);
const
[
loading
,
setloading
]
=
useState
(
false
);
/**判断文件类型和大小 */
const
beforeDocUpload
=
(
file
:
any
)
=>
{
...
...
@@ -51,11 +51,12 @@ const File: React.FC<IProps> = (props) => {
arr
.
splice
(
index
,
1
);
setFiles
(
arr
);
}
// useEffect(() => {
// if (Object.keys(editData).length > 0) {
// setFiles(editData.enclosureUrls)
// }
// }, [editData])
useEffect
(()
=>
{
if
(
fetchdata
.
length
>
0
)
{
setFiles
(
fetchdata
)
}
},
[
fetchdata
])
useEffect
(()
=>
{
currentRef
.
current
=
{
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/index.tsx
View file @
2368dfa9
...
...
@@ -28,7 +28,7 @@ const ReadyAdd = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyAdd/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
@@ -70,107 +70,94 @@ const ReadyAdd = () => {
</
Button
>
</
Popconfirm
>
<
Dropdown
overlay=
{
()
=>
(
<
Menu
onClick=
{
(
e
)
=>
handleMenuClick
(
e
,
record
.
id
)
}
>
<
Menu
.
Item
key=
"1"
>
修改
</
Menu
.
Item
>
<
Menu
.
Item
key=
"2"
>
删除
</
Menu
.
Item
>
<
Menu
onClick=
{
(
e
)
=>
handleMenuClick
(
e
,
record
)
}
>
<
Menu
.
Item
key=
"1"
>
编辑
</
Menu
.
Item
>
<
Menu
.
Item
key=
"2"
>
删除
</
Menu
.
Item
>
</
Menu
>
)
}
>
<
Button
type=
'link'
>
更多
<
CaretDownOutlined
/></
Button
>
</
Dropdown
>
{
/* <Button
onClick={() => history.push(`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`)}
type='link'
>修改</Button>
<Popconfirm title="确定要删除吗?" okText="是" cancelText="否" onConfirm={() => fetchDeleteBatch(record.id)}>
<Button type='link'>
删除
</Button>
</Popconfirm> */
}
</>
}
</>
}];
const
handleMenuClick
=
(
e
:
any
,
id
:
number
)
=>
{
if
(
e
.
key
===
1
)
{
}
else
{
fetchDeleteBatch
(
id
);
const
handleMenuClick
=
(
e
:
any
,
record
:
any
)
=>
{
if
(
e
.
key
===
'1'
)
{
history
.
push
(
`/memberCenter/procurementAbility/purchaseBid/readyAdd/modify?id=
${
record
.
id
}
&number=
${
record
.
biddingNo
}
`
)
}
else
{
fetchDeleteBatch
(
record
.
id
);
}
}
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingExamine
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingExamineBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
}
/**
* 删除或批量删除
* @type: 1: 单个删除, 2: 批量删除
* */
const
fetchDeleteBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingDelete
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingDeleteBatch
({
ids
:
rowkeys
});
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingExamine
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingExamineBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
/**
* 删除或批量删除
* @type: 1: 单个删除, 2: 批量删除
* */
const
fetchDeleteBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingDelete
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingDeleteBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
}
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingAwaitNewList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
history
.
push
(
'/memberCenter/procurementAbility/purchaseBid/readyAdd/add'
)
}
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
>
新建
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingAwaitNewList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
history
.
push
(
'/memberCenter/procurementAbility/purchaseBid/readyAdd/add'
)
}
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
>
新建
</
Button
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
</
Button
>
<
Button
onClick=
{
()
=>
fetchDeleteBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量删除
<
Button
onClick=
{
()
=>
fetchDeleteBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量删除
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
)
</
Space
>
</
Col
>
</
Row
>
}
/>
)
}
export
default
ReadyAdd
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/index.tsx
View file @
2368dfa9
...
...
@@ -26,13 +26,13 @@ const ReadyBid = () => {
dataIndex
:
'id'
,
key
:
'id'
,
render
:
(
t
,
r
,
i
)
=>
++
i
},
{
},
{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyBid/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyConfirm/index.tsx
View file @
2368dfa9
...
...
@@ -36,7 +36,7 @@ const ReadyConfirm = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyConfirm/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineOne/index.tsx
View file @
2368dfa9
...
...
@@ -32,7 +32,7 @@ const ReadyExamineOne = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyExamineOne/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultOne/index.tsx
View file @
2368dfa9
...
...
@@ -30,7 +30,7 @@ const ReadyExamineResultOne = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyExamineResultOne/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultTwo/index.tsx
View file @
2368dfa9
...
...
@@ -31,7 +31,7 @@ const ReadyExamineResultTwo = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyExamineResultTwo/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineSignUp/index.tsx
View file @
2368dfa9
...
...
@@ -35,7 +35,7 @@ const ReadyExamineSignUp = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyExamineSignUp/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineTwo/index.tsx
View file @
2368dfa9
...
...
@@ -31,7 +31,7 @@ const ReadyExamineTwo = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readyExamineTwo/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readySubmit/index.tsx
View file @
2368dfa9
...
...
@@ -28,7 +28,7 @@ const ReadySubmit = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readySubmit/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
@@ -62,14 +62,14 @@ const ReadySubmit = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
fetchSubmitBatch
(
record
.
id
)
}
}
type=
'link'
>
提交
</
Button
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
fetchSubmitBatch
(
record
.
id
)
}
}
type=
'link'
>
提交
</
Button
>
}];
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingSubmit
({
id
,
state
:
1
});
res
=
await
PublicApi
.
postPurchaseBiddingSubmit
({
id
,
state
:
1
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingSubmitBatch
({
ids
:
rowkeys
});
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readySubmitExamineResult/index.tsx
View file @
2368dfa9
...
...
@@ -31,7 +31,7 @@ const ReadySubmitExamineResult = () => {
dataIndex
:
'biddingNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
offter/addOffter/view
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/
purchaseBid/readySubmitExamineResult/detail
?id=${record.id}&number=${text}`
}
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
src/pages/transaction/purchaseAbility/purchaseBid/search/detail.tsx
View file @
2368dfa9
This diff is collapsed.
Click to expand it.
src/pages/transaction/purchaseAbility/purchaseBid/search/index.tsx
View file @
2368dfa9
...
...
@@ -72,6 +72,7 @@ const Search = () => {
<>
<
Button
type=
'link'
disabled=
{
record
.
externalState
===
-
1
}
onClick=
{
()
=>
{
setId
(
record
.
id
);
setVisible
(
true
);
...
...
@@ -96,6 +97,8 @@ const Search = () => {
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingList
}
reload=
{
ref
}
externalStatusFetch=
{
PublicApi
.
getPurchaseBiddingExternalStatus
}
interiorStatusFetch=
{
PublicApi
.
getPurchaseBiddingInteriorStatus
}
/>
<
ModalOperate
id=
{
id
}
...
...
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