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
65adf51c
Commit
65adf51c
authored
Mar 05, 2020
by
zhanghaozhe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
限时免费
parent
7a2dceef
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
284 additions
and
252 deletions
+284
-252
src/components/video/index.js
+14
-2
src/components/video/video.scss
+270
-250
No files found.
src/components/video/index.js
View file @
65adf51c
...
...
@@ -10,7 +10,7 @@ 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
{
Loading
,
Popup
}
from
'@/common'
import
{
connect
}
from
"react-redux"
import
jsCookie
from
'js-cookie'
import
Single
from
"@/components/detail/single"
;
...
...
@@ -133,6 +133,10 @@ class Video extends Component {
this
.
token
=
jsCookie
.
get
(
'token'
)
this
.
getVideoList
()
this
.
getDatumCatalog
()
this
.
showLimitFreePopup
({
title
:
'想领取【AI工程师必备干货礼包】? 想深入了解进阶课程? 职业前景不明朗? 资深规划师免费为你服务!'
,
})
}
// 直接购买
...
...
@@ -733,6 +737,15 @@ class Video extends Component {
}
}
showLimitFreePopup
=
(
title
,
id
)
=>
{
Popup
({
title
:
<
span
>
想领取【
AI
工程师必备干货礼包】
?
想深入了解进阶课程?
职业前景不明朗
?
资深规划师免费为你服务
!<
/span>
,
className
:
'free-popup'
,
content
:
<
div
className
=
{
'des'
}
>
<
img
className
=
"qrcode"
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/tinypng-common/right_weixin.png"
/>
<
/div
>
})
}
render
()
{
let
{
match
,
location
,
history
}
=
this
.
props
...
...
@@ -868,7 +881,6 @@ class Video extends Component {
closeShareModal
=
{()
=>
this
.
setState
({
isShowShareModal
:
false
})}
data
=
{
this
.
state
.
shareData
}
/
>
<
/div
>
);
}
...
...
src/components/video/video.scss
View file @
65adf51c
$tabHeight
:
44px
;
.play
{
.video
{
width
:
100%
;
height
:
215px
;
background-color
:
$black
;
position
:
relative
;
.video
{
width
:
100%
;
height
:
215px
;
background-color
:
$black
;
position
:
relative
;
.video-js
{
width
:
100%
;
height
:
100%
;
.vjs-custom-play-button-cover
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
right
:
0
;
background
:
rgba
(
0
,
0
,
0
,
0
.5
);
.vjs-custom-play-button
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
width
:
27px
;
height
:
27px
;
background
:
url("./images/play.png")
no-repeat
;
background-size
:
contain
;
}
}
&
.vjs-has-started
{
.vjs-custom-play-button-cover
{
bottom
:
2
.9em
;
}
}
&
.vjs-playing
{
.vjs-custom-play-button-cover
{
display
:
none
;
}
}
}
.video-js
{
width
:
100%
;
height
:
100%
;
.purchase-box
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
background-color
:
rgba
(
0
,
0
,
0
,
0
.8
);
display
:
flex
;
flex-flow
:
column
;
justify-content
:
center
;
align-items
:
center
;
.hint
{
font-size
:
$font_14
;
color
:
$white
;
margin-bottom
:
20px
;
}
@mixin
button
{
display
:
block
;
-webkit-appearance
:
none
;
outline
:
none
;
border
:
none
;
background-color
:
transparent
;
border-radius
:
5px
;
line-height
:
30px
;
font-size
:
13px
;
padding
:
0
9px
;
}
.btns
{
width
:
100%
;
padding
:
0
60px
;
display
:
flex
;
justify-content
:
space-around
;
}
.purchase-class
{
@include
button
;
background-color
:
$white
;
color
:
$color_FF4000
;
}
.purchase-episode
{
@include
button
;
background-color
:
$bg_FF4000
;
color
:
$white
;
}
.vjs-custom-play-button-cover
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
right
:
0
;
background
:
rgba
(
0
,
0
,
0
,
0
.5
);
.vjs-custom-play-button
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
width
:
27px
;
height
:
27px
;
background
:
url("./images/play.png")
no-repeat
;
background-size
:
contain
;
}
}
.is-aist-box
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
background-color
:
rgba
(
0
,
0
,
0
,
0
.8
);
display
:
flex
;
flex-flow
:
column
;
justify-content
:
center
;
align-items
:
center
;
color
:
#fff
;
i
{
font-size
:
34px
;
}
.time
{
font-size
:
16px
;
}
&
.vjs-has-started
{
.vjs-custom-play-button-cover
{
bottom
:
2
.9em
;
}
}
video
{
width
:
100%
;
height
:
100%
;
&
.vjs-playing
{
.vjs-custom-play-button-cover
{
display
:
none
;
}
}
}
.tab
{
height
:
$tabHeight
;
max-height
:
$tabHeight
;
line-height
:
$tabHeight
;
text-align
:
center
;
background
:
#fff
;
flex
:
1
0
auto
;
.purchase-box
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
background-color
:
rgba
(
0
,
0
,
0
,
0
.8
);
display
:
flex
;
flex-flow
:
column
;
justify-content
:
center
;
align-items
:
center
;
.hint
{
font-size
:
$font_14
;
color
:
$white
;
margin-bottom
:
20px
;
}
@mixin
button
{
display
:
block
;
-webkit-appearance
:
none
;
outline
:
none
;
border
:
none
;
background-color
:
transparent
;
border-radius
:
5px
;
line-height
:
30px
;
font-size
:
13px
;
padding
:
0
9px
;
}
.btns
{
width
:
100%
;
padding
:
0
60px
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
space-around
;
}
.purchase-class
{
@include
button
;
background-color
:
$white
;
color
:
$color_FF4000
;
}
.purchase-episode
{
@include
button
;
background-color
:
$bg_FF4000
;
color
:
$white
;
}
}
&
>
div
{
flex
:
1
0
auto
;
}
.is-aist-box
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
background-color
:
rgba
(
0
,
0
,
0
,
0
.8
);
display
:
flex
;
flex-flow
:
column
;
justify-content
:
center
;
align-items
:
center
;
color
:
#fff
;
i
{
font-size
:
34px
;
}
.time
{
font-size
:
16px
;
}
}
a
{
display
:
inline-block
;
height
:
$tabHeight
;
font-size
:
$font_16
;
border-bottom
:
1px
solid
transparent
;
video
{
width
:
100%
;
height
:
100%
;
}
}
.tab
{
height
:
$tabHeight
;
max-height
:
$tabHeight
;
line-height
:
$tabHeight
;
text-align
:
center
;
background
:
#fff
;
flex
:
1
0
auto
;
display
:
flex
;
justify-content
:
center
;
&
>
div
{
flex
:
1
0
auto
;
}
&
.active
{
border-bottom
:
1px
solid
$active
;
}
}
a
{
display
:
inline-block
;
height
:
$tabHeight
;
font-size
:
$font_16
;
border-bottom
:
1px
solid
transparent
;
&
.active
{
border-bottom
:
1px
solid
$active
;
}
}
}
.active
{
color
:
$active
;
.active
{
color
:
$active
;
.iconiconfront-74
{
color
:
$color_555
;
}
.iconiconfront-74
{
color
:
$color_555
;
}
}
.progress-share-modal
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
width
:
290px
;
height
:
332px
;
padding
:
18px
15px
;
background
:
url("./images/progress-share-bg.png")
;
background-size
:
contain
;
&
>
.title
{
font-size
:
21px
;
color
:
#00656F
;
line-height
:
30px
;
text-align
:
center
;
margin-bottom
:
20px
;
}
.progress-share-modal
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
width
:
290px
;
height
:
332px
;
padding
:
18px
15px
;
background
:
url("./images/progress-share-bg.png")
;
background-size
:
contain
;
&
>
.title
{
font-size
:
21px
;
color
:
#00656F
;
line-height
:
30px
;
text-align
:
center
;
margin-bottom
:
20px
;
.progress-container
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
20px
;
li
{
flex
:
1
;
.title
{
font-size
:
14px
;
color
:
#00838F
;
line-height
:
20px
;
text-align
:
center
;
flex
:
1
;
margin-bottom
:
10px
;
}
.progress-container
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
20px
;
li
{
flex
:
1
;
.title
{
font-size
:
14px
;
color
:
#00838F
;
line-height
:
20px
;
text-align
:
center
;
flex
:
1
;
margin-bottom
:
10px
;
}
.number
{
font-size
:
15px
;
color
:
#00656F
;
text-align
:
center
;
.num
{
font-size
:
33px
;
color
:
#00656F
;
}
}
}
.number
{
font-size
:
15px
;
color
:
#00656F
;
text-align
:
center
;
.num
{
font-size
:
33px
;
color
:
#00656F
;
}
}
}
}
.share-container
{
.title
{
position
:
relative
;
text-align
:
center
;
font-size
:
14px
;
color
:
#00838F
;
margin-bottom
:
25px
;
&
:
:
before
{
position
:
absolute
;
top
:
50%
;
left
:
30px
;
transform
:
translateY
(
-50%
);
content
:
''
;
display
:
block
;
width
:
70px
;
height
:
1px
;
background
:
#77c4bf
;
}
&
:
:
after
{
position
:
absolute
;
top
:
50%
;
right
:
30px
;
transform
:
translateY
(
-50%
);
content
:
''
;
display
:
block
;
width
:
70px
;
height
:
1px
;
background
:
#77c4bf
;
}
}
ul
{
display
:
flex
;
justify-content
:
space-around
;
padding
:
0
20px
;
text-align
:
center
;
li
{
font-size
:
12px
;
color
:
#00838F
;
.iconfont
{
font-size
:
40px
;
color
:
#00838f
;
}
}
}
.share-container
{
.title
{
position
:
relative
;
text-align
:
center
;
font-size
:
14px
;
color
:
#00838F
;
margin-bottom
:
25px
;
&
:
:
before
{
position
:
absolute
;
top
:
50%
;
left
:
30px
;
transform
:
translateY
(
-50%
);
content
:
''
;
display
:
block
;
width
:
70px
;
height
:
1px
;
background
:
#77c4bf
;
}
.close
{
position
:
absolute
;
left
:
50%
;
transform
:
translateX
(
-50%
);
bottom
:
-63px
;
color
:
#fff
;
font-size
:
30px
;
&
:
:
after
{
position
:
absolute
;
top
:
50%
;
right
:
30px
;
transform
:
translateY
(
-50%
);
content
:
''
;
display
:
block
;
width
:
70px
;
height
:
1px
;
background
:
#77c4bf
;
}
}
&
-wrapper
{
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0
.5
);
touch-action
:
none
;
z-index
:
100
;
ul
{
display
:
flex
;
justify-content
:
space-around
;
padding
:
0
20px
;
text-align
:
center
;
li
{
font-size
:
12px
;
color
:
#00838F
;
.iconfont
{
font-size
:
40px
;
color
:
#00838f
;
}
}
}
}
.close
{
position
:
absolute
;
left
:
50%
;
transform
:
translateX
(
-50%
);
bottom
:
-63px
;
color
:
#fff
;
font-size
:
30px
;
}
&
-wrapper
{
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0
.5
);
touch-action
:
none
;
z-index
:
100
;
}
}
}
.free-popup
{
width
:
290px
;
height
:
366px
;
border-radius
:
5px
!
important
;
padding
:
0
!
important
;
overflow
:
hidden
;
background
:
url("https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/time_limited_free/M/popup-bg.png")
!
important
;
background-size
:
cover
!
important
;
.title
{
display
:
flex
;
align-items
:
center
;
height
:
125px
;
padding
:
0
20px
;
color
:
#fff
!
important
;
font-size
:
15px
;
}
}
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