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
aa3624c9
Commit
aa3624c9
authored
Aug 19, 2019
by
xuzhenghua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test
parent
f81ee884
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
293 additions
and
271 deletions
+293
-271
src/components/detail/outline/index.js
+8
-7
src/components/order/index.js
+2
-2
src/components/order/payOrder/PayOrder.js
+2
-2
src/components/video/index.js
+54
-55
src/components/video/video.scss
+227
-205
No files found.
src/components/detail/outline/index.js
View file @
aa3624c9
...
...
@@ -105,18 +105,19 @@ class OutLine extends Component {
{
// 已购买直播结束已上传视频:正常播放按钮,点击播放课程
!
introduce
.
is_aist
&&
item
.
class_status
===
2
&&
<
i
className
=
'iconfont icondanseshixintubiao-23 icon-right-22'
><
/i
>
<
Link
to
=
{
`/play?id=
${
introduce
.
v_course_id
}
`
}
className
=
'iconfont icondanseshixintubiao-23 icon-right-22'
><
/Link
>
}
{
// 返现课程 是返现课程 未开课 已开课 是返现课程 未开课 已开课 已练习
introduce
.
is_aist
&&
item
.
is_open
&&
<
i
className
=
'aist aist_open'
><
/i
>
introduce
.
is_aist
&&
item
.
is_open
&&
introduce
.
is_baoming
===
1
&&
<
Link
to
=
{
`/play?id=
${
introduce
.
v_course_id
}
`
}
className
=
'aist aist_open'
><
/Link
>
}
{
// 返现课程 是返现课程 未开课 已开课 是返现课程 未开课 已开课 已练习
introduce
.
is_aist
&&
!
item
.
is_open
&&
introduce
.
is_aist
&&
(
!
item
.
is_open
||
introduce
.
is_baoming
===
0
)
&&
<
i
className
=
'aist aist_close'
><
/i
>
}
<
/h2
>
...
...
@@ -145,20 +146,20 @@ class OutLine extends Component {
{
<>
{
introduce
.
is_aist
&&
item
.
practice
.
title
!==
""
&&
!
item
.
is_open
&&
introduce
.
is_aist
&&
item
.
practice
.
title
!==
""
&&
(
!
item
.
is_open
||
introduce
.
is_baoming
===
0
)
&&
<
span
className
=
'camp camp_test'
key
=
{
index
}
>
<
span
>
课后练习:
{
item
.
practice
.
title
}
<
/span
>
<
i
className
=
'exam exam_close'
/>
<
/span
>
}
{
introduce
.
is_aist
&&
item
.
practice
.
title
!==
""
&&
item
.
is_open
&&
!
item
.
practice
.
is_tested
&&
introduce
.
is_aist
&&
item
.
practice
.
title
!==
""
&&
item
.
is_open
&&
introduce
.
is_baoming
===
1
&&
!
item
.
practice
.
is_tested
&&
<
Link
to
=
{
`/campTest?keshi_id=
${
item
.
video_id
}
&qid=
${
item
.
practice
.
qid
}
`
}
className
=
'camp camp_test'
key
=
{
index
}
>
<
span
>
课后练习:
{
item
.
practice
.
title
}
<
/span
>
<
/Link
>
}
{
introduce
.
is_aist
&&
item
.
practice
.
title
!==
""
&&
item
.
is_open
&&
item
.
practice
.
is_tested
&&
introduce
.
is_aist
&&
item
.
practice
.
title
!==
""
&&
item
.
is_open
&&
i
ntroduce
.
is_baoming
===
1
&&
i
tem
.
practice
.
is_tested
&&
<
Link
to
=
{
`/campResolve?keshi_id=
${
item
.
video_id
}
&qid=
${
item
.
practice
.
qid
}
`
}
className
=
'camp camp_test'
key
=
{
index
}
>
<
span
>
课后练习:
{
item
.
practice
.
title
}
<
/span
>
<
i
className
=
'exam exam_open'
/>
...
...
src/components/order/index.js
View file @
aa3624c9
...
...
@@ -98,7 +98,7 @@ class Order extends Component {
Toast
.
info
(
'请完善报名信息!'
);
}
if
(
this
.
props
.
location
.
state
&&
this
.
props
.
location
.
state
.
group
===
1
)
{
http
.
post
(
`
${
API
[
'base-api'
]}
/pdd/m`
,
{
course_id
:
getParam
(
"id"
)}).
then
(
res
=>
{
http
.
post
(
`
${
API
[
'base-api'
]}
/pdd/m`
,
{
course_id
:
getParam
(
"id"
)
,
ischeck
:
this
.
state
.
useBalance
}).
then
(
res
=>
{
if
(
res
.
data
.
errno
===
200
)
{
sessionStorage
.
removeItem
(
'orderUseCacheObj'
);
if
(
res
.
data
.
data
.
is_free
===
1
)
{
...
...
@@ -404,7 +404,7 @@ class Order extends Component {
{
useBalance
?
(
<>
<
span
style
=
{{
color
:
'#FF2121'
,
fontSize
:
'15px'
,
marginRight
:
"6px"
}}
>
{
`-
${
offset
}
`
}
<
/span
>
<
span
style
=
{{
color
:
'#FF2121'
,
fontSize
:
'15px'
,
marginRight
:
"6px"
}}
>
{
`-
¥
${
offset
}
`
}
<
/span
>
<
i
className
=
{
`iconfont icondanseshixintubiao-5 balance-used`
}
onClick
=
{
throttle
(
this
.
useBalance
,
600
)}
><
/i
>
<
/
>
)
:
(
...
...
src/components/order/payOrder/PayOrder.js
View file @
aa3624c9
...
...
@@ -167,9 +167,9 @@ export default class PayOrder extends Component {
}
componentDidMount
()
{
http
.
post
(
`
${
API
.
home
}
/m/order/detail`
,
{
order_id
:
this
.
state
.
orderId
}).
then
((
res
)
=>
{
http
.
post
(
`
${
API
[
'base-api'
]
}
/m/order/detail`
,
{
order_id
:
this
.
state
.
orderId
}).
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
data
.
code
!==
200
)
{
if
(
res
.
data
.
errno
!==
200
)
{
Toast
.
info
(
res
.
data
.
msg
,
2
);
return
;
}
...
...
src/components/video/index.js
View file @
aa3624c9
import
React
,
{
Component
}
from
'react'
import
React
,
{
Component
}
from
'react'
import
HeaderBar
from
'@/common/HeaderBar'
import
'./video.scss'
import
{
NavLink
,
Route
,
Redirect
,
Switch
}
from
'react-router-dom'
import
{
http
,
api
,
getParam
}
from
'@/utils'
import
{
NavLink
,
Route
,
Redirect
,
Switch
}
from
'react-router-dom'
import
{
http
,
api
,
getParam
}
from
'@/utils'
import
Recommendation
from
'./recommendation'
import
VideoCatalog
from
'./video-catalog'
import
DatumCatalog
from
'./datum-catalog'
import
{
Toast
}
from
'antd-mobile'
import
{
Toast
}
from
'antd-mobile'
import
videojs
from
'video.js'
import
'video.js/dist/video-js.min.css'
import
{
Modal
}
from
"antd-mobile"
import
{
Loading
}
from
'@/common'
import
{
connect
}
from
"react-redux"
import
{
Modal
}
from
"antd-mobile"
import
{
Loading
}
from
'@/common'
import
{
connect
}
from
"react-redux"
import
jsCookie
from
'js-cookie'
import
io
from
'socket.io-client'
import
Single
from
"@/components/detail/single"
;
...
...
@@ -106,7 +106,7 @@ class Video extends Component {
}
// 直接购买
tobuy
=
()
=>
{
tobuy
=
()
=>
{
http
.
get
(
`
${
API
[
'base-api'
]}
/m/cart/addtopreorder/[
${
getParam
(
'id'
)}
]`
).
then
((
res
)
=>
{
if
(
res
.
data
.
errno
===
0
)
{
this
.
props
.
history
.
push
(
`/order?id=
${
getParam
(
'id'
)}
`
,
{
simple
:
1
})
...
...
@@ -131,7 +131,7 @@ class Video extends Component {
setupRecord
=
()
=>
{
this
.
recordSocket
=
io
(
API
.
record
,{
this
.
recordSocket
=
io
(
API
.
record
,
{
transports
:
[
'websocket'
]
})
this
.
recordSocket
.
on
(
'seek'
,
time
=>
{
...
...
@@ -295,29 +295,25 @@ class Video extends Component {
}
selectVideo
=
index
=>
{
if
(
this
.
hasAuth
())
{
if
(
index
===
this
.
state
.
activeIndex
)
{
return
}
this
.
setState
({
activeIndex
:
index
},
()
=>
{
if
(
index
===
this
.
state
.
activeIndex
)
{
return
}
this
.
setState
({
activeIndex
:
index
},
()
=>
{
if
(
this
.
hasAuth
()){
this
.
setPlayerSrc
(
this
.
state
.
videoList
[
index
][
'play_url'
])
this
.
sendLastRecord
()
this
.
playVideo
()
}
)
clearInterval
(
this
.
timer
)
if
(
this
.
ws
)
{
this
.
countSchedule
()
this
.
setupTimer
()
}
}
this
.
setState
({
activeIndex
:
index
})
}
)
}
...
...
@@ -343,7 +339,7 @@ class Video extends Component {
this
.
setupTimer
()
}
if
(
this
.
lessonAvailable
())
{
if
(
this
.
hasAuth
(
this
.
state
.
activeIndex
))
{
if
(
this
.
hasAuth
())
{
Promise
.
resolve
().
then
(()
=>
{
let
{
videoList
,
course
}
=
this
.
state
...
...
@@ -375,6 +371,9 @@ class Video extends Component {
}
setPlayerSrc
=
src
=>
{
if
(
!
this
.
player
){
this
.
initializePlayer
()
}
this
.
player
.
src
({
src
,
type
:
'application/x-mpegURL'
...
...
@@ -430,36 +429,25 @@ class Video extends Component {
hasAuth
=
()
=>
{
const
{
course
,
videoList
,
activeIndex
}
=
this
.
state
let
lesson
=
videoList
[
activeIndex
]
if
(
!
lesson
[
'is_free'
])
{
if
(
course
[
'is_audition'
])
{
this
.
setState
({
isAuth
:
true
})
return
true
}
else
{
if
(
lesson
[
'video_auth'
])
{
this
.
setState
({
isAuth
:
true
})
return
true
}
this
.
setState
({
isAuth
:
false
})
return
false
}
if
(
lesson
[
'video_auth'
])
{
this
.
setState
({
isAuth
:
true
})
return
true
}
else
{
this
.
setState
({
isAuth
:
false
})
return
false
}
this
.
setState
({
isAuth
:
true
})
return
true
}
render
()
{
let
{
match
,
location
}
=
this
.
props
const
{
videoList
,
activeIndex
,
isAuth
,
salePrice
}
=
this
.
state
const
{
videoList
,
activeIndex
,
isAuth
,
salePrice
,
course
}
=
this
.
state
return
(
<
div
className
=
'play'
>
<
HeaderBar
title
=
{
this
.
state
.
title
}
arrow
=
{
true
}
/
>
...
...
@@ -469,21 +457,31 @@ class Video extends Component {
<
source
src
=
{
'/'
}
type
=
'application/x-mpegURL'
/>
<
/video
>
{
!
isAuth
&&
(
!
isAuth
&&
!!
videoList
[
activeIndex
][
'is_class'
]
&&
(
<
div
className
=
"purchase-box"
>
<
div
className
=
'hint'
>
您尚未购买该课时,请购买后学习。
<
/div
>
<
div
className
=
'btns'
>
<
button
type
=
'button'
onClick
=
{
this
.
tobuy
}
className
=
'purchase-class'
>
¥
{
salePrice
}
购买课程
<
/button
>
className
=
'purchase-class'
>
¥
{
salePrice
}
购买课程
<
/button
>
<
button
type
=
'button'
onClick
=
{
this
.
toSingleset
.
bind
(
this
,
videoList
[
activeIndex
])}
onClick
=
{
this
.
toSingleset
.
bind
(
this
,
videoList
[
activeIndex
])}
className
=
'purchase-episode'
>
¥
{
videoList
.
length
&&
videoList
[
activeIndex
][
'class_price'
]}
购买单集
<
/button
>
<
/div
>
<
/div
>
)
}
{
!
isAuth
&&
!!
course
.
is_aist
&&
(
<
div
className
=
"is-aist-box"
>
<
i
className
=
{
'iconfont iconiconfront-21'
}
><
/i
>
<
p
className
=
{
'time'
}
>
{
videoList
[
activeIndex
][
'aist_start_time'
]}
<
/p
>
<
p
className
=
{
'time'
}
>
请耐心等待
...
<
/p
>
<
/div
>
)
}
<
/div
>
<
div
className
=
'tab'
>
<
div
>
...
...
@@ -501,7 +499,8 @@ class Video extends Component {
<
/div
>
{
/*单集购买*/
}
<
Single
singleBox
=
{
this
.
state
.
singleBox
}
boxHide
=
{
this
.
boxHide
}
data
=
{
this
.
state
.
singMess
}
videoId
=
{
this
.
state
.
singMess
.
id
}
<
Single
singleBox
=
{
this
.
state
.
singleBox
}
boxHide
=
{
this
.
boxHide
}
data
=
{
this
.
state
.
singMess
}
videoId
=
{
this
.
state
.
singMess
.
id
}
title
=
{
this
.
state
.
singMess
.
course_tile
}
/
>
<
/Loading
>
<
Switch
>
...
...
src/components/video/video.scss
View file @
aa3624c9
This diff is collapsed.
Click to expand it.
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