Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mr-julyedu
Overview
Overview
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
baiguangyao
mr-julyedu
Commits
140d6f1b
Commit
140d6f1b
authored
Oct 29, 2019
by
zhanghaozhe
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'deposit-migrate' into 11-11
parents
e4a85ed8
c42220e1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
292 additions
and
289 deletions
+292
-289
src/components/order/deposit/deposit-order/index.js
+292
-289
No files found.
src/components/order/deposit/deposit-order/index.js
View file @
140d6f1b
...
...
@@ -11,321 +11,324 @@ import "./index.scss"
const
Item
=
List
.
Item
function
OrderList
(
props
)
{
const
listData
=
props
.
list
return
(
<
div
>
{
listData
.
map
((
item
,
index
)
=>
{
const
{
is_coupon
,
course_id
,
image_name
,
sale_price
,
simpledescription
,
course_title
,
coupon_num
,
coupon_desc
}
=
item
let
NewPrice
=
(
<
span
className
=
'order-newprice'
>
¥
{
sale_price
}
<
/span>
)
if
(
props
.
locationState
&&
props
.
locationState
.
group
)
{
NewPrice
=
(
<
span
className
=
'order-newprice'
>
¥
{
props
.
groupPrice
}
<
/span>
)
}
const
Info
=
(
<
div
className
=
"order-info"
>
<
p
className
=
'order-title'
style
=
{{
overflow
:
'hidden'
,
textOverflow
:
'ellipsis'
,
whiteSpace
:
'nowrap'
}}
onClick
=
{()
=>
props
.
toDetail
(
course_id
)}
>
{
course_title
}
<
/p
>
<
p
className
=
'order-content'
style
=
{{
WebkitBoxOrient
:
'vertical'
,
WebkitLineClamp
:
'2'
,
wordBreak
:
'break-all'
,
overflow
:
'hidden'
,
textOverflow
:
'ellipsis'
,
display
:
'-webkit-box'
}}
>
{
simpledescription
}
<
/p
>
<
p
className
=
'order-des'
>
{
NewPrice
}
<
span
className
=
{
'price-des'
}
>
(预付定金)
<
/span
>
<
/p
>
<
/div
>
)
const
listData
=
props
.
list
return
(
<
div
>
{
listData
.
map
((
item
,
index
)
=>
{
const
{
is_coupon
,
course_id
,
image_name
,
sale_price
,
simpledescription
,
course_title
,
coupon_num
,
coupon_desc
}
=
item
let
NewPrice
=
(
<
span
className
=
'order-newprice'
>
¥
{
sale_price
}
<
/span>
)
if
(
props
.
locationState
&&
props
.
locationState
.
group
)
{
NewPrice
=
(
<
span
className
=
'order-newprice'
>
¥
{
props
.
groupPrice
}
<
/span>
)
}
const
Info
=
(
<
div
className
=
"order-info"
>
<
p
className
=
'order-title'
style
=
{{
overflow
:
'hidden'
,
textOverflow
:
'ellipsis'
,
whiteSpace
:
'nowrap'
}}
onClick
=
{()
=>
props
.
toDetail
(
course_id
)}
>
{
course_title
}
<
/p
>
<
p
className
=
'order-content'
style
=
{{
WebkitBoxOrient
:
'vertical'
,
WebkitLineClamp
:
'2'
,
wordBreak
:
'break-all'
,
overflow
:
'hidden'
,
textOverflow
:
'ellipsis'
,
display
:
'-webkit-box'
}}
>
{
simpledescription
}
<
/p
>
<
p
className
=
'order-des'
>
{
NewPrice
}
<
span
className
=
{
'price-des'
}
>
(预付定金)
<
/span
>
<
/p
>
<
/div
>
)
return
(
<
OrderItem
{...
item
}
src
=
{
image_name
}
id
=
{
course_id
}
key
=
{
index
}
info
=
{
Info
}
isaist
=
{
props
.
isaist
}
toDetail
=
{
props
.
toDetail
}
>
{
(
props
.
locationState
&&
(
props
.
locationState
.
type
||
props
.
locationState
.
simple
))
?
(
<
div
className
=
"order-prefer"
>
<
List
key
=
{
index
}
>
<
Item
arrow
=
"horizontal"
onClick
=
{()
=>
{
}}
>
<
Link
to
=
{{
pathname
:
`/coupons`
,
search
:
`?id=
${
course_id
}
`
,
state
:
{
from
:
'/order'
}
}}
>
<
Flex
justify
=
'between'
>
return
(
<
OrderItem
{...
item
}
src
=
{
image_name
}
id
=
{
course_id
}
key
=
{
index
}
info
=
{
Info
}
isaist
=
{
props
.
isaist
}
toDetail
=
{
props
.
toDetail
}
>
{
(
props
.
locationState
&&
(
props
.
locationState
.
type
||
props
.
locationState
.
simple
))
?
(
<
div
className
=
"order-prefer"
>
<
List
key
=
{
index
}
>
<
Item
arrow
=
"horizontal"
onClick
=
{()
=>
{
}}
>
<
Link
to
=
{{
pathname
:
`/coupons`
,
search
:
`?id=
${
course_id
}
`
,
state
:
{
from
:
'/order'
}
}}
>
<
Flex
justify
=
'between'
>
<
span
style
=
{{
color
:
'#333'
,
fontSize
:
'15px'
}}
style
=
{{
color
:
'#333'
,
fontSize
:
'15px'
}}
>
优惠券
<
/span
>
<
span
style
=
{{
fontSize
:
'14px'
,
color
:
'#999999'
}}
>
<
span
style
=
{{
fontSize
:
'14px'
,
color
:
'#999999'
}}
>
{
!
coupon_desc
?
(
coupon_num
===
0
?
'无'
:
`
${
coupon_num
}
张可用`
)
:
(
coupon_desc
)}
<
/span
>
<
/Flex
>
<
/Link
>
<
/Item
>
<
/List
>
<
/div
>
)
:
null
}
<
/Flex
>
<
/Link
>
<
/Item
>
<
/List
>
<
/div
>
)
:
null
}
<
/OrderItem
>
)
})
}
<
/div
>
)
<
/OrderItem
>
)
})
}
<
/div
>
)
}
class
Order
extends
Component
{
constructor
(
props
)
{
super
(
props
)
this
.
state
=
{
groupPrice
:
''
,
total
:
0.00
,
// 需要支付总金额
discount
:
0.00
,
//
useBalance
:
false
,
orderList
:
[],
info
:
false
,
offset
:
0
,
depositPrice
:
0
,
course_id
:
getParam
(
'oid'
),
user_account
:
''
,
finalStartTime
:
''
,
}
constructor
(
props
)
{
super
(
props
)
this
.
state
=
{
groupPrice
:
''
,
total
:
0.00
,
// 需要支付总金额
discount
:
0.00
,
//
useBalance
:
false
,
orderList
:
[],
info
:
false
,
offset
:
0
,
depositPrice
:
0
,
course_id
:
getParam
(
'oid'
),
user_account
:
''
,
finalStartTime
:
''
,
}
}
// 提交订单
submitOrder
=
()
=>
{
http
.
post
(
`
${
API
[
"base-api"
]}
/m/deposit/create`
,
{
plat_form
:
5
,
source
:
getParam
(
'source'
),
//来源 1-详情页 2-活动页,
course_id
:
this
.
state
.
course_id
,
is_deduction
:
this
.
state
.
useBalance
?
1
:
0
}).
then
(
res
=>
{
const
{
data
}
=
res
if
(
data
.
errno
==
200
)
{
if
(
data
.
data
[
'pay_jump'
])
{
this
.
props
.
history
.
replace
(
`/expand/callback?order_id=
${
data
.
data
[
'order_id'
]}
`
)
}
else
{
this
.
props
.
history
.
replace
({
pathname
:
'/deposit-pay-order'
,
search
:
`?oid=
${
data
.
data
[
'order_id'
]}
`
})
}
}
else
{
Toast
.
info
(
data
.
msg
)
}
})
}
// 提交订单
submitOrder
=
()
=>
{
http
.
post
(
`
${
API
[
"base-api"
]}
/m/deposit/create`
,
{
plat_form
:
5
,
source
:
getParam
(
'source'
),
//来源 1-详情页 2-活动页,
course_id
:
this
.
state
.
course_id
,
is_deduction
:
this
.
state
.
useBalance
?
1
:
0
}).
then
(
res
=>
{
const
{
data
}
=
res
if
(
data
.
errno
==
200
)
{
if
(
data
.
data
[
'pay_jump'
])
{
this
.
props
.
history
.
replace
(
`/expand/callback?order_id=
${
data
.
data
[
'order_id'
]}
`
)
}
else
{
this
.
props
.
history
.
replace
({
pathname
:
'/deposit-pay-order'
,
search
:
`?oid=
${
data
.
data
[
'order_id'
]}
`
})
}
}
else
{
Toast
.
info
(
data
.
msg
)
}
})
}
showInfo
=
()
=>
{
this
.
setState
((
prevState
)
=>
({
info
:
!
prevState
.
info
}))
}
showInfo
=
()
=>
{
this
.
setState
((
prevState
)
=>
({
info
:
!
prevState
.
info
}))
}
componentDidMount
()
{
http
.
post
(
`
${
API
[
"base-api"
]}
/m/deposit/preorder`
,
{
course_id
:
this
.
state
.
course_id
})
.
then
(
res
=>
{
const
{
data
}
=
res
if
(
data
.
errno
==
200
)
{
this
.
setState
({
orderList
:
[
data
.
data
.
course
],
depositPrice
:
data
.
data
.
course
[
'sale_price'
],
user_account
:
data
.
data
[
'user_account'
],
finalStartTime
:
data
.
data
[
'final_start_time'
]
})
}
else
{
Toast
.
info
(
data
.
msg
)
}
})
};
componentDidMount
()
{
http
.
post
(
`
${
API
[
"base-api"
]}
/m/deposit/preorder`
,
{
course_id
:
this
.
state
.
course_id
})
.
then
(
res
=>
{
const
{
data
}
=
res
if
(
data
.
errno
==
200
)
{
this
.
setState
({
orderList
:
[
data
.
data
.
course
],
depositPrice
:
data
.
data
.
course
[
'sale_price'
],
user_account
:
data
.
data
[
'user_account'
],
finalStartTime
:
data
.
data
[
'final_start_time'
]
})
}
else
{
Toast
.
info
(
data
.
msg
)
}
})
};
toCourseDetail
=
(
id
)
=>
{
const
{
history
}
=
this
.
props
history
.
push
(
`/detail?id=
${
id
}
`
)
}
toCourseDetail
=
(
id
)
=>
{
const
{
history
}
=
this
.
props
history
.
push
(
`/detail?id=
${
id
}
`
)
}
useBalance
=
()
=>
{
let
{
user_account
,
depositPrice
}
=
this
.
state
let
offset
=
parseFloat
(
user_account
)
-
parseFloat
(
depositPrice
)
offset
=
offset
>
0
?
depositPrice
:
user_account
this
.
setState
(
prevState
=>
({
useBalance
:
!
prevState
.
useBalance
,
offset
}))
useBalance
=
()
=>
{
let
{
user_account
,
depositPrice
}
=
this
.
state
if
(
parseFloat
(
user_account
)
===
0
)
{
return
}
let
offset
=
parseFloat
(
user_account
)
-
parseFloat
(
depositPrice
)
offset
=
offset
>
0
?
depositPrice
:
user_account
this
.
setState
(
prevState
=>
({
useBalance
:
!
prevState
.
useBalance
,
offset
}))
}
updateUserAccount
=
()
=>
{
updateUserAccount
=
()
=>
{
}
}
render
()
{
const
{
orderList
,
discount
,
groupPrice
,
depositPrice
,
user_account
,
useBalance
,
info
,
offset
,
finalStartTime
}
=
this
.
state
render
()
{
const
{
orderList
,
discount
,
groupPrice
,
depositPrice
,
user_account
,
useBalance
,
info
,
offset
,
finalStartTime
}
=
this
.
state
return
(
<
div
className
=
"order-wrapper"
>
<
Flex
>
<
Flex
.
Item
>
<
HeaderBar
title
=
'课程报名'
arrow
=
{
true
}
/
>
<
div
className
=
"order-list"
>
<
OrderList
list
=
{
orderList
}
courseId
=
{
getParam
(
'id'
)}
locationState
=
{
this
.
props
.
location
.
state
}
groupPrice
=
{
groupPrice
}
toDetail
=
{
this
.
toCourseDetail
}
/
>
<
/div
>
return
(
<
div
className
=
"order-wrapper"
>
<
Flex
>
<
Flex
.
Item
>
<
HeaderBar
title
=
'课程报名'
arrow
=
{
true
}
/
>
<
div
className
=
"order-list"
>
<
OrderList
list
=
{
orderList
}
courseId
=
{
getParam
(
'id'
)}
locationState
=
{
this
.
props
.
location
.
state
}
groupPrice
=
{
groupPrice
}
toDetail
=
{
this
.
toCourseDetail
}
/
>
<
/div
>
<
div
className
=
"order-balance"
>
<
List
>
<
Item
className
=
"order-prefer-text"
>
<
Flex
justify
=
'between'
>
<
Flex
align
=
'center'
>
<
span
>
余额抵扣
<
/span
>
<
span
className
=
"order-balanceprice"
>
(
余额
:
<
i
className
=
"order-money"
>
{
`
${
user_account
}
元`
}
<
/i>
)
</
span
>
<
i
className
=
"iconfont iconiconfront-22 question-mark"
onClick
=
{
this
.
showInfo
}
><
/i
>
<
/Flex
>
<
Flex
>
{
useBalance
?
(
<>
<
span
style
=
{{
color
:
'#FF2121'
,
fontSize
:
'15px'
,
marginRight
:
"6px"
}}
>
{
`-¥
${
offset
}
`
}
<
/span
>
<
i
className
=
{
`iconfont icondanseshixintubiao-5 balance-used`
}
onClick
=
{
this
.
useBalance
}
><
/i
>
<
/
>
)
:
(
<
i
className
=
'circle-icon'
onClick
=
{
this
.
useBalance
}
><
/i
>
)
}
<
/Flex
>
<
/Flex
>
<
/Item
>
<
/List
>
<
/div
>
<
div
className
=
"order-balance"
>
<
List
>
<
Item
className
=
"order-prefer-text"
>
<
Flex
justify
=
'between'
>
<
Flex
align
=
'center'
>
<
span
>
余额抵扣
<
/span
>
<
span
className
=
"order-balanceprice"
>
(
余额
:
<
i
className
=
"order-money"
>
{
`
${
user_account
}
元`
}
<
/i>
)
</
span
>
<
i
className
=
"iconfont iconiconfront-22 question-mark"
onClick
=
{
this
.
showInfo
}
><
/i
>
<
/Flex
>
<
Flex
>
{
useBalance
?
(
<>
<
span
style
=
{{
color
:
'#FF2121'
,
fontSize
:
'15px'
,
marginRight
:
"6px"
}}
>
{
`-¥
${
offset
}
`
}
<
/span
>
<
i
className
=
{
`iconfont icondanseshixintubiao-5 balance-used`
}
onClick
=
{
this
.
useBalance
}
><
/i
>
<
/
>
)
:
(
<
i
className
=
'circle-icon'
onClick
=
{
this
.
useBalance
}
><
/i
>
)
}
<
/Flex
>
<
/Flex
>
<
/Item
>
<
/List
>
<
/div
>
<
ul
className
=
{
'deposit-limit-time'
}
>
<
li
>
·
{
finalStartTime
}
开始支付尾款
<
/li
>
<
li
>
·
代金券只能在支付尾款时使用
<
/li
>
<
/ul
>
<
div
className
=
"order-bar"
>
<
div
className
=
"order-course"
>
<
span
className
=
"order-course-text"
>
{
`
${
orderList
.
length
}
门课程`
}
<
/span
>
<
/div
>
<
div
className
=
"order-bar-text"
>
<
div
className
=
"order-amount"
>
<
span
className
=
"order-amount-title"
>
合计
:
<
/span
>
<
span
className
=
"order-amount-price"
>
{
`¥
${
depositPrice
}
`
}
<
/span
>
<
/div
>
<
div
className
=
"order-preprice"
>
<
span
className
=
"order-preprice-title"
>
已优惠
:
<
/span
>
<
span
className
=
"order-preprice-price"
>
{
`¥
${
discount
}
`
}
<
/span
>
<
/div
>
<
/div
>
<
button
type
=
"button"
className
=
"order-button has-info"
>
<
span
className
=
"order-button-text"
onClick
=
{
this
.
submitOrder
}
>
确定订单
<
/span
>
<
/button
>
<
/div
>
<
/Flex.Item
>
<
ul
className
=
{
'deposit-limit-time'
}
>
<
li
>
·
{
finalStartTime
}
开始支付尾款
<
/li
>
<
li
>
·
代金券只能在支付尾款时使用
<
/li
>
<
/ul
>
<
div
className
=
"order-bar"
>
<
div
className
=
"order-course"
>
<
span
className
=
"order-course-text"
>
{
`
${
orderList
.
length
}
门课程`
}
<
/span
>
<
/div
>
<
div
className
=
"order-bar-text"
>
<
div
className
=
"order-amount"
>
<
span
className
=
"order-amount-title"
>
合计
:
<
/span
>
<
span
className
=
"order-amount-price"
>
{
`¥
${
depositPrice
}
`
}
<
/span
>
<
/div
>
<
div
className
=
"order-preprice"
>
<
span
className
=
"order-preprice-title"
>
已优惠
:
<
/span
>
<
span
className
=
"order-preprice-price"
>
{
`¥
${
discount
}
`
}
<
/span
>
<
/div
>
<
/div
>
<
button
type
=
"button"
className
=
"order-button has-info"
>
<
span
className
=
"order-button-text"
onClick
=
{
this
.
submitOrder
}
>
确定订单
<
/span
>
<
/button
>
<
/div
>
<
/Flex.Item
>
<
/Flex
>
{
info
?
(
<
div
style
=
{{
position
:
'fixed'
,
top
:
0
,
left
:
0
,
width
:
'100%'
,
height
:
'100%'
,
backgroundColor
:
'rgba(0, 0, 0, 0.8)'
,
zIndex
:
'99'
}}
>
<
div
style
=
{{
padding
:
'20px'
,
backgroundColor
:
'#FFF'
,
width
:
'300px'
,
height
:
'170px'
,
margin
:
'0 auto'
,
position
:
'absolute'
,
left
:
'50%'
,
top
:
'50%'
,
transform
:
'translate(-50%, -50%)'
}}
>
<
Flex
direction
=
'column'
justify
=
'between'
align
=
'center'
style
=
{{
height
:
'100%'
}}
>
<
p
style
=
{{
fontSize
:
'16px'
,
color
:
'#333333'
}}
>
余额抵扣说明
<
/p
>
<
p
style
=
{{
lineHeight
:
'20px'
,
fontSize
:
'13px'
,
color
:
'#666666'
}}
>
分销课程或者参与七月在线的相关活动,可获得资金奖励。账户资金可直接提现,也可抵扣课程费用。
<
/p
>
<
div
onClick
=
{
this
.
showInfo
}
style
=
{{
width
:
'260px'
,
height
:
'30px'
,
lineHeight
:
'30px'
,
textAlign
:
'center'
,
borderRadius
:
'3px'
,
border
:
'1px solid #0099FF'
,
color
:
'#0099FF'
,
fontSize
:
'15px'
}}
>
知道了
<
/div
>
<
/Flex
>
{
info
?
(
<
div
style
=
{{
position
:
'fixed'
,
top
:
0
,
left
:
0
,
width
:
'100%'
,
height
:
'100%'
,
backgroundColor
:
'rgba(0, 0, 0, 0.8)'
,
zIndex
:
'99'
}}
>
<
div
style
=
{{
padding
:
'20px'
,
backgroundColor
:
'#FFF'
,
width
:
'300px'
,
height
:
'170px'
,
margin
:
'0 auto'
,
position
:
'absolute'
,
left
:
'50%'
,
top
:
'50%'
,
transform
:
'translate(-50%, -50%)'
}}
>
<
Flex
direction
=
'column'
justify
=
'between'
align
=
'center'
style
=
{{
height
:
'100%'
}}
>
<
p
style
=
{{
fontSize
:
'16px'
,
color
:
'#333333'
}}
>
余额抵扣说明
<
/p
>
<
p
style
=
{{
lineHeight
:
'20px'
,
fontSize
:
'13px'
,
color
:
'#666666'
}}
>
分销课程或者参与七月在线的相关活动,可获得资金奖励。账户资金可直接提现,也可抵扣课程费用。
<
/p
>
<
div
onClick
=
{
this
.
showInfo
}
style
=
{{
width
:
'260px'
,
height
:
'30px'
,
lineHeight
:
'30px'
,
textAlign
:
'center'
,
borderRadius
:
'3px'
,
border
:
'1px solid #0099FF'
,
color
:
'#0099FF'
,
fontSize
:
'15px'
}}
>
知道了
<
/div
>
<
/Flex
>
<
/div
>
<
/div
>
)
:
null
}
<
/div
>
<
/div
>
)
:
null
}
<
/div
>
)
}
)
}
}
...
...
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