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
2eb91ebe
Commit
2eb91ebe
authored
Jun 21, 2019
by
zhanghaozhe
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into pre
parents
117bcaa1
93d8d984
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
775 additions
and
326 deletions
+775
-326
src/components/bargainMiddlePage/bargain-middle-page.scss
+172
-3
src/components/bargainMiddlePage/index.js
+174
-102
src/components/detail/bargain/bargain.scss
+4
-1
src/components/detail/bargain/bargainInfo/bargain-info.scss
+62
-55
src/components/detail/bargain/bargainInfo/index.js
+96
-18
src/components/detail/bargain/index.js
+34
-58
src/components/detail/btnstatus/index.js
+27
-36
src/components/detail/carousel/index.js
+3
-3
src/components/detail/group/index.js
+41
-4
src/components/detail/group/togroup.js
+19
-6
src/components/detail/index.js
+49
-21
src/components/detail/overlay/overlay.scss
+2
-1
src/components/detail/shareRank/index.scss
+1
-4
src/components/detail/single/index.js
+86
-10
src/components/scholarship/DrawDocument/DrawDocument.js
+1
-1
src/components/scholarship/index.js
+4
-3
No files found.
src/components/bargainMiddlePage/bargain-middle-page.scss
View file @
2eb91ebe
...
...
@@ -162,7 +162,20 @@
margin-top
:
10px
;
}
button
{
.artifact-btn
{
float
:
right
;
position
:
relative
;
top
:
-20px
;
width
:
61px
;
height
:
24px
;
background
:
$bg_FF4000
;
border-radius
:
12px
;
font-size
:
12px
;
border
:
none
;
color
:
$white
;
}
.active-btn
{
width
:
210px
;
height
:
30px
;
box-shadow
:
0px
1px
3px
0px
rgba
(
255
,
64
,
0
,
0
.5
);
...
...
@@ -175,10 +188,14 @@
}
.invalid-btn
{
width
:
210px
;
height
:
30px
;
background
:
$bg_999
;
color
:
$white
;
font-size
:
16px
;
box-shadow
:
none
;
border-radius
:
15px
;
border
:
none
;
}
}
}
...
...
@@ -273,7 +290,7 @@
.subtitle
{
font-size
:
$font_14
;
color
:
#
FF4000
;
color
:
$color_
FF4000
;
}
}
...
...
@@ -294,6 +311,9 @@
border
:
none
;
color
:
$color_FF4000
;
-webkit-appearance
:
none
;
display
:
inline-block
;
text-align
:
center
;
line-height
:
30px
;
}
.btns
{
...
...
@@ -304,14 +324,23 @@
width
:
80px
;
height
:
30px
;
background
:
$bg_FADD29
;
text-align
:
center
;
line-height
:
28px
;
border
:
none
;
color
:
$color_FF4000
;
-webkit-appearance
:
none
;
}
.invalid
{
width
:
80px
;
height
:
30px
;
background
:
$bg_999
;
color
:
$white
;
border
:
none
;
-webkit-appearance
:
none
;
border-radius
:
2px
;
}
.purchase-btn
{
...
...
@@ -372,9 +401,11 @@
line-height
:
12px
;
}
button
{
.bargain-href
{
display
:
inline-block
;
width
:
260px
;
height
:
30px
;
line-height
:
28px
;
background-color
:
$bg_FADD29
;
color
:
$color_FF4000
;
font-size
:
16px
;
...
...
@@ -538,3 +569,141 @@
}
.close-bargain-success
{
position
:
fixed
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.bargain-success
{
width
:
290px
;
height
:
109px
;
padding
:
15px
;
background
:
$white
;
border-radius
:
5px
;
text-align
:
center
;
margin
:
100px
auto
20px
auto
;
position
:
relative
;
p
:nth-of-type
(
2
)
{
font-size
:
14px
;
margin-top
:
10px
;
}
p
:nth-of-type
(
1
)
{
font-size
:
12px
;
margin-top
:
10px
;
}
.indicator
{
color
:
$color_FE2F2F
;
}
.iconyindao
{
display
:
inline-block
;
width
:
60px
;
height
:
44px
;
position
:
absolute
;
top
:
-60px
;
right
:
0
;
color
:
$white
;
font-size
:
40px
;
}
.moreMbc
{
position
:
fixed
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
background-color
:
rgba
(
0
,
0
,
0
,
.6
);
z-index
:
2
;
.content
{
width
:
300px
;
height
:
340px
;
background-color
:
$white
;
border-radius
:
3px
;
margin
:
130px
auto
20px
auto
;
position
:
relative
;
.title-box
{
width
:
100%
;
height
:
45px
;
text-align
:
center
;
color
:
$color_202426
;
font-size
:
16px
;
line-height
:
45px
;
}
.more-bargain-list
{
width
:
100%
;
height
:
253px
;
overflow
:
auto
;
border-top
:
1px
solid
$sp_e7eaf1
;
padding
:
0
15px
;
background-color
:
$bg_f5f5f5
;
.bargain-item
{
border-bottom
:
1px
solid
$sp_e7eaf1
;
height
:
50px
;
display
:
flex
;
position
:
relative
;
.avatar
{
width
:
30px
;
height
:
30px
;
border-radius
:
50%
;
margin-top
:
10px
;
margin-right
:
10px
;
}
.name
{
font-size
:
14px
;
color
:
$color_333
;
max-width
:
130px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
line-height
:
50px
;
}
.bargain-status
{
line-height
:
50px
;
color
:
$color_333
;
font-size
:
14px
;
position
:
absolute
;
right
:
0
;
}
}
}
}
.more-bargain-dec
{
width
:
100%
;
position
:
absolute
;
bottom
:
0
;
height
:
42px
;
font-size
:
12px
;
color
:
$color_FF4000
;
text-align
:
center
;
line-height
:
42px
;
}
.close
{
color
:
#fff
;
font-size
:
22px
;
position
:
relative
;
left
:
50%
;
margin-left
:
-11px
;
}
}
}
src/components/bargainMiddlePage/index.js
View file @
2eb91ebe
import
React
,
{
Component
,
useState
}
from
'react'
import
React
,
{
Component
}
from
'react'
import
'./bargain-middle-page.scss'
import
classnames
from
'classnames'
import
{
HeaderBar
,
VList
}
from
'@common'
import
{
Course
}
from
'@common'
import
{
api
,
getParam
,
http
}
from
"@/utils"
import
{
Flex
,
Toast
}
from
"antd-mobile"
import
{
api
,
getParam
,
http
,
browser
}
from
"@/utils"
import
{
Toast
}
from
"antd-mobile"
import
{
Link
,
withRouter
}
from
"react-router-dom"
import
Ranking
from
'./ranking'
import
{
differenceInSeconds
,
differenceInMinutes
,
differenceInHours
}
from
"date-fns"
import
{
differenceInSeconds
,
differenceInMinutes
,
differenceInHours
,
differenceInDays
}
from
"date-fns"
import
Overlay
from
'../detail/overlay'
import
{
compose
}
from
"redux"
import
{
connect
}
from
"react-redux"
;
class
BargainMiddlePage
extends
Component
{
...
...
@@ -18,7 +18,7 @@ class BargainMiddlePage extends Component {
super
(
props
)
this
.
state
=
{
isShowOverlay
:
false
,
isOriginator
:
getParam
(
'is_originator'
)
,
isOriginator
:
''
,
kanjiaIcon
:
require
(
'./image/kanjia_icon.png'
),
courseList
:
''
,
// 所有砍价课程
data
:
''
,
...
...
@@ -31,12 +31,17 @@ class BargainMiddlePage extends Component {
status
:
''
,
hour
:
''
,
min
:
''
,
sec
:
''
sec
:
''
,
day
:
''
,
amount
:
''
,
firendBaigainPrice
:
true
,
isshowYindao
:
false
,
isLoaidng
:
true
}
}
componentDidMount
()
{
this
.
getBargainRankList
(
'144'
,
1
)
this
.
getBargainRankList
(
getParam
(
'id'
)
,
1
)
this
.
getBargainCourse
()
this
.
getBargainInfo
()
}
...
...
@@ -48,6 +53,7 @@ class BargainMiddlePage extends Component {
if
(
res
.
data
.
code
===
200
)
{
this
.
setState
({
data
:
res
.
data
.
data
,
isOriginator
:
res
.
data
.
data
.
is_originator
,
originatorUid
:
res
.
data
.
data
.
originator_uid
,
limitPeople
:
res
.
data
.
data
.
course
.
limit_people
,
bargainData
:
res
.
data
.
data
.
bargain
,
...
...
@@ -151,52 +157,54 @@ class BargainMiddlePage extends Component {
type
:
type
,
// 1 用户自己砍价 2 使用砍价神器 3 好友助力砍价 4 好友第二次助力
parent_uid
:
uid
// 被助力人id 【自己本人操作传0】
}
http
.
post
(
`
${
api
.
home
}
/m/
to_b
argain`
,
data
).
then
((
res
)
=>
{
http
.
post
(
`
${
api
.
home
}
/m/
bargain/toB
argain`
,
data
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
this
.
getBargainInfo
()
// is_success =0一切正常 =1 不能在砍了 =2关注公众号,可以再砍一刀!
this
.
setState
({
amount
:
res
.
data
.
data
.
amount
})
if
(
type
===
2
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
6
})
}
if
(
type
===
3
)
{
this
.
userStatus
()
}
if
(
type
===
4
)
{
if
(
res
.
data
.
data
.
is_success
===
1
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
3
status
:
4
})
}
else
if
(
res
.
data
.
data
.
is_success
===
2
)
{
if
(
type
===
3
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
2
})
}
else
if
(
type
===
4
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
1
,
firendBaigainPrice
:
false
})
}
}
else
if
(
res
.
data
.
data
.
is_success
===
0
)
{
if
(
type
===
3
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
2
})
}
else
if
(
type
===
4
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
3
})
}
}
// this.setState({
// isShowOverlay: true,
// status: 4
// })
this
.
getBargainInfo
()
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
}
})
}
// 获取用户状态
userStatus
=
()
=>
{
http
.
get
(
`
${
api
.
home
}
/sys/userStatus`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
// 0-都没绑定 1-只绑定公众号 2-只绑定手机号 3-都绑定
if
(
res
.
data
.
data
.
status
===
0
||
res
.
data
.
data
.
status
===
2
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
1
})
}
else
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
2
})
}
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
}
...
...
@@ -214,6 +222,14 @@ class BargainMiddlePage extends Component {
this
.
toKanjia
(
getParam
(
'id'
),
4
,
this
.
state
.
originatorUid
)
}
// 邀请好友砍价
shareFriendBargain
=
()
=>
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
7
,
isshowYindao
:
browser
.
isWeixin
?
true
:
false
})
}
// 关闭弹窗
close
=
()
=>
{
...
...
@@ -224,7 +240,6 @@ class BargainMiddlePage extends Component {
}
render
()
{
let
h
,
m
,
s
if
(
this
.
state
.
bargainData
.
expire_time
)
{
let
date
=
this
.
state
.
bargainData
.
expire_time
*
1000
...
...
@@ -233,11 +248,13 @@ class BargainMiddlePage extends Component {
date
-=
1000
let
s
=
differenceInSeconds
(
new
Date
(
date
),
now
)
%
60
,
m
=
differenceInMinutes
(
new
Date
(
date
),
now
)
%
60
,
h
=
differenceInHours
(
new
Date
(
date
),
now
)
%
24
h
=
differenceInHours
(
new
Date
(
date
),
now
)
%
24
,
d
=
differenceInDays
(
new
Date
(
date
),
now
)
%
24
this
.
setState
({
hour
:
h
,
min
:
m
,
sec
:
s
sec
:
s
,
day
:
d
})
},
1000
)
...
...
@@ -252,40 +269,44 @@ class BargainMiddlePage extends Component {
className
=
{
'indicator'
}
>
【砍价神器】
<
/span></
div
>
}
else
if
(
this
.
state
.
bargainData
.
is_artifact
===
1
)
{
thirdRow
=
<
div
>
恭喜你获得
<
span
className
=
{
'indicator'
}
>
【砍价神器】
<
/span></
div
>
btn
=
<
button
onClick
=
{
this
.
toArtifact
}
>
立即领取
<
/button
>
btn
=
<
button
className
=
{
'artifact-btn'
}
onClick
=
{
this
.
toArtifact
}
>
立即领取
<
/button
>
}
else
if
(
this
.
state
.
bargainData
.
is_artifact
===
2
)
{
thirdRow
=
<
div
>
恭喜你获得
<
span
className
=
{
'indicator'
}
>
【砍价神器】
<
/span></
div
>
btn
=
<
button
onClick
=
{
this
.
useArtifact
}
>
立即使用
<
/button
>
btn
=
<
button
className
=
{
'artifact-btn'
}
onClick
=
{
this
.
useArtifact
}
>
立即使用
<
/button
>
}
let
bargainBtn
if
(
this
.
state
.
isOriginator
===
'2'
&&
this
.
state
.
data
.
assist
_status
===
0
)
{
bargainBtn
=
<
button
onClick
=
{
this
.
friendBargainFirst
}
>
帮好友砍一刀
<
/button
>
}
else
if
(
this
.
state
.
isOriginator
===
'2'
&&
this
.
state
.
data
.
assist_status
===
1
)
{
bargainBtn
=
<
button
onClick
=
{
this
.
friendBargainSecond
}
>
再砍一刀
<
/button
>
}
else
if
(
this
.
state
.
isOriginator
===
'2'
&&
this
.
state
.
data
.
assist_status
===
2
)
{
if
(
this
.
state
.
isOriginator
!==
1
&&
this
.
state
.
data
.
assist_status
===
0
&&
this
.
state
.
data
.
bargain
_status
===
0
)
{
bargainBtn
=
<
button
className
=
'active-btn'
onClick
=
{
this
.
friendBargainFirst
}
>
帮好友砍一刀
<
/button
>
}
else
if
(
this
.
state
.
isOriginator
!==
1
&&
this
.
state
.
data
.
assist_status
===
1
)
{
bargainBtn
=
<
button
className
=
'active-btn'
onClick
=
{
this
.
friendBargainSecond
}
>
再砍一刀
<
/button
>
}
else
if
(
this
.
state
.
isOriginator
!==
1
&&
this
.
state
.
data
.
assist_status
===
2
)
{
bargainBtn
=
<
button
className
=
{
'invalid-btn'
}
>
已帮好友助力
<
/button
>
}
else
if
(
this
.
state
.
data
.
bargain_status
===
1
||
this
.
state
.
data
.
bargain_status
===
2
)
{
bargainBtn
=
<
button
className
=
{
'invalid-btn'
}
>
砍价结束
<
/button
>
}
else
if
(
this
.
state
.
isOriginator
===
'1'
&&
this
.
state
.
data
.
bargain_status
===
0
)
{
bargainBtn
=
<
button
>
邀请好友砍价
<
/button
>
}
else
if
(
this
.
state
.
isOriginator
===
1
&&
this
.
state
.
data
.
bargain_status
===
0
)
{
bargainBtn
=
<
button
className
=
'active-btn'
onClick
=
{
this
.
shareFriendBargain
}
>
邀请好友砍价
<
/button
>
}
return
(
<
div
className
=
{
'bargain-middle-page'
}
>
<
HeaderBar
title
=
'砍价详情'
arrow
=
{
true
}
cart
=
{
true
}
><
/HeaderBar
>
{
/*<Loading isLoading={this.state.isLoaidng}>*/
}
<
div
className
=
"top"
>
<
div
className
=
"bargain-area"
>
{
this
.
state
.
isOriginator
===
'2'
&&
this
.
state
.
isOriginator
!==
1
&&
<
p
className
=
'bargain-tip'
>
你的好友发现一门精品课程,快来一起帮他砍价:
<
/p
>
}
<
ul
>
<
VList
info
=
{
<
CourseDes
data
=
{
this
.
state
.
data
}
toCart
=
{
this
.
toCart
}
/>
}
info
=
{
<
CourseDes
isOriginator
=
{
this
.
state
.
isOriginator
}
data
=
{
this
.
state
.
data
}
toCart
=
{
this
.
toCart
}
/>
}
/>
<
/ul
>
<
div
className
=
"bargain-detail"
>
...
...
@@ -296,7 +317,6 @@ class BargainMiddlePage extends Component {
{
this
.
state
.
data
.
bargain_status
===
0
&&
<
div
>
{
this
.
state
.
time
}
<
span
className
=
{
'time hour'
}
>
{
String
(
this
.
state
.
hour
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
...
...
@@ -306,7 +326,7 @@ class BargainMiddlePage extends Component {
<
/div
>
}
{
this
.
state
.
data
.
bargain_status
===
1
&&
this
.
state
.
isOriginator
===
'1'
&&
this
.
state
.
data
.
bargain_status
===
1
&&
this
.
state
.
isOriginator
===
1
&&
<
span
className
=
{
'inactive'
}
>
砍价结束
<
/span
>
}
...
...
@@ -315,22 +335,23 @@ class BargainMiddlePage extends Component {
<
span
style
=
{{
width
:
this
.
state
.
width
}}
><
/span
>
<
/div
>
{
this
.
state
.
isOriginator
===
'1'
&&
this
.
state
.
data
.
bargain_status
===
0
&&
this
.
state
.
isOriginator
===
1
&&
this
.
state
.
data
.
bargain_status
===
0
&&
<
div
>
<
div
className
=
'third-row'
>
{
thirdRow
}
<
/div
>
<
div
>
{
btn
}
<
/div
>
{
thirdRow
}
{
btn
}
<
/div
>
}
{
this
.
state
.
isOriginator
===
'1'
&&
this
.
state
.
data
.
bargain_status
===
1
&&
this
.
state
.
isOriginator
===
1
&&
this
.
state
.
data
.
bargain_status
===
1
&&
<
div
>
砍价金额将于
{
h
}
:
{
m
}
:
{
s
}
<
span
className
=
{
'time hour'
}
>
{
String
(
this
.
state
.
day
).
padStart
(
2
,
0
)}
<
/span><spa
n
className
=
{
'unit'
}
>
天
<
/span
>
<
span
className
=
{
'time min'
}
>
{
String
(
this
.
state
.
hour
).
padStart
(
2
,
0
)}
<
/span><spa
n
className
=
{
'unit'
}
>
时
<
/span
>
<
span
className
=
{
'time sec'
}
>
{
String
(
this
.
state
.
min
).
padStart
(
2
,
0
)}
<
/span><spa
n
className
=
{
'unit'
}
>
分
<
/span
>
后清零,请尽快完成支付
<
/div
>
}
...
...
@@ -367,7 +388,7 @@ class BargainMiddlePage extends Component {
<
div
className
=
"more"
onClick
=
{
this
.
getMore
}
>
查看更多
>><
/div
>
<
/div
>
<
/div
>
<
div
className
=
"bargain-course-list"
>
<
div
className
=
"bargain-course-list"
id
=
'bargainCourse'
>
<
div
className
=
"title-wrapper"
>
<
div
className
=
"title"
>
我要砍价
<
/div
>
<
div
className
=
"subtitle"
>
邀请
{
this
.
state
.
limitPeople
}
位以上好友帮忙砍价可获得【砍价神器】
<
/div
>
...
...
@@ -403,26 +424,40 @@ class BargainMiddlePage extends Component {
this
.
state
.
isShowOverlay
&&
<
Overlay
>
{
/*砍价成功去分享*/
}
{
this
.
state
.
status
===
7
&&
<
BargainSuccess
isshowYindao
=
{
this
.
state
.
isshowYindao
}
limitPeople
=
{
this
.
state
.
limitPeople
}
close
=
{
this
.
close
}
/
>
}
{
/*引导关注公众号*/
}
{
this
.
state
.
status
===
1
&&
<
PublicNumber
/>
<
PublicNumber
money
=
{
this
.
state
.
amount
}
avatar
=
{
this
.
props
.
user
.
data
.
avatar
}
firendBaigainPrice
=
{
this
.
state
.
firendBaigainPrice
}
/
>
}
{
/*好友成功砍第一刀*/
}
{
this
.
state
.
status
===
2
&&
<
BargainFirst
bargainSecond
=
{
this
.
friendBargainSecond
}
/
>
<
BargainFirst
bargainSecond
=
{
this
.
friendBargainSecond
}
money
=
{
this
.
state
.
amount
}
/
>
}
{
/*好友成功砍第二刀*/
}
{
this
.
state
.
status
===
3
&&
<
BargainSecond
/>
<
BargainSecond
close
=
{
this
.
close
}
money
=
{
this
.
state
.
amount
}
/
>
}
{
/*不能在砍了*/
}
{
this
.
state
.
status
===
4
&&
<
NotBargain
/>
<
NotBargain
close
=
{
this
.
close
}
limitPeople
=
{
this
.
state
.
limitPeople
}
/
>
}
{
/*领取砍价神器*/
}
{
...
...
@@ -432,17 +467,18 @@ class BargainMiddlePage extends Component {
{
/*使用砍价神器*/
}
{
this
.
state
.
status
===
6
&&
<
UseArtifact
toCart
=
{
this
.
toCart
}
/
>
<
UseArtifact
toCart
=
{
this
.
toCart
}
money
=
{
this
.
state
.
amount
}
allMoney
=
{
this
.
state
.
bargainData
.
bargain_price
}
/
>
}
{
this
.
state
.
status
!==
0
&&
this
.
state
.
status
!==
7
&&
<
i
onClick
=
{
this
.
close
}
className
=
{
'iconfont iconiconfront-2 bargain-close'
}
><
/i
>
}
<
/Overlay
>
}
{
/*</Loading>*/
}
<
/div
>
);
...
...
@@ -457,11 +493,13 @@ function CourseDes(props) {
{
data
.
course_title
}
<
/div
>
<
div
className
=
"price-bar"
>
<
span
className
=
{
'discount-price'
}
>
¥
{
data
.
pay_price
}
<
/span
>
<
span
className
=
{
'original-price'
}
>
¥
{
data
.
course_price
}
<
/span
>
<
button
className
=
{
'purchase-btn'
}
onClick
=
{
props
.
toCart
}
>
¥
{
data
.
pay_price
}
去支付
<
/button
>
<
span
className
=
{
'discount-price'
}
>
¥
{
data
.
course_price
}
<
/span
>
{
props
.
isOriginator
===
1
&&
<
button
className
=
{
'purchase-btn'
}
onClick
=
{
props
.
toCart
}
>
¥
{
data
.
pay_price
}
去支付
<
/button
>
}
<
/div
>
<
/div
>
)
...
...
@@ -469,16 +507,27 @@ function CourseDes(props) {
function
CourseBottom
(
props
)
{
let
Buttons
if
(
props
.
item
.
bargain_status
===
0
)
{
Buttons
=
<
button
className
=
{
'bargain'
}
>
我要砍价
<
/button
>
if
(
props
.
item
.
bargain_status
===
2
)
{
Buttons
=
<
Link
to
=
{
`/detail?id=
${
props
.
item
.
course_id
}
`
}
className
=
{
'bargain'
}
>
我要砍价
<
/Link
>
}
else
if
(
props
.
item
.
bargain_status
===
3
)
{
Buttons
=
<
button
className
=
{
'bargain'
}
>
去学习
<
/button
>
Buttons
=
<
Link
to
=
{
`/play?id=
${
props
.
item
.
course_id
}
`
}
className
=
{
'bargain'
}
>
去学习
<
/Link
>
}
else
{
Buttons
=
(
<
div
className
=
"btns"
>
<
button
className
=
{
classnames
(
'bargain-btn'
,
{
invalid
:
props
.
item
.
bargain_status
===
2
})}
>
{
props
.
item
.
bargain_status
===
2
?
'砍价结束'
:
'继续砍价'
}
<
/button
>
{
/*<button className={classnames('bargain-btn', {invalid: props.item.bargain_status === 2})}>*/
}
{
/*{props.item.bargain_status === 2 ? '砍价结束' : '继续砍价'}*/
}
{
/*</button>*/
}
{
props
.
item
.
bargain_status
===
1
&&
<
button
className
=
'invalid'
>
砍价结束
<
/button
>
}
{
props
.
item
.
bargain_status
===
0
&&
<
Link
to
=
{
`/detail?id=
${
props
.
item
.
course_id
}
`
}
className
=
{
'bargain-btn'
}
>
继续砍价
<
/Link
>
}
<
button
onClick
=
{
props
.
toCart
}
className
=
{
'purchase-btn'
}
>
¥
{
props
.
item
.
pay_price
}
去支付
<
/button
>
...
...
@@ -497,12 +546,16 @@ function CourseBottom(props) {
}
function
PublicNumber
()
{
function
PublicNumber
(
props
)
{
return
(
<
div
className
=
'bargain-public-number'
>
<
img
className
=
'avait'
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/tinypng-common/right_weixin.png"
alt
=
""
/>
<
p
className
=
'status-title ff4'
>
谢谢你帮我砍了
5.6
元!
<
/p
>
<
img
className
=
'avait'
src
=
{
props
.
avatar
}
alt
=
""
/>
{
props
.
firendBaigainPrice
&&
<
p
className
=
'status-title ff4'
>
谢谢你帮我砍了
{
props
.
money
}
元!
<
/p
>
}
<
p
className
=
'status-dec'
>
关注公众号,可以再砍一刀哦
~<
/p
>
<
img
className
=
'public-number-img'
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/tinypng-common/right_weixin.png"
alt
=
""
/>
...
...
@@ -514,38 +567,34 @@ function BargainFirst(props) {
return
(
<
div
className
=
'bargain-first'
>
<
img
className
=
'top-img'
src
=
{
require
(
'./image/kanjia_cg_icon.png'
)}
alt
=
""
/>
<
p
className
=
'status-title'
>
谢谢你帮我砍了
<
span
className
=
'ff4'
>
5.6
元
<
/span>!</
p
>
<
p
className
=
'status-title'
>
谢谢你帮我砍了
<
span
className
=
'ff4'
>
{
props
.
money
}
元
<
/span>!</
p
>
<
p
className
=
'status-dec'
>
你还可以帮我再砍一刀哦
~<
/p
>
<
button
onClick
=
{
props
.
bargainSecond
}
>
再砍一刀
<
/button
>
<
button
className
=
'bargain-href'
onClick
=
{
props
.
bargainSecond
}
>
再砍一刀
<
/button
>
<
/div
>
)
}
function
BargainSecond
()
{
function
BargainSecond
(
props
)
{
return
(
<
div
className
=
'bargain-second'
>
<
img
className
=
'top-img'
src
=
{
require
(
'./image/kanjia_cg_icon.png'
)}
alt
=
""
/>
<
p
className
=
'status-title'
>
厉害了,又帮好友砍掉
<
span
className
=
'ff4'
>
5.6
元
<
/span>!</
p
>
<
button
>
我也要砍价
<
/button
>
<
p
className
=
'status-title'
>
厉害了,又帮好友砍掉
<
span
className
=
'ff4'
>
{
props
.
money
}
元
<
/span>!</
p
>
<
a
className
=
'bargain-href'
href
=
'#bargainCourse'
onClick
=
{
props
.
close
}
>
我也要砍价
<
/a
>
<
/div
>
)
}
function
NotBargain
()
{
function
NotBargain
(
props
)
{
return
(
<
div
className
=
'not-bargain'
>
<
img
className
=
'middle-img'
src
=
{
require
(
'./image/kanjia_no_iccon.png'
)}
alt
=
""
/>
<
p
className
=
'status-title'
>
你的好友用【砍价神器】把我砍蒙圈了
<
br
/>
不能再砍了哦
~<
/p
>
<
p
className
=
'status-dec'
>
邀请
20
位以上好友帮忙砍价可获得【砍价神器】
<
/p
>
<
button
>
我也要砍价
<
/button
>
<
p
className
=
'status-dec'
>
邀请
{
props
.
limitPeople
}
位以上好友帮忙砍价可获得【砍价神器】
<
/p
>
<
a
className
=
'bargain-href'
href
=
'#bargainCourse'
onClick
=
{
props
.
close
}
>
我也要砍价
<
/a
>
<
/div
>
)
}
{
/*领取砍价神器*/
}
function
Artifact
(
props
)
{
return
(
<
div
className
=
'artifact-box'
>
...
...
@@ -564,10 +613,10 @@ function UseArtifact(props) {
return
(
<
div
className
=
'use-artifact-box'
>
<
img
className
=
'top-img'
src
=
{
require
(
'./image/kanjia_cg_icon.png'
)}
alt
=
""
/>
<
p
className
=
'top-tip'
>
厉害了,又砍掉了
10
元!
<
/p
>
<
p
className
=
'top-tip'
>
厉害了,又砍掉了
{
props
.
money
}
元!
<
/p
>
<
p
className
=
'middle-tip'
>
你已经砍了
<
span
className
=
{
'indicator'
}
>
109
元
<
/span
>
<
span
className
=
{
'indicator'
}
>
{
props
.
allMoney
}
元
<
/span
>
没见过你这么能砍的人
...
<
/p
>
<
p
className
=
'btm-tip'
>
...
...
@@ -579,6 +628,29 @@ function UseArtifact(props) {
}
function
BargainSuccess
(
props
)
{
return
(
<
div
>
<
div
className
=
'close-bargain-success'
onClick
=
{
props
.
close
}
><
/div
>
<
div
className
=
"bargain-success"
>
{
props
.
isshowYindao
&&
<
i
className
=
'iconfont iconyindao'
><
/i
>
}
<
p
>
分享到微信群邀请更多好友帮忙砍价
<
/p
>
<
p
>
超过
{
props
.
limitPeople
}
位好友助力可获得
<
span
className
=
{
'indicator'
}
style
=
{{
color
:
'#FF4000'
}}
>
【砍价神器】
<
/span>
哦
<
/p
>
<
/div
>
<
/div
>
)
}
export
default
compose
(
connect
(
state
=>
({
user
:
state
.
user
}),
null
),
withRouter
)(
BargainMiddlePage
)
src/components/detail/bargain/bargain.scss
View file @
2eb91ebe
...
...
@@ -99,7 +99,10 @@
color
:
$color_FF4000
;
font-size
:
12px
;
text-align
:
center
;
line-height
:
48px
;
padding-top
:
10px
;
.unit
{
color
:
$color_333
;
}
.time
{
display
:
inline-block
;
...
...
src/components/detail/bargain/bargainInfo/bargain-info.scss
View file @
2eb91ebe
.bargain-bind-iphone
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
display
:
flex
;
flex-flow
:
column
;
width
:
300px
;
height
:
195px
;
padding
:
20px
;
background
:
$white
;
border-radius
:
3px
;
.title
{
text-align
:
center
;
font-size
:
$font_16
;
margin-bottom
:
12px
;
}
.bargain-bind-phone
{
display
:
flex
;
flex-flow
:
column
;
width
:
300px
;
height
:
195px
;
padding
:
20px
;
background
:
$white
;
border-radius
:
3px
;
margin
:
200px
auto
20px
auto
;
.title
{
text-align
:
center
;
font-size
:
$font_16
;
margin-bottom
:
12px
;
}
button
,
.button
{
display
:
inline-block
;
width
:
260px
;
height
:
30px
;
background
:
$bg_999
;
line-height
:
28px
;
text-align
:
center
;
-webkit-appearance
:
none
;
border
:
none
;
font-size
:
$font_16
;
color
:
$white
;
.list
{
.am-list-item
{
height
:
30px
;
min-height
:
30px
;
border
:
1px
solid
$border_ddd
;
input
{
font-size
:
$font_12
;
}
}
.am-list-item
{
margin-bottom
:
15px
;
}
.am-list-line
{
&
:
:
after
{
display
:
none
;
}
}
.am-list-body
{
&
:
:
after
{
display
:
none
;
}
}
&
.active
{
background-color
:
#FADD29
;
color
:
#FF4000
;
}
}
button
{
display
:
inline-block
;
width
:
260px
;
height
:
30px
;
background
:
$bg_999
;
-webkit-appearance
:
none
;
border
:
none
;
input
{
width
:
100%
;
height
:
30px
;
-webkit-appearance
:
none
;
outline
:
0
;
border
:
1px
solid
#DDDDDD
;
margin-bottom
:
15px
;
padding-left
:
10px
;
font-size
:
$font_16
;
color
:
$white
;
text-align
:
center
;
line-height
:
30px
;
&
:
:-
webkit-input-placeholder
{
color
:
$color_999
;
}
&
:focus
{
border
:
1px
solid
$active
;
color
:
$active
;
}
}
label
{
display
:
block
;
position
:
relative
;
}
.send-code
{
position
:
absolute
;
right
:
15px
;
top
:
8px
;
font-size
:
13px
;
color
:
$color_999
;
}
}
\ No newline at end of file
src/components/detail/bargain/bargainInfo/index.js
View file @
2eb91ebe
import
React
from
'react'
;
import
{
InputItem
,
List
}
from
"antd-mobile"
;
import
React
,
{
Component
}
from
'react'
;
import
{
InputItem
,
List
}
from
"antd-mobile"
;
import
'./bargain-info.scss'
import
{
validateTel
}
from
"@/utils"
;
import
{
Toast
}
from
'antd-mobile'
import
{
http
,
api
}
from
"@/utils"
;
import
{
Link
}
from
"react-router-dom"
;
const
BargainInfo
=
()
=>
{
return
(
<
div
className
=
{
'bargain-info'
}
>
<
div
className
=
"title"
>
绑定手机,先砍一刀
<
/div
>
<
List
className
=
{
'list'
}
>
<
InputItem
placeholder
=
{
'手机号'
}
/
>
<
InputItem
placeholder
=
{
'验证码'
}
/
>
<
/List
>
<
button
>
先砍一刀
<
/button
>
<
/div
>
);
};
class
BargainInfo
extends
Component
{
state
=
{
mobile
:
''
,
code
:
''
,
isBargain
:
true
}
handleChange
=
e
=>
{
let
{
name
,
value
}
=
e
.
target
this
.
setState
({
[
name
]:
value
})
}
sendCode
=
()
=>
{
console
.
log
(
validateTel
(
this
.
state
.
mobile
));
if
(
!
validateTel
(
this
.
state
.
mobile
))
{
Toast
.
info
(
'请输入正确的手机号'
)
return
}
http
.
post
(
`
${
api
[
'base-api'
]}
/sys/bind_send_sms`
,
{
phone_num
:
this
.
state
.
mobile
}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
Toast
.
info
(
'验证码发送成功'
,
2
,
null
,
false
)
}
else
if
(
res
.
data
.
errno
===
410
)
{
Toast
.
info
(
'该手机号已注册,请使用该手机号登录,发起砍价。'
,
3
,
null
,
false
)
this
.
setState
({
isBargain
:
false
})
}
else
{
Toast
.
info
(
res
.
data
.
msg
)
}
})
}
handleClick
=
()
=>
{
if
(
!
this
.
state
.
code
)
{
Toast
.
info
(
'请填写验证码'
)
return
}
http
.
post
(
`
${
api
.
home
}
/m/user/bindMobile`
,
{
...
this
.
state
}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
Toast
.
info
(
'绑定手机号成功'
,
2
,
null
,
false
)
this
.
props
.
iWantBargain
()
}
else
{
Toast
.
info
(
res
.
data
.
msg
)
}
})
}
render
()
{
let
{
mobile
,
code
}
=
this
.
state
return
(
<
div
className
=
{
'bargain-bind-phone'
}
>
<
div
className
=
"title"
>
绑定手机,先砍一刀
<
/div
>
<
List
className
=
{
'list'
}
>
<
input
type
=
"tel"
onChange
=
{
this
.
handleChange
}
name
=
'mobile'
placeholder
=
'手机号'
maxLength
=
{
11
}
/
>
<
label
htmlFor
=
"code"
>
<
input
type
=
"tel"
id
=
'code'
onChange
=
{
this
.
handleChange
}
name
=
'code'
placeholder
=
'验证码'
maxLength
=
{
6
}
/
>
<
div
className
=
{
'send-code'
}
onClick
=
{
this
.
sendCode
}
>
发送验证码
<
/div
>
<
/label
>
<
/List
>
{
this
.
state
.
isBargain
&&
<
button
onClick
=
{
this
.
handleClick
}
className
=
{
validateTel
(
mobile
)
&&
code
?
'active'
:
''
}
>
先砍一刀
<
/button
>
}
{
!
this
.
state
.
isBargain
&&
<
Link
className
=
'button active'
to
=
{
`/passport/login`
}
>
去登录
<
/Link
>
}
<
/div
>
);
}
}
export
default
BargainInfo
\ No newline at end of file
src/components/detail/bargain/index.js
View file @
2eb91ebe
import
React
,
{
Component
,
useState
}
from
'react'
import
React
,
{
Component
,
useState
}
from
'react'
import
'./bargain.scss'
import
{
Flex
,
Toast
}
from
"antd-mobile"
import
{
Flex
,
Toast
}
from
"antd-mobile"
import
Overlay
from
'../overlay'
import
BargainInfo
from
'./bargainInfo'
import
{
differenceInSeconds
,
differenceInMinutes
,
differenceInHours
}
from
"date-fns"
import
{
api
,
getParam
,
http
}
from
"@/utils"
import
{
differenceInSeconds
,
differenceInMinutes
,
differenceInHours
,
differenceInDays
}
from
"date-fns"
import
{
api
,
getParam
,
http
}
from
"@/utils"
import
Ranking
from
"@/components/bargainMiddlePage/ranking"
import
{
compose
}
from
"redux"
import
{
withRouter
}
from
'react-router-dom'
import
{
compose
}
from
"redux"
import
{
withRouter
}
from
'react-router-dom'
class
Bargain
extends
Component
{
...
...
@@ -70,13 +70,13 @@ class Bargain extends Component {
})
}
// 查看更多
getMore
=
()
=>
{
this
.
setState
({
isShowMore
:
true
})
}
// 自组件传给父组件的boxHide
boxHide
=
(
val
)
=>
{
this
.
setState
({
isShowMore
:
val
})
...
...
@@ -125,22 +125,7 @@ class Bargain extends Component {
// 我要砍价
iWantBargain
=
()
=>
{
// 判断用户是否绑定了手机号
http
.
get
(
`
${
api
.
home
}
/sys/userStatus`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
// 0-都没绑定 1-只绑定公众号 2-只绑定手机号 3-都绑定
if
(
res
.
data
.
data
.
status
===
0
||
res
.
data
.
data
.
status
===
1
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
3
,
})
}
else
{
this
.
toKanjia
(
getParam
(
'id'
),
1
,
0
)
}
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
}
})
this
.
toKanjia
(
getParam
(
'id'
),
1
,
0
)
}
// 砍价接口
...
...
@@ -150,15 +135,23 @@ class Bargain extends Component {
type
:
type
,
// 1 用户自己砍价 2 使用砍价神器 3 好友助力砍价 4 好友第二次助力
parent_uid
:
uid
// 被助力人id 【自己本人操作传0】
}
http
.
post
(
`
${
api
.
home
}
/m/
to_b
argain`
,
data
).
then
((
res
)
=>
{
http
.
post
(
`
${
api
.
home
}
/m/
bargain/toB
argain`
,
data
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
// this.getBargainInfo()
document
.
location
.
reload
()
if
(
type
===
2
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
2
,
})
}
else
{
if
(
res
.
data
.
data
.
user_status
===
2
)
{
this
.
setState
({
isShowOverlay
:
true
,
status
:
3
,
})
}
else
{
// this.getBargainInfo()
document
.
location
.
reload
()
}
}
}
else
{
...
...
@@ -203,13 +196,7 @@ class Bargain extends Component {
{
/*绑定手机号*/
}
{
this
.
state
.
status
===
3
&&
<
BargainInfo
/>
}
{
/*砍价成功去分享*/
}
{
this
.
state
.
status
===
0
&&
<
BargainSuccess
/>
<
BargainInfo
iWantBargain
=
{
this
.
iWantBargain
}
/
>
}
...
...
@@ -266,9 +253,10 @@ function BargainIntro(props) {
function
BargainStatus
(
props
)
{
const
[
hour
,
setHour
]
=
useState
()
const
[
min
,
setMin
]
=
useState
()
const
[
sec
,
setSec
]
=
useState
()
const
[
day
,
setDay
]
=
useState
(
0
)
const
[
hour
,
setHour
]
=
useState
(
0
)
const
[
min
,
setMin
]
=
useState
(
0
)
const
[
sec
,
setSec
]
=
useState
(
0
)
let
thirdRow
,
btn
...
...
@@ -293,6 +281,7 @@ function BargainStatus(props) {
setSec
(
differenceInSeconds
(
new
Date
(
date
),
now
)
%
60
)
setMin
(
differenceInMinutes
(
new
Date
(
date
),
now
)
%
60
)
setHour
(
differenceInHours
(
new
Date
(
date
),
now
)
%
24
)
setDay
(
differenceInDays
(
new
Date
(
date
),
now
)
%
24
)
},
1000
)
...
...
@@ -308,9 +297,9 @@ function BargainStatus(props) {
<
div
className
=
{
'first-row'
}
>
<
div
>
已砍
<
span
className
=
{
'indicator'
}
>
{
props
.
info
.
bargain_price
}
元
<
/span
>
<
span
className
=
{
'time hour'
}
>
{
String
(
hour
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
className
=
{
'time min'
}
>
{
String
(
min
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
className
=
{
'time sec'
}
>
{
String
(
sec
).
padStart
(
2
,
0
)}
<
/span
>
<
span
className
=
{
'time hour'
}
>
{
String
(
hour
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
className
=
{
'time min'
}
>
{
String
(
min
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
className
=
{
'time sec'
}
>
{
String
(
sec
).
padStart
(
2
,
0
)}
<
/span
>
<
span
className
=
'over'
>
后砍价结束
<
/span
>
<
/div
>
<
div
onClick
=
{
props
.
getMore
}
>
{
props
.
info
.
assist_num
}
位好友助力
><
/div
>
...
...
@@ -352,9 +341,12 @@ function BargainStatus(props) {
<
/div
>
<
div
className
=
"time-tobuy"
>
砍价金额将于
<
span
className
=
{
'time hour'
}
>
{
String
(
hour
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
className
=
{
'time min'
}
>
{
String
(
min
).
padStart
(
2
,
0
)}
<
/span> : 
;
<
span
className
=
{
'time sec'
}
>
{
String
(
sec
).
padStart
(
2
,
0
)}
<
/span
>
<
span
className
=
{
'time hour'
}
>
{
String
(
day
).
padStart
(
2
,
0
)}
<
/span><spa
n
className
=
{
'unit'
}
>
天
<
/span
>
<
span
className
=
{
'time min'
}
>
{
String
(
hour
).
padStart
(
2
,
0
)}
<
/span><spa
n
className
=
{
'unit'
}
>
时
<
/span
>
<
span
className
=
{
'time sec'
}
>
{
String
(
min
).
padStart
(
2
,
0
)}
<
/span><spa
n
className
=
{
'unit'
}
>
分
<
/span
>
后清零,请尽快完成支付
<
/div
>
<
/Flex
>
...
...
@@ -364,22 +356,6 @@ function BargainStatus(props) {
)
}
function
BargainSuccess
()
{
return
(
<
div
className
=
"bargain-success"
>
<
p
className
=
{
'title'
}
>
恭喜你,一刀砍了
<
span
className
=
{
'indicator'
}
>
39.8
元
<
/span
>
<
/p
>
<
p
>
分享到微信群邀请更多好友帮忙砍价
<
/p
>
<
p
>
超过
20
位好友助力可获得
<
span
className
=
{
'indicator'
}
style
=
{{
color
:
'#FF4000'
}}
>
【砍价神器】
<
/span
>
哦
<
/p
>
<
/div
>
)
}
{
/*领取砍价神器*/
}
...
...
src/components/detail/btnstatus/index.js
View file @
2eb91ebe
...
...
@@ -16,18 +16,19 @@ class BtnStatus extends Component {
is_baoming
:
0
,
group_status
:
3
,
in_cart
:
false
,
countdown
:
0
,
}
}
componentWillReceiveProps
(
nextProps
)
{
this
.
setState
({
...
nextProps
.
data
.
course_info
...
nextProps
.
data
.
course_info
,
countdown
:
nextProps
.
countdown
,
});
}
// 加入购物车 type:1 加入购物车,2加入购物车并跳转到购物车页面去支付
toCart
=
(
type
)
=>
{
console
.
log
(
type
)
let
data
=
{
course_id
:
getParam
(
'id'
)
};
...
...
@@ -38,11 +39,14 @@ class BtnStatus extends Component {
// this.props.getCourses()
document
.
location
.
reload
()
}
else
{
window
.
location
.
href
=
'/shopcart'
// window.location.href = '/shopcart'
this
.
props
.
history
.
replace
(
'/shopcart'
);
}
}
else
if
(
res
.
data
.
code
===
15001
)
{
window
.
location
.
href
=
'/shopcart'
// window.location.href = '/shopcart'
this
.
props
.
history
.
replace
(
'/shopcart'
);
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
);
}
...
...
@@ -60,20 +64,7 @@ class BtnStatus extends Component {
})
}
}
// 直接购买 TODO 等弄清楚了逻辑 再和加入购物车合并
toBuy
=
()
=>
{
let
data
=
{
course_id
:
getParam
(
'id'
)
};
http
.
post
(
`
${
api
.
home
}
/m/cart/add`
,
data
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
!==
200
)
{
Toast
.
info
(
res
.
data
.
msg
,
2
);
return
;
}
this
.
props
.
history
.
replace
(
'/shopcart'
);
})
}
// 取消砍价
cancel
=
()
=>
{
...
...
@@ -105,7 +96,7 @@ class BtnStatus extends Component {
type
:
1
,
// 1 用户自己砍价 2 使用砍价神器 3 好友助力砍价 4 好友第二次助力
parent_uid
:
0
// 被助力人id 【自己本人操作传0】
}
http
.
post
(
`
${
api
.
home
}
/m/
to_b
argain`
,
data
).
then
((
res
)
=>
{
http
.
post
(
`
${
api
.
home
}
/m/
bargain/toB
argain`
,
data
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
// this.props.getBargainInfo()
document
.
location
.
reload
()
...
...
@@ -121,7 +112,7 @@ class BtnStatus extends Component {
info
=
this
.
props
.
data
.
course_info
}
let
barInfo
=
this
.
props
.
barInfo
&&
this
.
props
.
barInfo
const
{
countdown
}
=
this
.
state
;
return
(
<
div
>
...
...
@@ -160,22 +151,22 @@ class BtnStatus extends Component {
{
/*拼团 未开团*/
}
{
info
.
is_baoming
===
0
&&
info
.
group_status
===
3
&&
<
div
className
=
'btns-box'
>
<
a
className
=
'consult consult-s'
href
=
"https://q.url.cn/AB8aue?_type=wpa&qidian=true"
>
<
i
className
=
'iconfont iconerji'
><
/i
>
<
span
>
课程咨询
<
/span
>
<
/a
>
<
button
className
=
'btn btn-s bg-F4AAA7'
onClick
=
{
this
.
toBuy
}
>
<
span
>
{
`¥
${
info
.
price1
}
`
}
<
/span
>
<
span
>
直接购买
<
/span
>
<
/button
>
<
button
className
=
'btn btn-s bg-E02E24'
>
<
Link
to
=
{
`/order?id=
${
getParam
(
'id'
)}
`
}
>
<
span
>
{
`¥
${
info
.
pdd_group_info
.
price
}
`
}
<
/span
>
<
span
>
一键开团
<
/span
>
<
/Link
>
<
/button
>
<
/div
>
<
div
className
=
'btns-box'
>
<
a
className
=
'consult consult-s'
href
=
"https://q.url.cn/AB8aue?_type=wpa&qidian=true"
>
<
i
className
=
'iconfont iconerji'
><
/i
>
<
span
>
课程咨询
<
/span
>
<
/a
>
<
button
className
=
'btn btn-s bg-F4AAA7'
onClick
=
{
e
=>
this
.
toCart
(
2
)
}
>
<
span
>
{
`¥
${
info
.
price1
}
`
}
<
/span
>
<
span
>
直接购买
<
/span
>
<
/button
>
<
button
className
=
'btn btn-s bg-E02E24'
>
<
Link
to
=
{
`/order?id=
${
getParam
(
'id'
)}
`
}
>
<
span
>
{
`¥
${
info
.
pdd_group_info
.
price
}
`
}
<
/span
>
<
span
>
一键开团
<
/span
>
<
/Link
>
<
/button
>
<
/div
>
}
{
/*拼团 已开团*/
}
...
...
@@ -187,7 +178,7 @@ class BtnStatus extends Component {
<
span
>
课程咨询
<
/span
>
<
/a
>
<
div
className
=
'btn btn-l bg-E02E24'
onClick
=
{
this
.
props
.
invitedFriends
}
>
邀请好友参团
23
:
32
:
23
后结束
邀请好友参团
{
countdown
}
后结束
<
/div
>
<
/div
>
}
...
...
src/components/detail/carousel/index.js
View file @
2eb91ebe
...
...
@@ -16,9 +16,9 @@ class Carouselw extends Component {
componentDidMount
()
{
const
_this
=
this
_this
.
getList
()
//
this.timer = setInterval(function () {
//
_this.getList()
//
},10000);
this
.
timer
=
setInterval
(
function
()
{
_this
.
getList
()
},
10000
);
}
...
...
src/components/detail/group/index.js
View file @
2eb91ebe
...
...
@@ -15,6 +15,8 @@ class Group extends Component {
pdd_price
:
0
,
number
:
0
,
data
:
{},
countdown
:
props
.
countdown
,
now_groupon_list
:
[],
}
}
...
...
@@ -102,14 +104,49 @@ class Group extends Component {
}
}
componentWillReceiveProps
(
nextProps
)
{
this
.
setState
({
countdown
:
nextProps
.
countdown
,
})
}
componentDidMount
()
{
if
(
this
.
props
.
courseInfo
&&
this
.
props
.
courseInfo
.
courseInfo
&&
this
.
props
.
courseInfo
.
courseInfo
.
course_info
&&
this
.
props
.
courseInfo
.
courseInfo
.
course_info
.
pdd_group_info
)
{
let
now_groupon_list
=
this
.
props
.
courseInfo
.
courseInfo
.
course_info
.
pdd_group_info
.
now_groupon_list
;
if
(
now_groupon_list
&&
now_groupon_list
.
length
>
0
)
{
setInterval
(()
=>
{
now_groupon_list
.
map
(
item
=>
{
item
.
end_time
-=
1
;
return
item
;
});
this
.
setState
({
now_groupon_list
,
})
},
1000
);
}
}
}
hideMbc
=
()
=>
{
this
.
setState
({
alreadyIn
:
false
});
}
formatTimeByMillisecond
=
(
millisecond
)
=>
{
let
date
=
millisecond
*
1000
,
hours
=
0
,
minutes
=
0
,
seconds
=
0
;
date
-=
1000
hours
=
`
${
parseInt
(
date
/
(
60
*
60
*
1000
))}
`
.
padStart
(
2
,
0
);
minutes
=
`
${
parseInt
((
date
-
hours
*
3600000
)
/
60000
)}
`
.
padStart
(
2
,
0
);
seconds
=
`
${
parseInt
((
date
-
hours
*
3600000
-
minutes
*
60000
)
/
1000
)}
`
.
padStart
(
2
,
0
);
return
`
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
}
render
()
{
const
{
alreadyIn
}
=
this
.
state
;
const
{
alreadyIn
,
countdown
,
now_groupon_list
}
=
this
.
state
;
let
groupInfo
=
''
,
groupon_member
=
''
,
group_status
=
-
1
,
groupSuccessMbc
=
null
;
if
(
this
.
props
.
courseInfo
&&
this
.
props
.
courseInfo
.
courseInfo
&&
this
.
props
.
courseInfo
.
courseInfo
.
course_info
)
{
groupInfo
=
this
.
props
.
courseInfo
.
courseInfo
.
course_info
.
pdd_group_info
;
...
...
@@ -156,7 +193,7 @@ class Group extends Component {
<
div
className
=
'content'
>
<
p
>
你已参团
<
/p
>
{
groupTip
}
<
div
className
=
'group-btn'
onClick
=
{
this
.
invitedFriends
}
>
邀请好友参团
23
:
23
:
23
后结束
<
/div
>
<
div
className
=
'group-btn'
onClick
=
{
this
.
invitedFriends
}
>
邀请好友参团
{
countdown
}
后结束
<
/div
>
<
p
className
=
'dec'
>
分享到
3
个群后,成团率高达
98
%<
/p
>
<
/div
>
<
/div>
;
...
...
@@ -185,7 +222,7 @@ class Group extends Component {
<
/div
>
<
div
className
=
'group-status'
>
<
p
>
还差
<
span
className
=
'red'
>
{
item
.
number
}
人
<
/span>拼成</
p
>
<
p
>
剩余
{
item
.
end_time
}
<
/p
>
<
p
>
剩余
{
this
.
formatTimeByMillisecond
(
item
.
end_time
)
}
<
/p
>
<
/div
>
<
span
onClick
=
{()
=>
{
this
.
toPay
(
item
.
pdd_order_id
)}}
className
=
'topay'
>
去参团
<
/span
>
<
/li
>
...
...
@@ -224,7 +261,7 @@ class Group extends Component {
<
img
className
=
'avatar'
src
=
{
item
.
avatar
}
alt
=
""
/>
<
div
className
=
'user-name'
>
<
p
className
=
'name text-overflow-one'
>
{
item
.
user_name
}
<
/p
>
<
p
className
=
'time'
>
剩余
{
item
.
end_time
}
<
/p
>
<
p
className
=
'time'
>
剩余
{
this
.
formatTimeByMillisecond
(
item
.
end_time
)
}
<
/p
>
<
/div
>
<
p
className
=
'group-status'
>
还差
{
item
.
number
}
人
<
/p
>
<
span
onClick
=
{()
=>
{
this
.
toPay
(
item
.
pdd_order_id
)}}
className
=
'topay'
>
去参团
<
/span
>
...
...
src/components/detail/group/togroup.js
View file @
2eb91ebe
...
...
@@ -78,7 +78,7 @@ class ToGroup extends Component {
}
componentDidMount
()
{
Promise
.
all
([
http
.
get
(
`
${
api
[
'pay-api'
]}
/pdd/goupon_pay_page/
15610158875449306780
`
),
http
.
get
(
`
${
api
.
home
}
/m/user_info`
)]).
then
(
resultList
=>
{
Promise
.
all
([
http
.
get
(
`
${
api
[
'pay-api'
]}
/pdd/goupon_pay_page/
${
getParam
(
'id'
)}
`
),
http
.
get
(
`
${
api
.
home
}
/m/user_info`
)]).
then
(
resultList
=>
{
console
.
log
(
resultList
);
let
res
=
resultList
[
0
],
userInfo
=
resultList
[
1
];
...
...
@@ -92,11 +92,24 @@ class ToGroup extends Component {
course_list
:
res
.
data
.
data
.
course_list
,
userInfo
,
number
:
res
.
data
.
data
.
number
,
countdown
:
''
,
});
});
http
.
post
(
`
${
api
[
'pay-api'
]}
/m/sale/signature`
).
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
data
.
data
.
is_success
===
0
)
{
let
date
=
res
.
data
.
data
.
end_time
*
1000
,
hours
=
0
,
minutes
=
0
,
seconds
=
0
;
setInterval
(()
=>
{
date
-=
1000
hours
=
`
${
parseInt
(
date
/
(
60
*
60
*
1000
))}
`
.
padStart
(
2
,
0
);
minutes
=
`
${
parseInt
((
date
-
hours
*
3600000
)
/
60000
)}
`
.
padStart
(
2
,
0
);
seconds
=
`
${
parseInt
((
date
-
hours
*
3600000
-
minutes
*
60000
)
/
1000
)}
`
.
padStart
(
2
,
0
);
this
.
setState
({
countdown
:
`
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
});
},
1000
)
}
});
}
...
...
@@ -162,7 +175,7 @@ class ToGroup extends Component {
function
GorupContent
(
props
)
{
let
tip
,
btn
,
dec
,
groupTip
,
shareTip
,
groupSuccessMbc
;
const
{
pdd_price
,
data
,
groupon_member
,
is_success
,
person_num
,
userInfo
,
share
,
number
}
=
props
.
data
;
const
{
pdd_price
,
data
,
groupon_member
,
is_success
,
person_num
,
userInfo
,
share
,
number
,
countdown
}
=
props
.
data
;
let
ary
=
[],
num
=
number
;
while
(
num
!=
0
)
{
ary
.
push
(
num
);
...
...
@@ -207,7 +220,7 @@ function GorupContent(props) {
if
(
uid
===
userInfo
.
data
.
data
.
uid
)
{
tip
=
<
p
className
=
'tip'
>
{
`拼团省¥
${
pdd_price
}
元`
}
<
/p
>
btn
=
<
span
className
=
'group-btn'
onClick
=
{
props
.
invitedFriends
}
>
邀请好友参团
23
:
23
:
23
后结束
<
/span
>
btn
=
<
span
className
=
'group-btn'
onClick
=
{
props
.
invitedFriends
}
>
邀请好友参团
{
countdown
}
后结束
<
/span
>
dec
=
<
p
className
=
'dec'
>
分享到
3
个群后,成团率高达
98
%<
/p
>
}
else
{
tip
=
<
p
className
=
'tip'
>
{
`拼团省¥
${
pdd_price
}
元`
}
<
/p
>
...
...
src/components/detail/index.js
View file @
2eb91ebe
...
...
@@ -14,7 +14,6 @@ import {fetchCoursesListIfNeeded} from "./actions"
import
{
api
,
getParam
,
http
,
browser
}
from
"@/utils"
;
import
{
Toast
}
from
'antd-mobile'
;
class
Detail
extends
Component
{
constructor
(
props
)
{
...
...
@@ -28,11 +27,12 @@ class Detail extends Component {
singMess
:
''
,
barInfo
:
''
,
share
:
false
,
countdown
:
'00:00:00'
,
}
}
componentDidMount
()
{
this
.
props
.
fetchCoursesListIfNeeded
()
this
.
props
.
fetchCoursesListIfNeeded
()
;
}
componentDidUpdate
(
prevProps
)
{
...
...
@@ -60,9 +60,32 @@ class Detail extends Component {
}));
}
componentWillReceiveProps
(
nextProps
)
{
let
_this
=
this
;
if
(
nextProps
.
courseInfo
.
course_info
)
{
let
courseInfo
=
nextProps
.
courseInfo
.
course_info
;
if
(
courseInfo
.
group_status
===
3
||
courseInfo
.
group_status
===
4
)
{
let
endTime
=
courseInfo
.
pdd_group_info
.
groupon_member
.
end_time
;
let
date
=
endTime
*
1000
,
hours
=
0
,
minutes
=
0
,
seconds
=
0
;
setInterval
(()
=>
{
date
-=
1000
hours
=
`
${
parseInt
(
date
/
(
60
*
60
*
1000
))}
`
.
padStart
(
2
,
0
);
minutes
=
`
${
parseInt
((
date
-
hours
*
3600000
)
/
60000
)}
`
.
padStart
(
2
,
0
);
seconds
=
`
${
parseInt
((
date
-
hours
*
3600000
-
minutes
*
60000
)
/
1000
)}
`
.
padStart
(
2
,
0
);
_this
.
setState
({
countdown
:
`
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
});
},
1000
)
}
}
}
invitedFriends
=
()
=>
{
const
{
course_title
,
image_name
,
course_id
,
pdd_group_info
,
pdd_group_info
:
{
groupon_member
,
groupon_member
:
{
number
},
price
}}
=
this
.
props
.
courseInfo
.
course_info
;
if
(
browser
.
isWeixin
)
{
const
{
course_title
,
image_name
,
course_id
,
pdd_group_info
,
pdd_group_info
:
{
groupon_member
,
groupon_member
:
{
number
},
price
}}
=
this
.
props
.
courseInfo
.
course_info
;
if
(
browser
.
isWeixin
)
{
let
share
=
this
.
state
.
share
;
this
.
setState
({
share
:
!
share
,
...
...
@@ -95,22 +118,22 @@ class Detail extends Component {
wx
.
ready
(
function
()
{
//需在用户可能点击分享按钮前就先调用
wx
.
hideAllNonBaseMenuItem
();
wx
.
showMenuItems
({
menuList
:
[
'menuItem:share:appMessage'
,
'menuItem:share:timeline'
]
// 要显示的菜单项,所有menu项见附录3
});
menuList
:
[
'menuItem:share:appMessage'
,
'menuItem:share:timeline'
]
// 要显示的菜单项,所有menu项见附录3
});
wx
.
updateAppMessageShareData
({
...
shareData
,
success
:
function
()
{
// 设置成功
// 设置成功
}
})
wx
.
updateTimelineShareData
({
...
shareData
,
success
:
function
()
{
// 设置成功
// 设置成功
}
})
});
}
else
{
}
else
{
Toast
.
info
(
'请在微信中使用分享功能!'
,
2
);
}
}
...
...
@@ -138,24 +161,22 @@ class Detail extends Component {
}
render
()
{
let
courseInfo
=
''
;
let
service
=
''
;
let
number
=
0
;
let
courseInfo
=
''
,
service
=
''
,
number
=
0
,
endTime
=
0
;
if
(
this
.
props
.
courseInfo
.
course_info
)
{
courseInfo
=
this
.
props
.
courseInfo
.
course_info
;
service
=
courseInfo
.
service
;
if
(
courseInfo
.
group_status
!==
0
)
{
if
(
courseInfo
.
group_status
===
3
||
courseInfo
.
group_status
===
4
)
{
number
=
courseInfo
.
pdd_group_info
.
groupon_member
.
number
;
}
}
const
{
is_bargain
,
// 是否是砍价课程
}
=
this
.
props
;
const
{
share
}
=
this
.
state
;
const
{
share
,
countdown
}
=
this
.
state
;
return
(
<
div
className
=
'detail-box'
>
<
CallApp
className
=
'toapp'
><
/CallApp
>
<
HeaderBar
title
=
'课程详情'
arrow
=
{
true
}
cart
=
{
true
}
><
/HeaderBar
>
<
CallApp
className
=
'toapp'
><
/CallApp
>
{
/*弹幕*/
}
<
Carouselw
><
/Carouselw
>
{
/*课程*/
}
...
...
@@ -225,7 +246,7 @@ class Detail extends Component {
{
/*拼团*/
}
{
(
courseInfo
.
group_status
===
3
||
courseInfo
.
group_status
===
4
)
&&
<
Group
history
=
{
this
.
props
.
history
}
/
>
<
Group
history
=
{
this
.
props
.
history
}
countdown
=
{
countdown
}
/
>
}
...
...
@@ -239,11 +260,18 @@ class Detail extends Component {
<
OutLine
data
=
{
this
.
props
.
courseInfo
}
toAudition
=
{
this
.
toAudition
}
toSingleset
=
{
this
.
toSingleset
}
/
>
{
/*课程按钮*/
}
<
BtnStatus
data
=
{
this
.
props
.
courseInfo
}
barInfo
=
{
this
.
state
.
barInfo
}
getBargainInfo
=
{
this
.
getBargainInfo
}
invitedFriends
=
{
this
.
invitedFriends
}
history
=
{
this
.
props
.
history
}
><
/BtnStatus
>
<
BtnStatus
countdown
=
{
countdown
}
data
=
{
this
.
props
.
courseInfo
}
barInfo
=
{
this
.
state
.
barInfo
}
getBargainInfo
=
{
this
.
getBargainInfo
}
invitedFriends
=
{
this
.
invitedFriends
}
history
=
{
this
.
props
.
history
}
><
/BtnStatus
>
{
share
?
(
<
div
className
=
'groupSuccessMbc'
onClick
=
{()
=>
{
this
.
setState
({
share
:
false
})}}
>
<
div
className
=
'groupSuccessMbc'
onClick
=
{()
=>
{
this
.
setState
({
share
:
false
})
}}
>
<
div
className
=
'tipContent'
>
{
`还差
${
number
}
人,分享到3个群,成团率高达98%`
}
...
...
src/components/detail/overlay/overlay.scss
View file @
2eb91ebe
...
...
@@ -5,5 +5,5 @@
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0
.6
);
z-index
:
999
9
;
z-index
:
999
;
}
\ No newline at end of file
src/components/detail/shareRank/index.scss
View file @
2eb91ebe
...
...
@@ -59,16 +59,13 @@
}
.share
{
// position: absolute;
// right: 12px;
// padding: 5px 6px;
border
:
1px
solid
$red
;
border-radius
:
3px
;
color
:
$red
;
background-color
:
$bg_fff
;
width
:
76px
;
height
:
22px
;
line-height
:
2
2
px
;
line-height
:
2
0
px
;
text-align
:
center
;
}
...
...
src/components/detail/single/index.js
View file @
2eb91ebe
...
...
@@ -2,7 +2,10 @@ import React, {Component} from 'react'
import
'./index.scss'
import
{
api
,
getParam
,
http
,
browser
}
from
"@/utils"
;
import
{
Toast
}
from
'antd-mobile'
;
import
{
Link
}
from
"react-router-dom"
;
import
{
Link
,
withRouter
}
from
"react-router-dom"
;
import
{
compose
}
from
"redux"
;
import
{
connect
}
from
"react-redux"
;
import
{
differenceInHours
,
differenceInMinutes
,
differenceInSeconds
}
from
"date-fns"
;
class
Single
extends
Component
{
...
...
@@ -13,6 +16,11 @@ class Single extends Component {
orderId
:
''
,
nowPrice
:
''
,
laterPrice
:
''
,
hour
:
''
,
min
:
''
,
sec
:
''
,
endTime
:
''
,
groupOrderId
:
''
,
payType
:
'0'
,
// 1支付宝 0微信
}
}
...
...
@@ -163,11 +171,55 @@ class Single extends Component {
}
// 0元参团
zerogroupBuy
=
()
=>
{
this
.
setState
({
status
:
7
this
.
getOrderId
()
}
// 获取订单号-0元参团
getOrderId
=
()
=>
{
let
data
=
{
course_id
:
getParam
(
'id'
)
}
http
.
post
(
`
${
api
[
'pay-api'
]}
/pdd/sys`
,
data
).
then
((
res
)
=>
{
if
(
res
.
data
.
errno
===
0
)
{
this
.
setState
({
groupOrderId
:
res
.
data
.
data
.
order_id
})
this
.
getOrderStatus
(
res
.
data
.
data
.
order_id
)
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
}
})
}
// 获取订单状态-0元参团
getOrderStatus
=
(
id
)
=>
{
http
.
get
(
`
${
api
.
home
}
/m/pdd/order_status/
${
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
this
.
getTime
(
res
.
data
.
data
.
pdd_order_id
)
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
}
})
}
// 获取倒计时-0元参团
getTime
=
(
id
)
=>
{
http
.
get
(
`
${
api
.
home
}
/m/pdd_order_end_time/
${
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
this
.
setState
({
endTime
:
res
.
data
.
data
.
end_time
,
status
:
7
})
}
else
{
Toast
.
info
(
res
.
data
.
msg
,
2
)
}
})
}
// 邀请好友参团
toGroup
=
()
=>
{
this
.
props
.
history
.
push
(
`/togroup?id=
${
this
.
state
.
groupOrderId
}
`
)
}
// 关闭弹窗
colse
=
()
=>
{
this
.
props
.
boxHide
(
false
);
...
...
@@ -177,6 +229,22 @@ class Single extends Component {
}
render
()
{
if
(
this
.
state
.
endTime
)
{
let
date
=
this
.
state
.
endTime
*
1000
let
now
=
Date
.
now
()
setInterval
(()
=>
{
date
-=
1000
let
s
=
differenceInSeconds
(
new
Date
(
date
),
now
)
%
60
,
m
=
differenceInMinutes
(
new
Date
(
date
),
now
)
%
60
,
h
=
differenceInHours
(
new
Date
(
date
),
now
)
%
24
this
.
setState
({
hour
:
h
,
min
:
m
,
sec
:
s
,
})
},
1000
)
}
return
(
<
div
>
{
...
...
@@ -271,17 +339,19 @@ class Single extends Component {
<
span
>
参团成功
<
/span
>
<
/div
>
<
div
className
=
'group-img'
>
<
img
src
=
{
this
.
props
.
user
.
data
.
avatar
}
alt
=
""
/>
<
img
src
=
'https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/vu/image_head/Sv3Vz4B8Tp.jpg'
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png"
alt
=
""
/>
<
img
src
=
'https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/vu/image_head/CwJoTNA21g.jpg'
alt
=
""
/>
<
img
src
=
'https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/vu/image_head/Sv3Vz4B8Tp.jpg'
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/images/weekend/train7/ellipsis.png"
alt
=
""
/>
<
/div
>
<
div
className
=
'btn-l btn-FF4000'
onClick
=
{
this
.
toGroup
}
>
剩余
{
String
(
this
.
state
.
hour
).
padStart
(
2
,
0
)}
:
{
String
(
this
.
state
.
min
).
padStart
(
2
,
0
)}
:
{
String
(
this
.
state
.
sec
).
padStart
(
2
,
0
)}
邀请好友参团
<
/div
>
<
div
className
=
'btn-l btn-FF4000'
>
剩余
23
:
59
:
23
邀请好友参团
<
/div
>
<
/div
>
}
<
i
onClick
=
{
this
.
colse
}
className
=
{
'iconfont iconiconfront-2 close'
}
><
/i
>
...
...
@@ -294,4 +364,10 @@ class Single extends Component {
}
export
default
Single
export
default
compose
(
connect
(
state
=>
({
user
:
state
.
user
}),
null
),
withRouter
)(
Single
)
src/components/scholarship/DrawDocument/DrawDocument.js
View file @
2eb91ebe
...
...
@@ -37,7 +37,7 @@ export default class DrawDocument extends Component {
<
Flex
justify
=
'between'
align
=
'center'
style
=
{{
height
:
'44px'
}}
>
<
p
className
=
{
'tip'
}
>
收支明细及待确认金额请前往
App
查看
<
/p
>
{
/* <div className={'app'}>在APP打开</div> */
}
<
OpenApp
className
=
'app'
/>
<
OpenApp
className
=
'app'
text
=
'在APP打开'
/>
<
/Flex
>
<
/WingBlank
>
<
/div
>
...
...
src/components/scholarship/index.js
View file @
2eb91ebe
...
...
@@ -5,6 +5,7 @@ import { is_weixin, http, api } from "@/utils";
import
CategoryItem
from
'./CategoryItem/CategoryItem.js'
;
import
SortItem
from
'./SortItem/SortItem.js'
;
import
{
connect
}
from
'react-redux'
;
import
OpenApp
from
'@/common/CallApp'
;
const
Item
=
List
.
Item
;
...
...
@@ -386,9 +387,9 @@ class _Scholarship extends Component {
2
.
该课程正式开课时,如果用户没有退款,对应的订单金额会自动转入您的账号余额,否则该佣金会自动收回。
<
/p
>
<
WhiteSpace
><
/WhiteSpace
>
<
Flex
style
=
{{
fontSize
:
'1
3px'
,
color
:
'#000
'
}}
justify
=
'center'
>
<
span
>
待确认订单详情可
<
/span
>
<
span
style
=
{{
color
:
'#0099FF'
,
marginLeft
:
'10px'
}}
>
前往
APP
查看
<
/span
>
<
Flex
style
=
{{
fontSize
:
'1
4px'
,
color
:
'#0099FF
'
}}
justify
=
'center'
>
<
span
style
=
{{
color
:
"#333"
,
marginRight
:
'10px'
}}
>
待确认订单详情可
<
/span
>
<
OpenApp
className
=
'toApp'
text
=
'前往APP查看'
/
>
<
/Flex
>
<
/Modal
>
<
/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