Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
5b0989b9
提交
5b0989b9
authored
5月 06, 2019
作者:
GOD_ZYX
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增 如果视频播放正常结束,直接发送一次请求
上级
fd69498f
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
31 行增加
和
12 行删除
+31
-12
build.zip
build.zip
+0
-0
index.html
client-dist/index.html
+2
-2
10.7275abdd54ff.css
client-dist/resources/10.7275abdd54ff.css
+2
-0
10.a37bbb1e.js
client-dist/resources/10.a37bbb1e.js
+2
-0
10.a505bcc1227b.css
client-dist/resources/10.a505bcc1227b.css
+0
-2
10.f2358237.js
client-dist/resources/10.f2358237.js
+0
-2
manifest.0468080a.js
client-dist/resources/manifest.0468080a.js
+2
-2
chapterVideo.vue
client/components/player/chapterVideo/chapterVideo.vue
+18
-3
video.vue
client/components/player/chapterVideo/video.vue
+5
-1
没有找到文件。
build.zip
浏览文件 @
5b0989b9
No preview for this file type
client-dist/index.html
浏览文件 @
5b0989b9
...
...
@@ -2,4 +2,4 @@
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]-->
<script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.21a0ef13.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.0ec25a95.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.65c18cf3.js"
></script></body></html>
\ No newline at end of file
<![endif]-->
<script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.0468080a.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.0ec25a95.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.65c18cf3.js"
></script></body></html>
\ No newline at end of file
client-dist/resources/10.7275abdd54ff.css
0 → 100644
浏览文件 @
5b0989b9
#player
p
[
data-v-dced0884
]
{
color
:
#fff
;
text-align
:
center
;
padding
:
50px
0
}
#player
p
a
[
data-v-dced0884
]
{
color
:
#b01c40
;
text-decoration
:
underline
}
\ No newline at end of file
client-dist/resources/10.a37bbb1e.js
0 → 100644
浏览文件 @
5b0989b9
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
10
],{
268
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
442
),
n
=
i
(
350
);
for
(
var
a
in
n
)
"default"
!==
a
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
n
[
e
]})}(
a
);
var
r
=
i
(
1
),
o
=
Object
(
r
.
a
)(
n
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
null
,
null
);
o
.
options
.
__file
=
"chapterVideo.vue"
,
t
.
default
=
o
.
exports
},
350
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
351
),
n
=
i
.
n
(
s
);
for
(
var
a
in
s
)
"default"
!==
a
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
a
);
t
.
default
=
n
.
a
},
351
:
function
(
e
,
t
,
i
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
s
=
a
(
i
(
401
)),
n
=
a
(
i
(
403
)),
r
=
a
(
i
(
74
));
function
a
(
e
){
return
e
&&
e
.
__esModule
?
e
:{
default
:
e
}}
var
o
=
1
e4
;
t
.
default
=
{
components
:{
eVideo
:
s
.
default
,
ePpt
:
n
.
default
},
props
:{
chapterId
:{
type
:
String
,
require
:
!
1
},
chapterName
:{
type
:
String
,
require
:
!
1
},
chapterVideo
:{
type
:
Object
,
require
:
!
1
},
ppts
:{
type
:
Array
,
require
:
!
1
,
default
:[]},
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
},
id
:{
type
:
String
,
require
:
!
1
}},
data
:
function
(){
return
{
state
:{
pptIndex
:
0
,
pptBoxOnly
:
!
1
,
pptBoxShow
:
!
1
,
skipBegin
:
/skip=1/
.
test
(
document
.
cookie
),
calculatedSize
:
!
1
},
videoFlash
:{
lastTime
:
null
,
speed
:
1
,
isSeek
:
!
1
,
isFinish
:
!
1
,
queueFrames
:[],
videoWidth
:
550
,
videoHeight
:
360
,
username
:
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
username
||
""
},
resizeVideo
:
null
,
hearBeat
:
null
,
_rProgress
:{},
isPlaying
:
!
1
}},
mounted
:
function
(){
var
e
=
this
.
getCalculateSize
();
e
.
video
.
w
&&
(
this
.
videoFlash
.
videoWidth
=
e
.
video
.
w
,
this
.
videoFlash
.
videoHeight
=
e
.
video
.
h
),
this
.
resizeVideo
||
(
this
.
resizeVideo
=
r
.
default
.
debounce
(
this
.
jdugeSize
.
bind
(
this
),
200
)),
setTimeout
(
this
.
jdugeSize
,
300
),
window
.
addEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
createHeartTime
(
o
)},
destroyed
:
function
(){
window
.
removeEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
destroyHeartTime
(),
this
.
hearBeatFunc
(
o
)},
watch
:{
id
:{
handler
:
function
(){
this
.
id
&&
(
this
.
state
.
pptBoxShow
=!
1
,
this
.
state
.
pptBoxOnly
=!
1
,
this
.
_rProgress
=
{},
setTimeout
(
this
.
jdugeSize
,
0
))}}},
methods
:{
togglePptBox
:
function
(){
this
.
state
.
pptBoxShow
=!
this
.
state
.
pptBoxShow
,
this
.
state
.
pptBoxOnly
=!
1
,
setTimeout
(
this
.
jdugeSize
,
0
)},
togglePptBoxOnly
:
function
(){
this
.
state
.
pptBoxOnly
=!
this
.
state
.
pptBoxOnly
,
setTimeout
(
this
.
jdugeSize
,
0
)},
toggleSkipBegin
:
function
(){
var
e
=!
this
.
state
.
skipBegin
,
t
=
new
Date
;
t
.
setMonth
(
t
.
getMonth
()
+
1
),
document
.
cookie
=
"skip="
+
+
e
+
";path=/;domain=.ezijing.com;expires="
+
t
.
toGMTString
(),
e
&&
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
skipBegin
(),
this
.
state
.
skipBegin
=
e
},
onVideoTimeChange
:
function
(
e
){
var
t
=
e
.
time
;
this
.
videoFlash
.
speed
=
parseFloat
(
e
.
quality
.
split
(
" "
)[
1
]
||
1
),
this
.
videoFlash
.
isSeek
=
e
.
isSeek
,
this
.
videoFlash
.
lastTime
!==
t
&&
(
this
.
videoFlash
.
lastTime
=
t
,
this
.
isPlaying
=!
0
,
e
.
isSeek
||
this
.
videoFlash
.
queueFrames
.
push
(
t
),
this
.
setPptIndexByTime
(
t
),
this
.
$emit
(
"handlePlayTime"
,
t
))},
onVideoPlayFinish
:
function
(
e
){
this
.
_rProgress
&&
this
.
_rProgress
.
id
&&
this
.
_rProgress
.
pt
+
10
*
this
.
videoFlash
.
speed
>=
e
.
time
&&
(
this
.
isPlaying
=!
0
,
this
.
hearBeatFunc
(
o
))},
setPptIndexByTime
:
function
(
e
){
for
(
var
t
=
this
.
ppts
||
[],
i
=
0
;
i
<
t
.
length
&&!
(
e
<
t
[
i
].
ppt_point
);
i
++
);
this
.
state
.
pptIndex
!==
i
-
1
&&
(
this
.
state
.
pptIndex
=
i
-
1
)},
setVideoTime
:
function
(
e
){
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
setTimeTo
(
e
)},
jdugeSize
:
function
(){
var
e
=
this
.
$refs
.
box
,
t
=
this
.
getCalculateSize
(),
i
=
0
,
s
=
0
;
this
.
state
.
pptBoxOnly
?(
s
=
t
.
ppt
.
w
,
i
=
t
.
ppt
.
h
,
this
.
$refs
.
ppt
&&
this
.
$refs
.
ppt
.
setSize
(
s
,
i
)):
this
.
state
.
pptBoxShow
?(
this
.
$refs
.
ppt
&&
this
.
$refs
.
ppt
.
setSize
(
t
.
ppt
.
w
,
t
.
ppt
.
h
),
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
setSize
(
t
.
video
.
w
,
t
.
video
.
h
),
s
=
t
.
ppt
.
w
+
t
.
video
.
w
,
i
=
t
.
video
.
h
):(
s
=
t
.
video
.
w
,
i
=
t
.
video
.
h
,
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
setSize
(
s
,
i
)),
this
.
state
.
calculatedSize
=!
0
,
e
.
style
.
paddingLeft
=
(
t
.
space
.
w
-
s
)
/
2
+
15
+
"px"
,
e
.
style
.
paddingTop
=
(
t
.
space
.
h
-
i
)
/
2
+
10
+
"px"
},
getCalculateSize
:
function
(){
var
e
=
this
.
$refs
.
container
,
t
=
e
.
offsetWidth
-
30
,
i
=
e
.
offsetHeight
-
53
-
20
,
s
=
550
/
363
,
n
=
336
/
236
,
a
=
{
space
:{
w
:
t
,
h
:
i
},
video
:{
w
:
0
,
h
:
0
},
ppt
:{
w
:
0
,
h
:
0
}};
if
(
this
.
state
.
pptBoxOnly
)
a
.
ppt
.
w
=
t
<
i
*
n
?
t
:
i
*
n
,
a
.
ppt
.
h
=
i
<
t
/
n
?
i
:
t
/
n
;
else
if
(
this
.
state
.
pptBoxShow
){
var
r
=
t
/
2
,
o
=
r
<
i
*
s
?
r
:
i
*
s
,
l
=
i
<
r
/
s
?
i
:
r
/
s
,
p
=
l
,
d
=
p
*
n
;
a
.
video
.
w
=
o
,
a
.
video
.
h
=
l
,
a
.
ppt
.
w
=
d
,
a
.
ppt
.
h
=
p
}
else
a
.
video
.
w
=
t
<
i
*
s
?
t
:
i
*
s
,
a
.
video
.
h
=
i
<
t
/
s
?
i
:
t
/
s
;
return
a
},
hearBeatFunc
:
function
(
e
){
if
(
this
.
chapterVideo
&&
this
.
isPlaying
){
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
){
var
t
=
this
.
_rProgress
,
i
=
this
.
videoFlash
.
lastTime
,
s
=
this
.
videoFlash
.
speed
,
n
=
this
.
videoFlash
.
isSeek
,
a
=
this
.
videoFlash
.
queueFrames
;
0
===
t
.
cpt
&&
0
===
t
.
mpt
&&
0
===
t
.
pt
&&
/skip=1/
.
test
(
document
.
cookie
)
&&
(
t
.
pt
=
7
),
n
||
(
t
.
pt
+=
e
/
1
e3
*
s
,
t
.
cpt
=
i
,
t
.
mpt
=
i
>
t
.
mpt
?
i
:
t
.
mpt
,
t
.
ps
=
a
,
this
.
$emit
(
"updateProgress"
,
this
.
_rProgress
))}
else
this
.
_rProgress
=
r
.
default
.
assignIn
({},
this
.
chapterVideo
.
progress
);
this
.
isPlaying
=!
1
}},
createHeartTime
:
function
(
e
){
var
t
=
this
,
i
=
e
||
1
e4
;
this
.
destroyHeartTime
(),
this
.
hearBeat
=
setInterval
(
function
(){
t
.
hearBeatFunc
(
i
)},
i
)},
destroyHeartTime
:
function
(){
this
.
hearBeat
&&
clearInterval
(
this
.
hearBeat
)}}}},
352
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
353
),
n
=
i
.
n
(
s
);
for
(
var
a
in
s
)
"default"
!==
a
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
a
);
t
.
default
=
n
.
a
},
353
:
function
(
e
,
a
,
r
){
"use strict"
;(
function
(
s
){
Object
.
defineProperty
(
a
,
"__esModule"
,{
value
:
!
0
});
var
e
,
t
=
r
(
269
),
p
=
(
e
=
t
)
&&
e
.
__esModule
?
e
:{
default
:
e
};
var
n
=
"playerWrap"
,
i
=
0
;
a
.
default
=
{
props
:{
lastTime
:{
type
:
Number
,
require
:
!
1
},
videoId
:{
type
:
String
,
require
:
!
1
},
width
:{
type
:
Number
,
require
:
!
1
},
height
:{
type
:
Number
,
require
:
!
1
},
username
:{
type
:
String
,
require
:
!
1
},
videoSrt
:{
type
:
String
,
require
:
!
1
},
autoPlay
:{
type
:
Boolean
,
require
:
!
1
,
default
:
!
0
},
chapterVideo
:{
type
:
Object
,
require
:
!
1
}},
mounted
:
function
(){
this
.
definWindowFun
()},
watch
:{
videoId
:{
handler
:
function
(){
this
.
videoId
&&
(
i
=
this
.
lastTime
||
0
,
this
.
renderPlayer
(
"player"
,
this
.
videoId
,
this
.
autoPlay
,
this
.
videoSrt
,
this
.
username
,
this
.
width
,
this
.
height
))}}},
methods
:{
definWindowFun
:
function
(){
var
t
=
this
;
window
.
_playerStart
=
function
(){
/
skip
=
1
/
.
test
(
document
.
cookie
)?
t
.
getPlayer
().
callAction
(
"setCurrentTime"
,
Math
.
max
(
i
,
7
)):
i
&&
t
.
getPlayer
().
callAction
(
"setCurrentTime"
,
i
)},
window
.
_playerIng
=
function
(
e
){
s
(
"#"
+
n
).
trigger
(
"player.time"
,{
time
:
e
,
quality
:
t
.
getPlayer
().
callAction
(
"getQuality"
),
isSeek
:
!
1
})},
window
.
_playerSeek
=
function
(){
s
(
"#"
+
n
).
trigger
(
"player.seek"
,{
time
:
t
.
getPlayer
().
callAction
(
"getCurrentTime"
),
quality
:
t
.
getPlayer
().
callAction
(
"getQuality"
),
isSeek
:
!
0
})},
window
.
_playerFinish
=
function
(){
t
.
$emit
(
"handlePlayfinish"
,{
time
:
t
.
getPlayer
().
callAction
(
"getDuration"
)})},
window
.
_playerCallback
=
function
(){
var
e
=
t
.
getPlayer
();
e
&&
(
e
.
callAction
(
"register"
,
"onCanplay"
,
"_playerStart"
),
e
.
callAction
(
"register"
,
"onPlaying"
,
"_playerIng"
),
e
.
callAction
(
"register"
,
"onSeekComplete"
,
"_playerSeek"
),
e
.
callAction
(
"register"
,
"onEnded"
,
"_playerFinish"
))}},
renderPlayer
:
function
(
e
,
t
,
i
,
s
,
n
,
a
,
r
){
var
o
=
{
autoStart
:
i
=
void
0
===
i
?
1
:
i
-
0
,
vid
:
t
,
isShowSpeeder
:
1
,
videoType
:
1
,
callback
:
"_playerCallback"
};
s
&&
(
o
.
srtUrl
=
s
),
n
&&
(
o
.
username
=
n
);
var
l
=
{
id
:
e
,
name
:
e
,
align
:
"middle"
,
wmode
:
"opaque"
};
p
.
default
.
embedSWF
(
"/static/videoJs/swf/Player1705192.swf"
,
e
,
parseInt
(
a
),
parseInt
(
r
),
"11.1.0"
,
"playerProductInstall.swf"
,
o
,{
quality
:
"high"
,
bgcolor
:
"#000000"
,
allowscriptaccess
:
"always"
,
allowfullscreen
:
"true"
},
l
),
this
.
listenPlayerEvents
()},
listenPlayerEvents
:
function
(){
var
i
=
this
;
s
(
"#"
+
n
).
off
(
"player.time player.seek"
).
on
(
"player.time player.seek"
,
function
(
e
,
t
){
i
.
$emit
(
"handlePlayTime"
,
t
)})},
getPlayer
:
function
(){
return
document
.
getElementById
(
"player"
)},
getTime
:
function
(){
var
e
=
this
.
getPlayer
();
return
e
?
e
.
callAction
(
"getCurrentTime"
):
0
},
setTimeTo
:
function
(
e
){
var
t
=
this
.
getPlayer
();
t
&&
t
.
callAction
(
"setCurrentTime"
,
e
+
2
)},
skipBegin
:
function
(){
var
e
=
this
.
getPlayer
();
e
&&
e
.
callAction
(
"getCurrentTime"
)
<
7
&&
e
.
callAction
(
"setCurrentTime"
,
7
)},
setSize
:
function
(
e
,
t
){
var
i
=
this
.
getPlayer
();
i
&&
(
i
.
width
=
e
,
i
.
height
=
t
)}}}}).
call
(
this
,
r
(
377
))},
354
:
function
(
e
,
t
,
i
){},
355
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
356
),
n
=
i
.
n
(
s
);
for
(
var
a
in
s
)
"default"
!==
a
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
a
);
t
.
default
=
n
.
a
},
356
:
function
(
e
,
t
,
i
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
}),
t
.
default
=
{
props
:{
ppts
:{
type
:
Array
,
require
:
!
1
},
currentIndex
:{
type
:
Number
,
require
:
!
1
,
default
:
0
}},
data
:
function
(){
return
{
state
:{
index
:
this
.
currentIndex
,
sync
:
!
0
}}},
watch
:{
currentIndex
:{
handler
:
function
(){
this
.
state
.
sync
&&
(
this
.
state
.
index
=
this
.
currentIndex
)}}},
methods
:{
gotoIndex
:
function
(
e
){
this
.
state
.
index
=
e
},
getIndex
:
function
(
e
){
return
Math
.
min
(
this
.
ppts
.
length
-
1
,
Math
.
max
(
0
,
e
))},
prev
:
function
(
e
){
this
.
state
.
index
=
this
.
getIndex
(
this
.
state
.
index
-
1
),
this
.
state
.
sync
=!
1
},
next
:
function
(
e
){
this
.
state
.
index
=
this
.
getIndex
(
this
.
state
.
index
+
1
),
this
.
state
.
sync
=!
1
},
onToggleSync
:
function
(
e
){
this
.
state
.
sync
=!
this
.
state
.
sync
,
this
.
state
.
index
=
this
.
state
.
sync
?
this
.
currentIndex
:
this
.
state
.
index
},
onSetVideoTime
:
function
(
e
){
this
.
$emit
(
"onVideoSyncTime"
,
this
.
ppts
[
this
.
state
.
index
].
ppt_point
)},
setSize
:
function
(
e
,
t
){
this
.
$refs
.
wrap
.
style
.
width
=
e
+
"px"
,
this
.
$refs
.
wrap
.
style
.
height
=
t
+
"px"
,
this
.
$refs
.
preview
.
style
.
lineHeight
=
t
-
44
+
"px"
}}}},
401
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
441
),
n
=
i
(
352
);
for
(
var
a
in
n
)
"default"
!==
a
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
n
[
e
]})}(
a
);
i
(
402
);
var
r
=
i
(
1
),
o
=
Object
(
r
.
a
)(
n
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
"dced0884"
,
null
);
o
.
options
.
__file
=
"video.vue"
,
t
.
default
=
o
.
exports
},
402
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
i
(
354
);
i
.
n
(
s
).
a
},
403
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
438
),
n
=
i
(
355
);
for
(
var
a
in
n
)
"default"
!==
a
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
n
[
e
]})}(
a
);
var
r
=
i
(
1
),
o
=
Object
(
r
.
a
)(
n
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
null
,
null
);
o
.
options
.
__file
=
"ppt.vue"
,
t
.
default
=
o
.
exports
},
438
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
function
(){
var
e
=
this
,
t
=
this
,
i
=
t
.
$createElement
,
s
=
t
.
_self
.
_c
||
i
;
return
s
(
"div"
,{
ref
:
"wrap"
,
staticClass
:
"play-ppt"
},[
t
.
ppts
.
length
?[
s
(
"div"
,{
ref
:
"preview"
,
staticClass
:
"play-preview"
},[
t
.
ppts
[
t
.
state
.
index
]
&&
t
.
ppts
[
t
.
state
.
index
].
ppt_url
?[
s
(
"img"
,{
staticClass
:
"play-ppt-img"
,
staticStyle
:{
"vertical-align"
:
"middle"
},
attrs
:{
src
:
t
.
ppts
[
t
.
state
.
index
].
ppt_url
}})]:
t
.
_e
()],
2
),
t
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-controls cl"
},[
s
(
"div"
,{
staticStyle
:{
float
:
"left"
}},[
0
<=
t
.
state
.
index
?[
s
(
"a"
,{
staticStyle
:{
margin
:
"0 20px 0 0"
,
color
:
"#fff"
},
attrs
:{
href
:
"#"
},
on
:{
click
:
t
.
prev
}},[
s
(
"i"
,{
staticClass
:
"el-icon-arrow-left"
})])]:
t
.
_e
(),
t
.
_v
(
" "
),
t
.
state
.
index
+
1
<
t
.
ppts
.
length
?[
s
(
"a"
,{
attrs
:{
href
:
"#"
},
on
:{
click
:
t
.
next
}},[
s
(
"i"
,{
staticClass
:
"el-icon-arrow-right"
,
staticStyle
:{
color
:
"#fff"
}})])]:
t
.
_e
()],
2
),
t
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-page"
},[
s
(
"span"
,{
staticClass
:
"play-now"
},[
t
.
_v
(
t
.
_s
(
t
.
state
.
index
+
1
))]),
t
.
_v
(
"
\
n /
\
n "
),
s
(
"span"
,{
staticClass
:
"play-total"
},[
t
.
_v
(
t
.
_s
(
t
.
ppts
.
length
))]),
t
.
_v
(
"页
\
n "
)]),
t
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-amazing"
},[
s
(
"i"
,{
class
:[
"el-icon-self-xuexiao"
,
t
.
state
.
sync
?
"active"
:
""
],
on
:{
click
:
t
.
onToggleSync
}}),
t
.
_v
(
" "
),
s
(
"i"
,{
staticClass
:
"el-icon-self-quanping"
,
on
:{
click
:
function
(){
e
.
$emit
(
"onPptOnly"
)}}}),
t
.
_v
(
" "
),
s
(
"i"
,{
staticClass
:
"el-icon-self-shipin"
,
on
:{
click
:
t
.
onSetVideoTime
}}),
t
.
_v
(
" "
),
s
(
"i"
,{
staticClass
:
"el-icon-self-guanbi"
,
on
:{
click
:
function
(){
e
.
$emit
(
"onClose"
)}}})])])]:
t
.
_e
()],
2
)},
n
=
[];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
n
})},
441
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
function
(){
var
e
=
this
.
$createElement
;
this
.
_self
.
_c
;
return
this
.
_m
(
0
)},
n
=
[
function
(){
var
e
=
this
.
$createElement
,
t
=
this
.
_self
.
_c
||
e
;
return
t
(
"div"
,{
attrs
:{
id
:
"playerWrap"
}},[
t
(
"div"
,{
attrs
:{
id
:
"player"
}},[
t
(
"p"
,[
this
.
_v
(
"您还没有安装flash播放器,请 "
),
t
(
"a"
,{
attrs
:{
href
:
"http://www.adobe.com/go/getflash"
,
target
:
"_blank"
}},[
this
.
_v
(
"点击这里安装"
)])])])])}];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
n
})},
442
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
i
=
e
.
_self
.
_c
||
t
;
return
i
(
"div"
,{
ref
:
"container"
,
staticClass
:
"play-content-video"
},[
i
(
"div"
,{
ref
:
"box"
,
staticClass
:
"play-center"
},[
e
.
chapterVideo
?[
i
(
"div"
,{
class
:[
"play-video"
,
e
.
state
.
pptBoxOnly
?
"play-video-hide"
:
""
,
e
.
state
.
calculatedSize
?
""
:
"play-video-init-center"
]},[
i
(
"e-video"
,{
ref
:
"video"
,
attrs
:{
lastTime
:
parseFloat
(
e
.
chapterVideo
.
progress
&&
e
.
chapterVideo
.
progress
.
pt
||
0
),
width
:
e
.
videoFlash
.
videoWidth
,
height
:
e
.
videoFlash
.
videoHeight
,
username
:
e
.
videoFlash
.
username
,
videoId
:
e
.
chapterVideo
.
video_origionalID
,
videoSrt
:
e
.
chapterVideo
.
video_subtitle
||
""
,
chapterVideo
:
e
.
chapterVideo
},
on
:{
handlePlayTime
:
e
.
onVideoTimeChange
,
handlePlayfinish
:
e
.
onVideoPlayFinish
}})],
1
),
e
.
_v
(
" "
),
i
(
"div"
,{
class
:[
"play-jiangyi"
,
e
.
state
.
pptBoxShow
?
""
:
"hide"
]},[
e
.
ppts
.
length
?[
i
(
"e-ppt"
,{
ref
:
"ppt"
,
attrs
:{
ppts
:
e
.
ppts
,
currentIndex
:
e
.
state
.
pptIndex
},
on
:{
onVideoSyncTime
:
e
.
setVideoTime
,
onPptOnly
:
e
.
togglePptBoxOnly
,
onClose
:
e
.
togglePptBox
}})]:
e
.
_e
()],
2
)]:[
i
(
"p"
,[
e
.
_v
(
"课程视频数据不存在"
)])]],
2
),
e
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"play-footer"
},[
i
(
"div"
,{
staticClass
:
"fl"
}),
e
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"fr"
},[
e
.
chapterVideo
.
pdf
?[
i
(
"em"
,{
staticClass
:
"play-state play-state-ppt"
},[
i
(
"a"
,{
attrs
:{
href
:
e
.
chapterVideo
.
pdf
,
target
:
"_blank"
}},[
e
.
_v
(
"下载PPT"
)])])]:
e
.
_e
(),
e
.
_v
(
" "
),
e
.
ppts
.
length
?[
i
(
"em"
,{
class
:[
"play-state"
,
"play-state-ppt"
+
(
e
.
state
.
pptBoxShow
?
"-active"
:
""
)],
on
:{
click
:
e
.
togglePptBox
}},[
e
.
_v
(
"同步显示PPT"
)])]:
e
.
_e
(),
e
.
_v
(
" "
),
i
(
"em"
,{
class
:[
"play-state"
,
"play-state-check"
+
(
e
.
state
.
skipBegin
?
"-active"
:
""
)],
on
:{
click
:
e
.
toggleSkipBegin
}},[
e
.
_v
(
"始终跳过片头"
)])],
2
)])])},
n
=
[];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
n
})}}]);
\ No newline at end of file
client-dist/resources/10.a505bcc1227b.css
deleted
100644 → 0
浏览文件 @
fd69498f
#player
p
[
data-v-68bd2f36
]
{
color
:
#fff
;
text-align
:
center
;
padding
:
50px
0
}
#player
p
a
[
data-v-68bd2f36
]
{
color
:
#b01c40
;
text-decoration
:
underline
}
\ No newline at end of file
client-dist/resources/10.f2358237.js
deleted
100644 → 0
浏览文件 @
fd69498f
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
10
],{
268
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
442
),
a
=
i
(
350
);
for
(
var
n
in
a
)
"default"
!==
n
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
a
[
e
]})}(
n
);
var
r
=
i
(
1
),
o
=
Object
(
r
.
a
)(
a
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
null
,
null
);
o
.
options
.
__file
=
"chapterVideo.vue"
,
t
.
default
=
o
.
exports
},
350
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
351
),
a
=
i
.
n
(
s
);
for
(
var
n
in
s
)
"default"
!==
n
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
n
);
t
.
default
=
a
.
a
},
351
:
function
(
e
,
t
,
i
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
s
=
n
(
i
(
401
)),
a
=
n
(
i
(
403
)),
r
=
n
(
i
(
74
));
function
n
(
e
){
return
e
&&
e
.
__esModule
?
e
:{
default
:
e
}}
t
.
default
=
{
components
:{
eVideo
:
s
.
default
,
ePpt
:
a
.
default
},
props
:{
chapterId
:{
type
:
String
,
require
:
!
1
},
chapterName
:{
type
:
String
,
require
:
!
1
},
chapterVideo
:{
type
:
Object
,
require
:
!
1
},
ppts
:{
type
:
Array
,
require
:
!
1
,
default
:[]},
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
},
id
:{
type
:
String
,
require
:
!
1
}},
data
:
function
(){
return
{
state
:{
pptIndex
:
0
,
pptBoxOnly
:
!
1
,
pptBoxShow
:
!
1
,
skipBegin
:
/skip=1/
.
test
(
document
.
cookie
),
calculatedSize
:
!
1
},
videoFlash
:{
lastTime
:
null
,
speed
:
1
,
isSeek
:
!
1
,
queueFrames
:[],
videoWidth
:
550
,
videoHeight
:
360
,
username
:
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
username
||
""
},
resizeVideo
:
null
,
hearBeat
:
null
,
_rProgress
:{},
isPlaying
:
!
1
}},
mounted
:
function
(){
var
e
=
this
.
getCalculateSize
();
e
.
video
.
w
&&
(
this
.
videoFlash
.
videoWidth
=
e
.
video
.
w
,
this
.
videoFlash
.
videoHeight
=
e
.
video
.
h
),
this
.
resizeVideo
||
(
this
.
resizeVideo
=
r
.
default
.
debounce
(
this
.
jdugeSize
.
bind
(
this
),
200
)),
setTimeout
(
this
.
jdugeSize
,
300
),
window
.
addEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
createHeartTime
()},
destroyed
:
function
(){
window
.
removeEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
destroyHeartTime
(),
this
.
hearBeatFunc
(
1
e4
)},
watch
:{
id
:{
handler
:
function
(){
this
.
id
&&
(
this
.
state
.
pptBoxShow
=!
1
,
this
.
state
.
pptBoxOnly
=!
1
,
this
.
_rProgress
=
{},
setTimeout
(
this
.
jdugeSize
,
0
))}}},
methods
:{
togglePptBox
:
function
(){
this
.
state
.
pptBoxShow
=!
this
.
state
.
pptBoxShow
,
this
.
state
.
pptBoxOnly
=!
1
,
setTimeout
(
this
.
jdugeSize
,
0
)},
togglePptBoxOnly
:
function
(){
this
.
state
.
pptBoxOnly
=!
this
.
state
.
pptBoxOnly
,
setTimeout
(
this
.
jdugeSize
,
0
)},
toggleSkipBegin
:
function
(){
var
e
=!
this
.
state
.
skipBegin
,
t
=
new
Date
;
t
.
setMonth
(
t
.
getMonth
()
+
1
),
document
.
cookie
=
"skip="
+
+
e
+
";path=/;domain=.ezijing.com;expires="
+
t
.
toGMTString
(),
e
&&
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
skipBegin
(),
this
.
state
.
skipBegin
=
e
},
onVideoTimeChange
:
function
(
e
){
var
t
=
e
.
time
;
this
.
videoFlash
.
speed
=
parseFloat
(
e
.
quality
.
split
(
" "
)[
1
]
||
1
),
this
.
videoFlash
.
isSeek
=
e
.
isSeek
,
this
.
videoFlash
.
lastTime
!==
t
&&
(
this
.
videoFlash
.
lastTime
=
t
,
this
.
isPlaying
=!
0
,
e
.
isSeek
||
this
.
videoFlash
.
queueFrames
.
push
(
t
),
this
.
setPptIndexByTime
(
t
),
this
.
$emit
(
"handlePlayTime"
,
t
))},
setPptIndexByTime
:
function
(
e
){
for
(
var
t
=
this
.
ppts
||
[],
i
=
0
;
i
<
t
.
length
&&!
(
e
<
t
[
i
].
ppt_point
);
i
++
);
this
.
state
.
pptIndex
!==
i
-
1
&&
(
this
.
state
.
pptIndex
=
i
-
1
)},
setVideoTime
:
function
(
e
){
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
setTimeTo
(
e
)},
jdugeSize
:
function
(){
var
e
=
this
.
$refs
.
box
,
t
=
this
.
getCalculateSize
(),
i
=
0
,
s
=
0
;
this
.
state
.
pptBoxOnly
?(
s
=
t
.
ppt
.
w
,
i
=
t
.
ppt
.
h
,
this
.
$refs
.
ppt
&&
this
.
$refs
.
ppt
.
setSize
(
s
,
i
)):
this
.
state
.
pptBoxShow
?(
this
.
$refs
.
ppt
&&
this
.
$refs
.
ppt
.
setSize
(
t
.
ppt
.
w
,
t
.
ppt
.
h
),
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
setSize
(
t
.
video
.
w
,
t
.
video
.
h
),
s
=
t
.
ppt
.
w
+
t
.
video
.
w
,
i
=
t
.
video
.
h
):(
s
=
t
.
video
.
w
,
i
=
t
.
video
.
h
,
this
.
$refs
.
video
&&
this
.
$refs
.
video
.
setSize
(
s
,
i
)),
this
.
state
.
calculatedSize
=!
0
,
e
.
style
.
paddingLeft
=
(
t
.
space
.
w
-
s
)
/
2
+
15
+
"px"
,
e
.
style
.
paddingTop
=
(
t
.
space
.
h
-
i
)
/
2
+
10
+
"px"
},
getCalculateSize
:
function
(){
var
e
=
this
.
$refs
.
container
,
t
=
e
.
offsetWidth
-
30
,
i
=
e
.
offsetHeight
-
53
-
20
,
s
=
550
/
363
,
a
=
336
/
236
,
n
=
{
space
:{
w
:
t
,
h
:
i
},
video
:{
w
:
0
,
h
:
0
},
ppt
:{
w
:
0
,
h
:
0
}};
if
(
this
.
state
.
pptBoxOnly
)
n
.
ppt
.
w
=
t
<
i
*
a
?
t
:
i
*
a
,
n
.
ppt
.
h
=
i
<
t
/
a
?
i
:
t
/
a
;
else
if
(
this
.
state
.
pptBoxShow
){
var
r
=
t
/
2
,
o
=
r
<
i
*
s
?
r
:
i
*
s
,
l
=
i
<
r
/
s
?
i
:
r
/
s
,
p
=
l
,
d
=
p
*
a
;
n
.
video
.
w
=
o
,
n
.
video
.
h
=
l
,
n
.
ppt
.
w
=
d
,
n
.
ppt
.
h
=
p
}
else
n
.
video
.
w
=
t
<
i
*
s
?
t
:
i
*
s
,
n
.
video
.
h
=
i
<
t
/
s
?
i
:
t
/
s
;
return
n
},
hearBeatFunc
:
function
(
e
){
if
(
this
.
chapterVideo
&&
this
.
isPlaying
){
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
){
var
t
=
this
.
_rProgress
,
i
=
this
.
videoFlash
.
lastTime
,
s
=
this
.
videoFlash
.
speed
,
a
=
this
.
videoFlash
.
isSeek
,
n
=
this
.
videoFlash
.
queueFrames
;
0
===
t
.
cpt
&&
0
===
t
.
mpt
&&
0
===
t
.
pt
&&
/skip=1/
.
test
(
document
.
cookie
)
&&
(
t
.
pt
=
7
),
a
||
(
t
.
pt
+=
e
/
1
e3
*
s
,
t
.
cpt
=
i
,
t
.
mpt
=
i
>
t
.
mpt
?
i
:
t
.
mpt
,
t
.
ps
=
n
,
this
.
$emit
(
"updateProgress"
,
this
.
_rProgress
))}
else
this
.
_rProgress
=
r
.
default
.
assignIn
({},
this
.
chapterVideo
.
progress
);
this
.
isPlaying
=!
1
}},
createHeartTime
:
function
(
e
){
var
t
=
this
,
i
=
e
||
1
e4
;
this
.
destroyHeartTime
(),
this
.
hearBeat
=
setInterval
(
function
(){
t
.
hearBeatFunc
(
i
)},
i
)},
destroyHeartTime
:
function
(){
this
.
hearBeat
&&
clearInterval
(
this
.
hearBeat
)}}}},
352
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
353
),
a
=
i
.
n
(
s
);
for
(
var
n
in
s
)
"default"
!==
n
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
n
);
t
.
default
=
a
.
a
},
353
:
function
(
e
,
n
,
r
){
"use strict"
;(
function
(
s
){
Object
.
defineProperty
(
n
,
"__esModule"
,{
value
:
!
0
});
var
e
,
t
=
r
(
269
),
p
=
(
e
=
t
)
&&
e
.
__esModule
?
e
:{
default
:
e
};
var
a
=
"playerWrap"
,
i
=
0
;
n
.
default
=
{
props
:{
lastTime
:{
type
:
Number
,
require
:
!
1
},
videoId
:{
type
:
String
,
require
:
!
1
},
width
:{
type
:
Number
,
require
:
!
1
},
height
:{
type
:
Number
,
require
:
!
1
},
username
:{
type
:
String
,
require
:
!
1
},
videoSrt
:{
type
:
String
,
require
:
!
1
},
autoPlay
:{
type
:
Boolean
,
require
:
!
1
,
default
:
!
0
},
chapterVideo
:{
type
:
Object
,
require
:
!
1
}},
mounted
:
function
(){
this
.
definWindowFun
()},
watch
:{
videoId
:{
handler
:
function
(){
this
.
videoId
&&
(
i
=
this
.
lastTime
||
0
,
this
.
renderPlayer
(
"player"
,
this
.
videoId
,
this
.
autoPlay
,
this
.
videoSrt
,
this
.
username
,
this
.
width
,
this
.
height
))}}},
methods
:{
definWindowFun
:
function
(){
var
t
=
this
;
window
.
_playerStart
=
function
(){
/
skip
=
1
/
.
test
(
document
.
cookie
)?
t
.
getPlayer
().
callAction
(
"setCurrentTime"
,
Math
.
max
(
i
,
7
)):
i
&&
t
.
getPlayer
().
callAction
(
"setCurrentTime"
,
i
)},
window
.
_playerIng
=
function
(
e
){
s
(
"#"
+
a
).
trigger
(
"player.time"
,{
time
:
e
,
quality
:
t
.
getPlayer
().
callAction
(
"getQuality"
),
isSeek
:
!
1
})},
window
.
_playerSeek
=
function
(){
s
(
"#"
+
a
).
trigger
(
"player.seek"
,{
time
:
t
.
getPlayer
().
callAction
(
"getCurrentTime"
),
quality
:
t
.
getPlayer
().
callAction
(
"getQuality"
),
isSeek
:
!
0
})},
window
.
_playerCallback
=
function
(){
var
e
=
t
.
getPlayer
();
e
&&
(
e
.
callAction
(
"register"
,
"onCanplay"
,
"_playerStart"
),
e
.
callAction
(
"register"
,
"onPlaying"
,
"_playerIng"
),
e
.
callAction
(
"register"
,
"onSeekComplete"
,
"_playerSeek"
))}},
renderPlayer
:
function
(
e
,
t
,
i
,
s
,
a
,
n
,
r
){
var
o
=
{
autoStart
:
i
=
void
0
===
i
?
1
:
i
-
0
,
vid
:
t
,
isShowSpeeder
:
1
,
videoType
:
1
,
callback
:
"_playerCallback"
};
s
&&
(
o
.
srtUrl
=
s
),
a
&&
(
o
.
username
=
a
);
var
l
=
{
id
:
e
,
name
:
e
,
align
:
"middle"
,
wmode
:
"opaque"
};
p
.
default
.
embedSWF
(
"/static/videoJs/swf/Player1705192.swf"
,
e
,
parseInt
(
n
),
parseInt
(
r
),
"11.1.0"
,
"playerProductInstall.swf"
,
o
,{
quality
:
"high"
,
bgcolor
:
"#000000"
,
allowscriptaccess
:
"always"
,
allowfullscreen
:
"true"
},
l
),
this
.
listenPlayerEvents
()},
listenPlayerEvents
:
function
(){
var
i
=
this
;
s
(
"#"
+
a
).
off
(
"player.time player.seek"
).
on
(
"player.time player.seek"
,
function
(
e
,
t
){
i
.
$emit
(
"handlePlayTime"
,
t
)})},
getPlayer
:
function
(){
return
document
.
getElementById
(
"player"
)},
getTime
:
function
(){
var
e
=
this
.
getPlayer
();
return
e
?
e
.
callAction
(
"getCurrentTime"
):
0
},
setTimeTo
:
function
(
e
){
var
t
=
this
.
getPlayer
();
t
&&
t
.
callAction
(
"setCurrentTime"
,
e
+
2
)},
skipBegin
:
function
(){
var
e
=
this
.
getPlayer
();
e
&&
e
.
callAction
(
"getCurrentTime"
)
<
7
&&
e
.
callAction
(
"setCurrentTime"
,
7
)},
setSize
:
function
(
e
,
t
){
var
i
=
this
.
getPlayer
();
i
&&
(
i
.
width
=
e
,
i
.
height
=
t
)}}}}).
call
(
this
,
r
(
377
))},
354
:
function
(
e
,
t
,
i
){},
355
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
356
),
a
=
i
.
n
(
s
);
for
(
var
n
in
s
)
"default"
!==
n
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
n
);
t
.
default
=
a
.
a
},
356
:
function
(
e
,
t
,
i
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
}),
t
.
default
=
{
props
:{
ppts
:{
type
:
Array
,
require
:
!
1
},
currentIndex
:{
type
:
Number
,
require
:
!
1
,
default
:
0
}},
data
:
function
(){
return
{
state
:{
index
:
this
.
currentIndex
,
sync
:
!
0
}}},
watch
:{
currentIndex
:{
handler
:
function
(){
this
.
state
.
sync
&&
(
this
.
state
.
index
=
this
.
currentIndex
)}}},
methods
:{
gotoIndex
:
function
(
e
){
this
.
state
.
index
=
e
},
getIndex
:
function
(
e
){
return
Math
.
min
(
this
.
ppts
.
length
-
1
,
Math
.
max
(
0
,
e
))},
prev
:
function
(
e
){
this
.
state
.
index
=
this
.
getIndex
(
this
.
state
.
index
-
1
),
this
.
state
.
sync
=!
1
},
next
:
function
(
e
){
this
.
state
.
index
=
this
.
getIndex
(
this
.
state
.
index
+
1
),
this
.
state
.
sync
=!
1
},
onToggleSync
:
function
(
e
){
this
.
state
.
sync
=!
this
.
state
.
sync
,
this
.
state
.
index
=
this
.
state
.
sync
?
this
.
currentIndex
:
this
.
state
.
index
},
onSetVideoTime
:
function
(
e
){
this
.
$emit
(
"onVideoSyncTime"
,
this
.
ppts
[
this
.
state
.
index
].
ppt_point
)},
setSize
:
function
(
e
,
t
){
this
.
$refs
.
wrap
.
style
.
width
=
e
+
"px"
,
this
.
$refs
.
wrap
.
style
.
height
=
t
+
"px"
,
this
.
$refs
.
preview
.
style
.
lineHeight
=
t
-
44
+
"px"
}}}},
401
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
441
),
a
=
i
(
352
);
for
(
var
n
in
a
)
"default"
!==
n
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
a
[
e
]})}(
n
);
i
(
402
);
var
r
=
i
(
1
),
o
=
Object
(
r
.
a
)(
a
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
"68bd2f36"
,
null
);
o
.
options
.
__file
=
"video.vue"
,
t
.
default
=
o
.
exports
},
402
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
i
(
354
);
i
.
n
(
s
).
a
},
403
:
function
(
e
,
t
,
i
){
"use strict"
;
i
.
r
(
t
);
var
s
=
i
(
438
),
a
=
i
(
355
);
for
(
var
n
in
a
)
"default"
!==
n
&&
function
(
e
){
i
.
d
(
t
,
e
,
function
(){
return
a
[
e
]})}(
n
);
var
r
=
i
(
1
),
o
=
Object
(
r
.
a
)(
a
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
null
,
null
);
o
.
options
.
__file
=
"ppt.vue"
,
t
.
default
=
o
.
exports
},
438
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
function
(){
var
e
=
this
,
t
=
this
,
i
=
t
.
$createElement
,
s
=
t
.
_self
.
_c
||
i
;
return
s
(
"div"
,{
ref
:
"wrap"
,
staticClass
:
"play-ppt"
},[
t
.
ppts
.
length
?[
s
(
"div"
,{
ref
:
"preview"
,
staticClass
:
"play-preview"
},[
t
.
ppts
[
t
.
state
.
index
]
&&
t
.
ppts
[
t
.
state
.
index
].
ppt_url
?[
s
(
"img"
,{
staticClass
:
"play-ppt-img"
,
staticStyle
:{
"vertical-align"
:
"middle"
},
attrs
:{
src
:
t
.
ppts
[
t
.
state
.
index
].
ppt_url
}})]:
t
.
_e
()],
2
),
t
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-controls cl"
},[
s
(
"div"
,{
staticStyle
:{
float
:
"left"
}},[
0
<=
t
.
state
.
index
?[
s
(
"a"
,{
staticStyle
:{
margin
:
"0 20px 0 0"
,
color
:
"#fff"
},
attrs
:{
href
:
"#"
},
on
:{
click
:
t
.
prev
}},[
s
(
"i"
,{
staticClass
:
"el-icon-arrow-left"
})])]:
t
.
_e
(),
t
.
_v
(
" "
),
t
.
state
.
index
+
1
<
t
.
ppts
.
length
?[
s
(
"a"
,{
attrs
:{
href
:
"#"
},
on
:{
click
:
t
.
next
}},[
s
(
"i"
,{
staticClass
:
"el-icon-arrow-right"
,
staticStyle
:{
color
:
"#fff"
}})])]:
t
.
_e
()],
2
),
t
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-page"
},[
s
(
"span"
,{
staticClass
:
"play-now"
},[
t
.
_v
(
t
.
_s
(
t
.
state
.
index
+
1
))]),
t
.
_v
(
"
\
n /
\
n "
),
s
(
"span"
,{
staticClass
:
"play-total"
},[
t
.
_v
(
t
.
_s
(
t
.
ppts
.
length
))]),
t
.
_v
(
"页
\
n "
)]),
t
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-amazing"
},[
s
(
"i"
,{
class
:[
"el-icon-self-xuexiao"
,
t
.
state
.
sync
?
"active"
:
""
],
on
:{
click
:
t
.
onToggleSync
}}),
t
.
_v
(
" "
),
s
(
"i"
,{
staticClass
:
"el-icon-self-quanping"
,
on
:{
click
:
function
(){
e
.
$emit
(
"onPptOnly"
)}}}),
t
.
_v
(
" "
),
s
(
"i"
,{
staticClass
:
"el-icon-self-shipin"
,
on
:{
click
:
t
.
onSetVideoTime
}}),
t
.
_v
(
" "
),
s
(
"i"
,{
staticClass
:
"el-icon-self-guanbi"
,
on
:{
click
:
function
(){
e
.
$emit
(
"onClose"
)}}})])])]:
t
.
_e
()],
2
)},
a
=
[];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
a
})},
441
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
function
(){
var
e
=
this
.
$createElement
;
this
.
_self
.
_c
;
return
this
.
_m
(
0
)},
a
=
[
function
(){
var
e
=
this
.
$createElement
,
t
=
this
.
_self
.
_c
||
e
;
return
t
(
"div"
,{
attrs
:{
id
:
"playerWrap"
}},[
t
(
"div"
,{
attrs
:{
id
:
"player"
}},[
t
(
"p"
,[
this
.
_v
(
"您还没有安装flash播放器,请 "
),
t
(
"a"
,{
attrs
:{
href
:
"http://www.adobe.com/go/getflash"
,
target
:
"_blank"
}},[
this
.
_v
(
"点击这里安装"
)])])])])}];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
a
})},
442
:
function
(
e
,
t
,
i
){
"use strict"
;
var
s
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
i
=
e
.
_self
.
_c
||
t
;
return
i
(
"div"
,{
ref
:
"container"
,
staticClass
:
"play-content-video"
},[
i
(
"div"
,{
ref
:
"box"
,
staticClass
:
"play-center"
},[
e
.
chapterVideo
?[
i
(
"div"
,{
class
:[
"play-video"
,
e
.
state
.
pptBoxOnly
?
"play-video-hide"
:
""
,
e
.
state
.
calculatedSize
?
""
:
"play-video-init-center"
]},[
i
(
"e-video"
,{
ref
:
"video"
,
attrs
:{
lastTime
:
parseFloat
(
e
.
chapterVideo
.
progress
&&
e
.
chapterVideo
.
progress
.
pt
||
0
),
width
:
e
.
videoFlash
.
videoWidth
,
height
:
e
.
videoFlash
.
videoHeight
,
username
:
e
.
videoFlash
.
username
,
videoId
:
e
.
chapterVideo
.
video_origionalID
,
videoSrt
:
e
.
chapterVideo
.
video_subtitle
||
""
,
chapterVideo
:
e
.
chapterVideo
},
on
:{
handlePlayTime
:
e
.
onVideoTimeChange
}})],
1
),
e
.
_v
(
" "
),
i
(
"div"
,{
class
:[
"play-jiangyi"
,
e
.
state
.
pptBoxShow
?
""
:
"hide"
]},[
e
.
ppts
.
length
?[
i
(
"e-ppt"
,{
ref
:
"ppt"
,
attrs
:{
ppts
:
e
.
ppts
,
currentIndex
:
e
.
state
.
pptIndex
},
on
:{
onVideoSyncTime
:
e
.
setVideoTime
,
onPptOnly
:
e
.
togglePptBoxOnly
,
onClose
:
e
.
togglePptBox
}})]:
e
.
_e
()],
2
)]:[
i
(
"p"
,[
e
.
_v
(
"课程视频数据不存在"
)])]],
2
),
e
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"play-footer"
},[
i
(
"div"
,{
staticClass
:
"fl"
}),
e
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"fr"
},[
e
.
chapterVideo
.
pdf
?[
i
(
"em"
,{
staticClass
:
"play-state play-state-ppt"
},[
i
(
"a"
,{
attrs
:{
href
:
e
.
chapterVideo
.
pdf
,
target
:
"_blank"
}},[
e
.
_v
(
"下载PPT"
)])])]:
e
.
_e
(),
e
.
_v
(
" "
),
e
.
ppts
.
length
?[
i
(
"em"
,{
class
:[
"play-state"
,
"play-state-ppt"
+
(
e
.
state
.
pptBoxShow
?
"-active"
:
""
)],
on
:{
click
:
e
.
togglePptBox
}},[
e
.
_v
(
"同步显示PPT"
)])]:
e
.
_e
(),
e
.
_v
(
" "
),
i
(
"em"
,{
class
:[
"play-state"
,
"play-state-check"
+
(
e
.
state
.
skipBegin
?
"-active"
:
""
)],
on
:{
click
:
e
.
toggleSkipBegin
}},[
e
.
_v
(
"始终跳过片头"
)])],
2
)])])},
a
=
[];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
a
})}}]);
\ No newline at end of file
client-dist/resources/manifest.
21a0ef13
.js
→
client-dist/resources/manifest.
0468080a
.js
浏览文件 @
5b0989b9
!
function
(
f
){
function
e
(
e
){
for
(
var
t
,
r
,
n
=
e
[
0
],
a
=
e
[
1
],
c
=
e
[
2
],
o
=
0
,
d
=
[];
o
<
n
.
length
;
o
++
)
r
=
n
[
o
],
s
[
r
]
&&
d
.
push
(
s
[
r
][
0
]),
s
[
r
]
=
0
;
for
(
t
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
t
)
&&
(
f
[
t
]
=
a
[
t
]);
for
(
p
&&
p
(
e
);
d
.
length
;)
d
.
shift
()();
return
i
.
push
.
apply
(
i
,
c
||
[]),
u
()}
function
u
(){
for
(
var
e
,
t
=
0
;
t
<
i
.
length
;
t
++
){
for
(
var
r
=
i
[
t
],
n
=!
0
,
a
=
1
;
a
<
r
.
length
;
a
++
){
var
c
=
r
[
a
];
0
!==
s
[
c
]
&&
(
n
=!
1
)}
n
&&
(
i
.
splice
(
t
--
,
1
),
e
=
b
(
b
.
s
=
r
[
0
]))}
return
e
}
var
r
=
{},
l
=
{
3
:
0
},
s
=
{
3
:
0
},
i
=
[];
function
b
(
e
){
if
(
r
[
e
])
return
r
[
e
].
exports
;
var
t
=
r
[
e
]
=
{
i
:
e
,
l
:
!
1
,
exports
:{}};
return
f
[
e
].
call
(
t
.
exports
,
t
,
t
.
exports
,
b
),
t
.
l
=!
0
,
t
.
exports
}
b
.
e
=
function
(
i
){
var
e
=
[];
l
[
i
]?
e
.
push
(
l
[
i
]):
0
!==
l
[
i
]
&&
{
0
:
1
,
5
:
1
,
6
:
1
,
7
:
1
,
8
:
1
,
9
:
1
,
10
:
1
,
11
:
1
,
12
:
1
,
13
:
1
,
14
:
1
,
15
:
1
,
16
:
1
,
17
:
1
,
18
:
1
,
19
:
1
,
20
:
1
,
21
:
1
,
22
:
1
}[
i
]
&&
e
.
push
(
l
[
i
]
=
new
Promise
(
function
(
e
,
n
){
for
(
var
t
=
"resources/"
+
({}[
i
]
||
i
)
+
"."
+
{
0
:
"7e9c19881242"
,
1
:
"31d6cfe0d16a"
,
5
:
"b6a10460f085"
,
6
:
"39a4b4394a2e"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"a505bcc1227b"
,
11
:
"e7ba1de89846"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"ca7cab1d6dca"
,
16
:
"a6265ac4f731"
,
17
:
"5ce6ee003c1d"
,
18
:
"abf993cecc16"
,
19
:
"da1346fedd49"
,
20
:
"5ba1b1bc7480"
,
21
:
"43ee51cf782c"
,
22
:
"12c536f6abaf"
,
23
:
"31d6cfe0d16a"
,
24
:
"31d6cfe0d16a"
,
25
:
"31d6cfe0d16a"
,
26
:
"31d6cfe0d16a"
,
27
:
"31d6cfe0d16a"
,
28
:
"31d6cfe0d16a"
,
29
:
"31d6cfe0d16a"
,
30
:
"31d6cfe0d16a"
}[
i
]
+
".css"
,
a
=
b
.
p
+
t
,
r
=
document
.
getElementsByTagName
(
"link"
),
c
=
0
;
c
<
r
.
length
;
c
++
){
var
o
=
(
f
=
r
[
c
]).
getAttribute
(
"data-href"
)
||
f
.
getAttribute
(
"href"
);
if
(
"stylesheet"
===
f
.
rel
&&
(
o
===
t
||
o
===
a
))
return
e
()}
var
d
=
document
.
getElementsByTagName
(
"style"
);
for
(
c
=
0
;
c
<
d
.
length
;
c
++
){
var
f
;
if
((
o
=
(
f
=
d
[
c
]).
getAttribute
(
"data-href"
))
===
t
||
o
===
a
)
return
e
()}
var
u
=
document
.
createElement
(
"link"
);
u
.
rel
=
"stylesheet"
,
u
.
type
=
"text/css"
,
u
.
onload
=
e
,
u
.
onerror
=
function
(
e
){
var
t
=
e
&&
e
.
target
&&
e
.
target
.
src
||
a
,
r
=
new
Error
(
"Loading CSS chunk "
+
i
+
" failed.
\
n("
+
t
+
")"
);
r
.
request
=
t
,
delete
l
[
i
],
u
.
parentNode
.
removeChild
(
u
),
n
(
r
)},
u
.
href
=
a
,
document
.
getElementsByTagName
(
"head"
)[
0
].
appendChild
(
u
)}).
then
(
function
(){
l
[
i
]
=
0
}));
var
t
,
r
=
s
[
i
];
if
(
0
!==
r
)
if
(
r
)
e
.
push
(
r
[
2
]);
else
{
var
n
=
new
Promise
(
function
(
e
,
t
){
r
=
s
[
i
]
=
[
e
,
t
]});
e
.
push
(
r
[
2
]
=
n
);
var
a
,
c
=
document
.
getElementsByTagName
(
"head"
)[
0
],
o
=
document
.
createElement
(
"script"
);
o
.
charset
=
"utf-8"
,
o
.
timeout
=
120
,
b
.
nc
&&
o
.
setAttribute
(
"nonce"
,
b
.
nc
),
o
.
src
=
b
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"79342c91"
,
7
:
"ace7c55c"
,
8
:
"87290af0"
,
9
:
"dcfc2b8a"
,
10
:
"f2358237"
,
11
:
"433a0ecc"
,
12
:
"91c1f686"
,
13
:
"a61dca92"
,
14
:
"4d6ef107"
,
15
:
"f49555ac"
,
16
:
"b8ee8fbd"
,
17
:
"543d5fb7"
,
18
:
"7a2fba65"
,
19
:
"2f6edafd"
,
20
:
"102dfcc6"
,
21
:
"ca6c0db6"
,
22
:
"51a95842"
,
23
:
"299197ce"
,
24
:
"73b8e970"
,
25
:
"4196dbb5"
,
26
:
"2e14c205"
,
27
:
"f7c1dd11"
,
28
:
"01ab5f90"
,
29
:
"11f4d30d"
,
30
:
"400ed014"
}[
t
]
+
".js"
,
a
=
function
(
e
){
o
.
onerror
=
o
.
onload
=
null
,
clearTimeout
(
d
);
var
t
=
s
[
i
];
if
(
0
!==
t
){
if
(
t
){
var
r
=
e
&&
(
"load"
===
e
.
type
?
"missing"
:
e
.
type
),
n
=
e
&&
e
.
target
&&
e
.
target
.
src
,
a
=
new
Error
(
"Loading chunk "
+
i
+
" failed.
\
n("
+
r
+
": "
+
n
+
")"
);
a
.
type
=
r
,
a
.
request
=
n
,
t
[
1
](
a
)}
s
[
i
]
=
void
0
}};
var
d
=
setTimeout
(
function
(){
a
({
type
:
"timeout"
,
target
:
o
})},
12
e4
);
o
.
onerror
=
o
.
onload
=
a
,
c
.
appendChild
(
o
)}
return
Promise
.
all
(
e
)},
b
.
m
=
f
,
b
.
c
=
r
,
b
.
d
=
function
(
e
,
t
,
r
){
b
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
r
})},
b
.
r
=
function
(
e
){
"undefined"
!=
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"Module"
}),
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
})},
b
.
t
=
function
(
t
,
e
){
if
(
1
&
e
&&
(
t
=
b
(
t
)),
8
&
e
)
return
t
;
if
(
4
&
e
&&
"object"
==
typeof
t
&&
t
&&
t
.
__esModule
)
return
t
;
var
r
=
Object
.
create
(
null
);
if
(
b
.
r
(
r
),
Object
.
defineProperty
(
r
,
"default"
,{
enumerable
:
!
0
,
value
:
t
}),
2
&
e
&&
"string"
!=
typeof
t
)
for
(
var
n
in
t
)
b
.
d
(
r
,
n
,
function
(
e
){
return
t
[
e
]}.
bind
(
null
,
n
));
return
r
},
b
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
b
.
d
(
t
,
"a"
,
t
),
t
},
b
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
b
.
p
=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/"
,
b
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
};
var
t
=
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[],
n
=
t
.
push
.
bind
(
t
);
t
.
push
=
e
,
t
=
t
.
slice
();
for
(
var
a
=
0
;
a
<
t
.
length
;
a
++
)
e
(
t
[
a
]);
var
p
=
n
;
u
()}([]);
\ No newline at end of file
!
function
(
f
){
function
e
(
e
){
for
(
var
t
,
r
,
n
=
e
[
0
],
a
=
e
[
1
],
c
=
e
[
2
],
o
=
0
,
d
=
[];
o
<
n
.
length
;
o
++
)
r
=
n
[
o
],
s
[
r
]
&&
d
.
push
(
s
[
r
][
0
]),
s
[
r
]
=
0
;
for
(
t
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
t
)
&&
(
f
[
t
]
=
a
[
t
]);
for
(
p
&&
p
(
e
);
d
.
length
;)
d
.
shift
()();
return
i
.
push
.
apply
(
i
,
c
||
[]),
u
()}
function
u
(){
for
(
var
e
,
t
=
0
;
t
<
i
.
length
;
t
++
){
for
(
var
r
=
i
[
t
],
n
=!
0
,
a
=
1
;
a
<
r
.
length
;
a
++
){
var
c
=
r
[
a
];
0
!==
s
[
c
]
&&
(
n
=!
1
)}
n
&&
(
i
.
splice
(
t
--
,
1
),
e
=
b
(
b
.
s
=
r
[
0
]))}
return
e
}
var
r
=
{},
l
=
{
3
:
0
},
s
=
{
3
:
0
},
i
=
[];
function
b
(
e
){
if
(
r
[
e
])
return
r
[
e
].
exports
;
var
t
=
r
[
e
]
=
{
i
:
e
,
l
:
!
1
,
exports
:{}};
return
f
[
e
].
call
(
t
.
exports
,
t
,
t
.
exports
,
b
),
t
.
l
=!
0
,
t
.
exports
}
b
.
e
=
function
(
i
){
var
e
=
[];
l
[
i
]?
e
.
push
(
l
[
i
]):
0
!==
l
[
i
]
&&
{
0
:
1
,
5
:
1
,
6
:
1
,
7
:
1
,
8
:
1
,
9
:
1
,
10
:
1
,
11
:
1
,
12
:
1
,
13
:
1
,
14
:
1
,
15
:
1
,
16
:
1
,
17
:
1
,
18
:
1
,
19
:
1
,
20
:
1
,
21
:
1
,
22
:
1
}[
i
]
&&
e
.
push
(
l
[
i
]
=
new
Promise
(
function
(
e
,
n
){
for
(
var
t
=
"resources/"
+
({}[
i
]
||
i
)
+
"."
+
{
0
:
"7e9c19881242"
,
1
:
"31d6cfe0d16a"
,
5
:
"b6a10460f085"
,
6
:
"39a4b4394a2e"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"7275abdd54ff"
,
11
:
"e7ba1de89846"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"ca7cab1d6dca"
,
16
:
"a6265ac4f731"
,
17
:
"5ce6ee003c1d"
,
18
:
"abf993cecc16"
,
19
:
"da1346fedd49"
,
20
:
"5ba1b1bc7480"
,
21
:
"43ee51cf782c"
,
22
:
"12c536f6abaf"
,
23
:
"31d6cfe0d16a"
,
24
:
"31d6cfe0d16a"
,
25
:
"31d6cfe0d16a"
,
26
:
"31d6cfe0d16a"
,
27
:
"31d6cfe0d16a"
,
28
:
"31d6cfe0d16a"
,
29
:
"31d6cfe0d16a"
,
30
:
"31d6cfe0d16a"
}[
i
]
+
".css"
,
a
=
b
.
p
+
t
,
r
=
document
.
getElementsByTagName
(
"link"
),
c
=
0
;
c
<
r
.
length
;
c
++
){
var
o
=
(
f
=
r
[
c
]).
getAttribute
(
"data-href"
)
||
f
.
getAttribute
(
"href"
);
if
(
"stylesheet"
===
f
.
rel
&&
(
o
===
t
||
o
===
a
))
return
e
()}
var
d
=
document
.
getElementsByTagName
(
"style"
);
for
(
c
=
0
;
c
<
d
.
length
;
c
++
){
var
f
;
if
((
o
=
(
f
=
d
[
c
]).
getAttribute
(
"data-href"
))
===
t
||
o
===
a
)
return
e
()}
var
u
=
document
.
createElement
(
"link"
);
u
.
rel
=
"stylesheet"
,
u
.
type
=
"text/css"
,
u
.
onload
=
e
,
u
.
onerror
=
function
(
e
){
var
t
=
e
&&
e
.
target
&&
e
.
target
.
src
||
a
,
r
=
new
Error
(
"Loading CSS chunk "
+
i
+
" failed.
\
n("
+
t
+
")"
);
r
.
request
=
t
,
delete
l
[
i
],
u
.
parentNode
.
removeChild
(
u
),
n
(
r
)},
u
.
href
=
a
,
document
.
getElementsByTagName
(
"head"
)[
0
].
appendChild
(
u
)}).
then
(
function
(){
l
[
i
]
=
0
}));
var
t
,
r
=
s
[
i
];
if
(
0
!==
r
)
if
(
r
)
e
.
push
(
r
[
2
]);
else
{
var
n
=
new
Promise
(
function
(
e
,
t
){
r
=
s
[
i
]
=
[
e
,
t
]});
e
.
push
(
r
[
2
]
=
n
);
var
a
,
c
=
document
.
getElementsByTagName
(
"head"
)[
0
],
o
=
document
.
createElement
(
"script"
);
o
.
charset
=
"utf-8"
,
o
.
timeout
=
120
,
b
.
nc
&&
o
.
setAttribute
(
"nonce"
,
b
.
nc
),
o
.
src
=
b
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"79342c91"
,
7
:
"ace7c55c"
,
8
:
"87290af0"
,
9
:
"dcfc2b8a"
,
10
:
"a37bbb1e"
,
11
:
"433a0ecc"
,
12
:
"91c1f686"
,
13
:
"a61dca92"
,
14
:
"4d6ef107"
,
15
:
"f49555ac"
,
16
:
"b8ee8fbd"
,
17
:
"543d5fb7"
,
18
:
"7a2fba65"
,
19
:
"2f6edafd"
,
20
:
"102dfcc6"
,
21
:
"ca6c0db6"
,
22
:
"51a95842"
,
23
:
"299197ce"
,
24
:
"73b8e970"
,
25
:
"4196dbb5"
,
26
:
"2e14c205"
,
27
:
"f7c1dd11"
,
28
:
"01ab5f90"
,
29
:
"11f4d30d"
,
30
:
"400ed014"
}[
t
]
+
".js"
,
a
=
function
(
e
){
o
.
onerror
=
o
.
onload
=
null
,
clearTimeout
(
d
);
var
t
=
s
[
i
];
if
(
0
!==
t
){
if
(
t
){
var
r
=
e
&&
(
"load"
===
e
.
type
?
"missing"
:
e
.
type
),
n
=
e
&&
e
.
target
&&
e
.
target
.
src
,
a
=
new
Error
(
"Loading chunk "
+
i
+
" failed.
\
n("
+
r
+
": "
+
n
+
")"
);
a
.
type
=
r
,
a
.
request
=
n
,
t
[
1
](
a
)}
s
[
i
]
=
void
0
}};
var
d
=
setTimeout
(
function
(){
a
({
type
:
"timeout"
,
target
:
o
})},
12
e4
);
o
.
onerror
=
o
.
onload
=
a
,
c
.
appendChild
(
o
)}
return
Promise
.
all
(
e
)},
b
.
m
=
f
,
b
.
c
=
r
,
b
.
d
=
function
(
e
,
t
,
r
){
b
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
r
})},
b
.
r
=
function
(
e
){
"undefined"
!=
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"Module"
}),
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
})},
b
.
t
=
function
(
t
,
e
){
if
(
1
&
e
&&
(
t
=
b
(
t
)),
8
&
e
)
return
t
;
if
(
4
&
e
&&
"object"
==
typeof
t
&&
t
&&
t
.
__esModule
)
return
t
;
var
r
=
Object
.
create
(
null
);
if
(
b
.
r
(
r
),
Object
.
defineProperty
(
r
,
"default"
,{
enumerable
:
!
0
,
value
:
t
}),
2
&
e
&&
"string"
!=
typeof
t
)
for
(
var
n
in
t
)
b
.
d
(
r
,
n
,
function
(
e
){
return
t
[
e
]}.
bind
(
null
,
n
));
return
r
},
b
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
b
.
d
(
t
,
"a"
,
t
),
t
},
b
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
b
.
p
=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/"
,
b
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
};
var
t
=
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[],
n
=
t
.
push
.
bind
(
t
);
t
.
push
=
e
,
t
=
t
.
slice
();
for
(
var
a
=
0
;
a
<
t
.
length
;
a
++
)
e
(
t
[
a
]);
var
p
=
n
;
u
()}([]);
\ No newline at end of file
client/components/player/chapterVideo/chapterVideo.vue
浏览文件 @
5b0989b9
...
...
@@ -12,6 +12,7 @@
:videoId=
"chapterVideo.video_origionalID"
:videoSrt=
"(chapterVideo.video_subtitle || '')"
@
handlePlayTime=
"onVideoTimeChange"
@
handlePlayfinish=
"onVideoPlayFinish"
:chapterVideo=
"chapterVideo"
/>
</div>
...
...
@@ -64,6 +65,9 @@ const PLAY_SPACE_HEIGHT = 10
const
VIDEO_DEFAULT_WIDTH
=
550
const
VIDEO_DEFAULT_HEIGHT
=
360
/* 视频 定时 心跳记录器 默认时间 ms */
const
HEART_TIME
=
10000
export
default
{
components
:
{
eVideo
,
ePpt
},
props
:
{
...
...
@@ -89,6 +93,7 @@ export default {
lastTime
:
null
,
speed
:
1
,
// 默认播放速度
isSeek
:
false
,
// 是否拖动进度条
isFinish
:
false
,
// 是否播放完成
queueFrames
:
[],
// 存放所有视频帧的栈,上传成功清空一次。
videoWidth
:
VIDEO_DEFAULT_WIDTH
,
videoHeight
:
VIDEO_DEFAULT_HEIGHT
,
...
...
@@ -118,13 +123,13 @@ export default {
/* 窗口resize,重置大小 */
window
.
addEventListener
(
'resize'
,
this
.
resizeVideo
)
/* 增加 心跳 记录 视频学习时间 */
this
.
createHeartTime
()
this
.
createHeartTime
(
HEART_TIME
)
},
destroyed
()
{
window
.
removeEventListener
(
'resize'
,
this
.
resizeVideo
)
this
.
destroyHeartTime
()
/* 在定时器 被销毁时,再次执行 定时器,
防止 最后几秒没有 被统计上
*/
this
.
hearBeatFunc
(
10000
)
/* 在定时器 被销毁时,再次执行 定时器,
解决:播放过程中,突然退出当前页(非关闭)
*/
this
.
hearBeatFunc
(
HEART_TIME
)
},
watch
:
{
id
:
{
...
...
@@ -187,6 +192,16 @@ export default {
this
.
$emit
(
'handlePlayTime'
,
time
)
// 调用 父级方法,改变 sidebar ppt 对应 位置
},
// 视频播放结束,解决播放结束,但是没有等够 HEART_TIME 时间 就直接 关闭浏览器问题
onVideoPlayFinish
(
data
)
{
/* 视频播放完毕触发,然后判断 pt 累加时间 基本等于 视频观看时间时,才认为真正播放完成 */
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
if
(
this
.
_rProgress
.
pt
+
((
HEART_TIME
/
1000
)
*
this
.
videoFlash
.
speed
)
>=
data
.
time
)
{
this
.
isPlaying
=
true
// 这里 再设置一次 true ,只有为 true时 才能上传 进度
this
.
hearBeatFunc
(
HEART_TIME
)
}
}
},
/**
* 根据时间设置ppt位置 - PPT 样式 控制
*/
...
...
client/components/player/chapterVideo/video.vue
浏览文件 @
5b0989b9
...
...
@@ -68,6 +68,10 @@ export default {
window
.
_playerSeek
=
function
()
{
$
(
'#'
+
PLAYER_WRAP_ID
).
trigger
(
'player.seek'
,
{
time
:
that
.
getPlayer
().
callAction
(
'getCurrentTime'
),
quality
:
that
.
getPlayer
().
callAction
(
'getQuality'
),
isSeek
:
true
})
}
// 视频播放结束
window
.
_playerFinish
=
function
()
{
that
.
$emit
(
'handlePlayfinish'
,
{
time
:
that
.
getPlayer
().
callAction
(
'getDuration'
)
})
}
// 播放控件 - 初始化完成时,注册播放事件
window
.
_playerCallback
=
function
()
{
let
player
=
that
.
getPlayer
()
...
...
@@ -78,7 +82,7 @@ export default {
// player.register('onPause', '') // 暂停
// player.register('onResume', '') // 恢复播放
player
.
callAction
(
'register'
,
'onSeekComplete'
,
'_playerSeek'
)
// 拖动进度条
// player.register('onEnded', '
') // 结束
player
.
callAction
(
'register'
,
'onEnded'
,
'_playerFinish
'
)
// 结束
}
}
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论