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
88e6c2c3
Commit
88e6c2c3
authored
May 13, 2021
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-srm' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev-srm
parents
f562200b
9a23825e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
351 additions
and
240 deletions
+351
-240
index.tsx
src/components/Charts/Gauge/index.tsx
+9
-6
index.tsx
...ges/afterService/components/ExchangeAddressInfo/index.tsx
+50
-21
index.ts
...terService/components/ExchangeAddressInfo/schema/index.ts
+11
-16
index.less
...es/afterService/components/ExchangeDeliverInfo/index.less
+2
-1
index.tsx
...ges/afterService/components/ExchangeDeliverInfo/index.tsx
+0
-0
index.less
...s/afterService/components/ExchangeReceivedInfo/index.less
+2
-1
index.tsx
...es/afterService/components/ExchangeReceivedInfo/index.tsx
+0
-0
index.less
src/pages/afterService/components/FileList/index.less
+8
-0
index.tsx
src/pages/afterService/components/FileList/index.tsx
+23
-19
index.tsx
...pages/afterService/components/ReturnAddressInfo/index.tsx
+28
-60
index.less
src/pages/afterService/components/ReturnAnalysis/index.less
+2
-1
index.tsx
src/pages/afterService/components/ReturnAnalysis/index.tsx
+0
-0
index.less
src/pages/afterService/components/Score/index.less
+25
-0
index.tsx
src/pages/afterService/components/Score/index.tsx
+41
-12
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/components/Charts/Gauge/index.tsx
View file @
88e6c2c3
...
...
@@ -20,6 +20,10 @@ export interface GaugeProps {
formatter
?:
(
value
:
string
)
=>
string
;
// 格式化内容
formatContent
?:
(
value
:
number
)
=>
string
;
/**
* 线条宽度
*/
strokeWidth
?:
number
,
}
const
defaultFormatter
=
(
val
:
string
):
string
=>
{
...
...
@@ -85,6 +89,7 @@ const Gauge: React.FC<GaugeProps> = (props) => {
formatContent
=
defaultFormatContent
,
color
=
'#2F9CFF'
,
bgColor
=
'#F0F2F5'
,
strokeWidth
=
10
,
}
=
props
;
const
cols
=
{
value
:
{
...
...
@@ -128,12 +133,10 @@ const Gauge: React.FC<GaugeProps> = (props) => {
label=
{
{
offset
:
-
24
,
formatter
,
textStyle
,
style
:
textStyle
,
}
}
subTickLine=
{
null
}
tickLine=
{
{
length
:
-
12
,
}
}
tickLine=
{
null
}
grid=
{
null
}
/>
<
Point
...
...
@@ -148,7 +151,7 @@ const Gauge: React.FC<GaugeProps> = (props) => {
end=
{
[
10
,
0.965
]
}
style=
{
{
stroke
:
bgColor
,
lineWidth
:
10
,
lineWidth
:
strokeWidth
,
lineDash
:
null
,
}
}
/>
...
...
@@ -157,7 +160,7 @@ const Gauge: React.FC<GaugeProps> = (props) => {
end=
{
[
data
[
0
].
value
,
0.965
]
}
style=
{
{
stroke
:
color
,
lineWidth
:
10
,
lineWidth
:
strokeWidth
,
lineDash
:
null
,
}
}
/>
...
...
src/pages/afterService/components/ExchangeAddressInfo/index.tsx
View file @
88e6c2c3
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 09:54:04
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-0
2-19 20:33:3
6
* @LastEditTime: 2021-0
5-13 16:09:5
6
* @Description: 换货收货地址
*/
import
React
,
{
useEffect
}
from
'react'
;
...
...
@@ -26,7 +26,48 @@ export interface Values {
sendAddress
:
string
|
undefined
,
sendUserName
:
string
|
undefined
,
sendUserTel
:
string
|
undefined
,
};
}
interface
AddressData
{
/**
* id
*/
id
?:
number
;
/**
* 配送方式
*/
deliveryType
?:
number
;
/**
* 收件人名字
*/
name
:
string
,
/**
* 收件人电话号码
*/
phone
:
string
,
/**
* 收件地址
*/
fullAddress
:
string
,
}
interface
AddressProps
{
value
:
AddressData
,
}
const
Address
:
React
.
FC
<
AddressProps
>
=
({
value
})
=>
(
<
div
>
<
p
>
{
value
.
name
||
''
}
/
{
value
.
phone
||
''
}
</
p
>
<
p
>
{
value
.
fullAddress
||
''
}
</
p
>
</
div
>
);
const
ShippingAddress
:
React
.
FC
<
AddressProps
>
=
({
value
})
=>
(
<
div
>
<
p
>
{
value
.
name
||
''
}
/
{
value
.
phone
||
''
}
</
p
>
<
p
>
{
value
.
fullAddress
||
''
}
</
p
>
</
div
>
);
interface
ExchangeAddressInfo
extends
MellowCardProps
{
/**
...
...
@@ -90,7 +131,7 @@ interface ExchangeAddressInfo extends MellowCardProps {
* 提交事件
*/
onFormSubmit
:
(
values
:
Values
)
=>
void
;
}
;
}
const
ExchangeAddressInfo
:
React
.
FC
<
ExchangeAddressInfo
>
=
({
isEdit
=
false
,
...
...
@@ -188,20 +229,6 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
});
};
const
Address
=
(
<
div
>
<
p
>
{
deliveryAddress
.
name
||
''
}
/
{
deliveryAddress
.
phone
||
''
}
</
p
>
<
p
>
{
deliveryAddress
.
fullAddress
||
''
}
</
p
>
</
div
>
);
const
ShippingAddress
=
(
<
div
>
<
p
>
{
shippingAddress
.
name
||
''
}
/
{
shippingAddress
.
phone
||
''
}
</
p
>
<
p
>
{
shippingAddress
.
fullAddress
||
''
}
</
p
>
</
div
>
);
return
(
<
MellowCard
title=
"换货收货地址"
...
...
@@ -212,12 +239,10 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
deliveryType
:
shippingAddress
.
deliveryType
,
shippingAddress
:
shippingAddress
.
id
,
pickupAddress
:
shippingAddress
.
id
,
deliveryAddress
,
shippingAddressShow
:
shippingAddress
,
}
}
previewPlaceholder=
" "
expressionScope=
{
{
Address
,
ShippingAddress
,
}
}
effects=
{
(
$
,
{
getFieldValue
})
=>
{
useAsyncSelect
(
'*(shippingAddress,pickupAddress)'
,
fetchShipperAddress
,
[
'label'
,
'value'
]);
...
...
@@ -285,6 +310,10 @@ const ExchangeAddressInfo: React.FC<ExchangeAddressInfo> = ({
}
});
}
}
components=
{
{
Address
,
ShippingAddress
,
}
}
editable=
{
isEdit
}
actions=
{
modalFormActions
}
schema=
{
schema
}
...
...
src/pages/afterService/components/ExchangeAddressInfo/schema/index.ts
View file @
88e6c2c3
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-09 15:56:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-0
1-21 14:14:26
* @LastEditTime: 2021-0
5-13 16:18:24
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
...
...
@@ -15,9 +15,10 @@ export const schema: ISchema = {
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
6
,
wrapperCol
:
16
,
labelAlign
:
'left'
,
labelWidth
:
106
,
labelAlign
:
'left'
,
grid
:
true
,
full
:
true
},
properties
:
{
deliveryType
:
{
...
...
@@ -37,14 +38,6 @@ export const schema: ISchema = {
},
],
},
deliveryAddress
:
{
type
:
'object'
,
title
:
'换货收货地址'
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{Address}}'
,
},
},
shippingAddress
:
{
type
:
'string'
,
title
:
'换货发货地址'
,
...
...
@@ -81,14 +74,16 @@ export const schema: ISchema = {
},
],
},
deliveryAddress
:
{
type
:
'object'
,
title
:
'换货收货地址'
,
'x-component'
:
'Address'
,
},
shippingAddressShow
:
{
type
:
'object'
,
title
:
'换货发货地址'
,
visible
:
false
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{ShippingAddress}}'
,
},
'x-component'
:
'ShippingAddress'
,
},
},
},
...
...
src/pages/afterService/components/ExchangeDeliverInfo/index.less
View file @
88e6c2c3
.detailedWrap {
padding: 25px 24px 9px;
margin: 16px 0;
background-color: #F
7F8FA
;
background-color: #F
AFBFC
;
}
\ No newline at end of file
src/pages/afterService/components/ExchangeDeliverInfo/index.tsx
View file @
88e6c2c3
This diff is collapsed.
Click to expand it.
src/pages/afterService/components/ExchangeReceivedInfo/index.less
View file @
88e6c2c3
.detailedWrap {
padding: 25px 24px 9px;
margin: 16px 0;
background-color: #F
7F8FA
;
background-color: #F
AFBFC
;
}
\ No newline at end of file
src/pages/afterService/components/ExchangeReceivedInfo/index.tsx
View file @
88e6c2c3
This diff is collapsed.
Click to expand it.
src/pages/afterService/components/FileList/index.less
View file @
88e6c2c3
.file {
:global {
.ant-upload-list-item {
margin-top: 0;
}
}
}
\ No newline at end of file
src/pages/afterService/components/FileList/index.tsx
View file @
88e6c2c3
...
...
@@ -2,16 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2020-11-03 11:49:34
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-05-1
2 15:10:10
* @LastEditTime: 2021-05-1
3 15:38:46
* @Description: 附件列表
*/
import
React
from
'react'
;
import
{
Empty
}
from
'antd'
;
import
{
SchemaForm
,
SchemaMarkupField
as
Field
,
}
from
'@formily/antd'
;
import
{
Upload
,
FormMegaLayout
}
from
'@formily/antd-components'
;
import
{
Empty
,
Descriptions
,
Upload
}
from
'antd'
;
import
{
FileData
}
from
'@/utils'
;
import
MellowCard
,
{
MellowCardProps
}
from
'@/components/MellowCard'
;
import
styles
from
'./index.less'
;
...
...
@@ -33,18 +28,27 @@ const FileList: React.FC<FileListProps> = ({
{
...
rest
}
>
{
fileList
&&
fileList
.
length
?
(
<
SchemaForm
components=
{
{
Upload
}
}
value=
{
{
files
:
fileList
,
}
}
editable=
{
false
}
previewPlaceholder=
" "
>
<
FormMegaLayout
full
>
<
Field
name=
"files"
title=
"相关不良原因举证附件"
x
-
component=
"Upload"
/>
</
FormMegaLayout
>
</
SchemaForm
>
// <SchemaForm
// components=
{{
Upload
}}
// value=
{{
// files: fileList,
//
}}
// editable=
{
false
}
// previewPlaceholder=" "
// >
// <FormMegaLayout full>
// <Field name="files" title="相关不良原因举证附件" x-component="Upload" />
// </FormMegaLayout>
// </SchemaForm>
<
Descriptions
column=
{
1
}
>
<
Descriptions
.
Item
label=
"相关不良原因举证附件"
>
<
Upload
className=
{
styles
.
file
}
fileList=
{
fileList
}
disabled
/>
</
Descriptions
.
Item
>
</
Descriptions
>
)
:
(
<
Empty
image=
{
Empty
.
PRESENTED_IMAGE_SIMPLE
}
/>
)
}
...
...
src/pages/afterService/components/ReturnAddressInfo/index.tsx
View file @
88e6c2c3
...
...
@@ -30,30 +30,40 @@ export interface Values {
};
interface
AddressData
{
value
:
{
/**
* 收件人名字
*/
name
:
string
,
/**
* 收件人电话号码
*/
phone
:
string
,
/**
* 收件地址
*/
fullAddress
:
string
,
}
/**
* id
*/
id
?:
number
;
/**
* 配送方式
*/
deliveryType
?:
number
;
/**
* 收件人名字
*/
name
:
string
,
/**
* 收件人电话号码
*/
phone
:
string
,
/**
* 收件地址
*/
fullAddress
:
string
,
}
interface
AddressProps
{
value
:
AddressData
,
}
const
Address
:
React
.
FC
<
Address
Data
>
=
({
value
})
=>
(
const
Address
:
React
.
FC
<
Address
Props
>
=
({
value
})
=>
(
<
div
>
<
p
>
{
value
.
name
||
''
}
/
{
value
.
phone
||
''
}
</
p
>
<
p
>
{
value
.
fullAddress
||
''
}
</
p
>
</
div
>
);
const
DeliveryAddress
:
React
.
FC
<
Address
Data
>
=
({
value
})
=>
(
const
DeliveryAddress
:
React
.
FC
<
Address
Props
>
=
({
value
})
=>
(
<
div
>
<
p
>
{
value
.
name
||
''
}
/
{
value
.
phone
||
''
}
</
p
>
<
p
>
{
value
.
fullAddress
||
''
}
</
p
>
...
...
@@ -69,54 +79,12 @@ interface ReturnAddressInfo extends MellowCardProps {
/**
* 退货收货地址
*/
deliveryAddress
:
{
/**
* id
*/
id
?:
number
;
/**
* 配送方式
*/
deliveryType
?:
number
;
/**
* 收件人姓名
*/
name
:
string
;
/**
* phone
*/
phone
:
string
;
/**
* 完整地址
*/
fullAddress
:
string
;
},
deliveryAddress
:
AddressData
,
/**
* 退货发货地址
*/
shippingAddress
:
{
/**
* id
*/
id
?:
number
;
/**
* 配送方式
*/
deliveryType
?:
number
;
/**
* 收件人姓名
*/
name
:
string
;
/**
* phone
*/
phone
:
string
;
/**
* 完整地址
*/
fullAddress
:
string
;
},
shippingAddress
:
AddressData
,
/**
* 表单提交事件
...
...
src/pages/afterService/components/ReturnAnalysis/index.less
View file @
88e6c2c3
.detailedWrap {
padding: 25px 24px 9px;
margin: 16px 0;
background-color: #F
7F8FA
;
background-color: #F
AFBFC
;
}
\ No newline at end of file
src/pages/afterService/components/ReturnAnalysis/index.tsx
View file @
88e6c2c3
This diff is collapsed.
Click to expand it.
src/pages/afterService/components/Score/index.less
View file @
88e6c2c3
@import '~antd/es/style/themes/default.less';
.evaluate {
.score {
position: absolute;
&-left {
padding-right: 90px;
}
&-right {
position: absolute;
top: -50%;
right: 0;
width: 80px;
flex-shrink: 0;
}
&-star {
font-size: @font-size-lg;
font-weight: 500;
}
}
}
\ No newline at end of file
src/pages/afterService/components/Score/index.tsx
View file @
88e6c2c3
...
...
@@ -2,12 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2020-11-03 14:12:34
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-0
2-20 14:28:19
* @LastEditTime: 2021-0
5-13 15:30:21
* @Description: 评价
*/
import
React
from
'react'
;
import
{
Row
,
Col
,
Descriptions
}
from
'antd'
;
import
MellowCard
,
{
MellowCardProps
}
from
'@/components/MellowCard'
;
import
{
Gauge
}
from
'@/components/Charts'
;
import
styles
from
'./index.less'
;
// 满分 5分
const
FULL_SCORE
=
5
;
...
...
@@ -47,19 +49,46 @@ const Score: React.FC<ScoreProps> = ({
return
(
<
MellowCard
title=
"售后评价"
className=
{
styles
.
evaluate
}
{
...
rest
}
>
<
Gauge
title=
{
`${score}分`
}
height=
{
170
}
percent=
{
+
(
score
/
FULL_SCORE
*
100
).
toFixed
(
2
)
}
formatter=
{
()
=>
''
}
formatContent=
{
(
val
)
=>
`${TITLE_MAP[score]}`
}
color=
{
COLOR_MAP
[
score
]
}
/>
<
p
style=
{
{
color
:
'#909399'
}
}
>
售后评价:
{
content
}
</
p
>
<
Row
gutter=
{
40
}
>
<
Col
span=
{
8
}
>
<
div
className=
{
styles
.
score
}
>
<
div
className=
{
styles
[
'score-left'
]
}
>
<
Descriptions
column=
{
1
}
>
<
Descriptions
.
Item
label=
"售后满意度"
>
<
span
className=
{
styles
[
'score-star'
]
}
>
{
`${score}分`
}
</
span
>
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
<
div
className=
{
styles
[
'score-right'
]
}
>
<
Gauge
title=
""
height=
{
90
}
percent=
{
+
(
score
/
FULL_SCORE
*
100
).
toFixed
(
2
)
}
formatter=
{
()
=>
''
}
formatContent=
{
()
=>
''
}
color=
{
COLOR_MAP
[
score
]
}
strokeWidth=
{
5
}
/>
</
div
>
</
div
>
</
Col
>
<
Col
span=
{
16
}
>
<
Descriptions
column=
{
1
}
>
<
Descriptions
.
Item
label=
"售后评价"
>
{
content
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
Col
>
</
Row
>
</
MellowCard
>
);
};
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidDetailLayout/index.tsx
View file @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
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 @
88e6c2c3
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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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 @
88e6c2c3
...
...
@@ -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