Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
6a0e06a1
提交
6a0e06a1
authored
4月 28, 2019
作者:
GOD_ZYX
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
版本 PC - 1.0.2
上级
f5786ea5
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
51 行增加
和
38 行删除
+51
-38
.gitignore
.gitignore
+1
-0
History.md
History.md
+4
-0
build.zip
build.zip
+0
-0
index.html
client-dist/index.html
+2
-2
10.921c3354.js
client-dist/resources/10.921c3354.js
+0
-2
10.fe9ed803.js
client-dist/resources/10.fe9ed803.js
+2
-0
app.515134a0.js
client-dist/resources/app.515134a0.js
+0
-0
manifest.a8c4ea56.js
client-dist/resources/manifest.a8c4ea56.js
+2
-2
chapterVideo.vue
client/components/player/chapterVideo/chapterVideo.vue
+39
-31
index.vue
client/components/websocket/index.vue
+1
-1
没有找到文件。
.gitignore
浏览文件 @
6a0e06a1
...
@@ -8,3 +8,4 @@ build/
...
@@ -8,3 +8,4 @@ build/
# server/
# server/
pm2_logs
pm2_logs
upload_tmp
upload_tmp
.vscode
History.md
0 → 100644
浏览文件 @
6a0e06a1
PC-1.0.2 / 2019-04-28
==================
*
修改 视频播放记录 统计方式,改为 按照 定时器跑动时,累加数据,每次加5s,没有乘以倍速系数
build.zip
浏览文件 @
6a0e06a1
No preview for this file type
client-dist/index.html
浏览文件 @
6a0e06a1
...
@@ -2,4 +2,4 @@
...
@@ -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/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/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.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.be6e2083.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.435ab98c.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.68a82e13.js"
></script></body></html>
<![endif]-->
<script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.a8c4ea56.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.435ab98c.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.515134a0.js"
></script></body></html>
\ No newline at end of file
\ No newline at end of file
client-dist/resources/10.921c3354.js
deleted
100644 → 0
浏览文件 @
f5786ea5
(
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
=
r
(
i
(
401
)),
n
=
r
(
i
(
403
)),
a
=
r
(
i
(
74
));
function
r
(
e
){
return
e
&&
e
.
__esModule
?
e
:{
default
:
e
}}
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
{
initOverVideoCloseHearBeatTime
:
parseInt
(
1
e3
*
Math
.
random
()),
overVideoCloseHearBeatTime
:
0
,
state
:{
pptIndex
:
0
,
pptBoxOnly
:
!
1
,
pptBoxShow
:
!
1
,
skipBegin
:
/skip=1/
.
test
(
document
.
cookie
),
calculatedSize
:
!
1
},
videoFlash
:{
lastTime
:
null
,
videoWidth
:
550
,
videoHeight
:
360
,
username
:
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
username
||
""
},
resizeVideo
:
null
,
hearBeat
:
null
,
_rProgress
:{}}},
mounted
:
function
(){
var
i
=
this
,
e
=
this
.
getCalculateSize
();
e
.
video
.
w
&&
(
this
.
videoFlash
.
videoWidth
=
e
.
video
.
w
,
this
.
videoFlash
.
videoHeight
=
e
.
video
.
h
),
this
.
resizeVideo
||
(
this
.
resizeVideo
=
a
.
default
.
debounce
(
this
.
jdugeSize
.
bind
(
this
),
200
)),
setTimeout
(
this
.
jdugeSize
,
300
),
window
.
addEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
hearBeat
=
setInterval
(
function
(){
if
(
i
.
chapterVideo
){
if
(
i
.
_rProgress
&&
i
.
_rProgress
.
id
){
var
e
=
i
.
_rProgress
,
t
=
i
.
videoFlash
.
lastTime
;
e
.
pt
=
e
.
pt
+
(
0
<
t
-
e
.
cpt
&&
t
-
e
.
cpt
<
8
?
t
-
e
.
cpt
:
0
),
e
.
cpt
=
t
,
e
.
mpt
=
t
>
e
.
mpt
?
t
:
e
.
mpt
,
i
.
$emit
(
"updateProgress"
,
i
.
_rProgress
)}
else
i
.
_rProgress
=
a
.
default
.
assignIn
({},
i
.
chapterVideo
.
progress
);
if
(
i
.
videoFlash
.
lastTime
===
i
.
_rProgress
.
cpt
&&
i
.
videoFlash
.
lastTime
===
i
.
_rProgress
.
mpt
){
if
(
0
<
i
.
overVideoCloseHearBeatTime
){
i
.
_rProgress
.
pt
+=
5
,
i
.
overVideoCloseHearBeatTime
-=
5
}}
else
i
.
overVideoCloseHearBeatTime
=
i
.
initOverVideoCloseHearBeatTime
}},
5
e3
)},
destroyed
:
function
(){
window
.
removeEventListener
(
"resize"
,
this
.
resizeVideo
),
clearInterval
(
this
.
hearBeat
)},
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
.
lastTime
!==
t
&&
(
this
.
videoFlash
.
lastTime
=
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
,
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
}}}},
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
})},
window
.
_playerSeek
=
function
(){
s
(
"#"
+
n
).
trigger
(
"player.seek"
,{
time
:
t
.
getPlayer
().
callAction
(
"getCurrentTime"
)})},
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
,
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
,
"7ec35a74"
,
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
.
cpt
||
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
)])])},
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.fe9ed803.js
0 → 100644
浏览文件 @
6a0e06a1
(
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
=
r
(
i
(
401
)),
n
=
r
(
i
(
403
)),
a
=
r
(
i
(
74
));
function
r
(
e
){
return
e
&&
e
.
__esModule
?
e
:{
default
:
e
}}
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
,
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
=
a
.
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
()},
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
.
lastTime
!==
t
&&
(
this
.
videoFlash
.
lastTime
=
t
,
this
.
isPlaying
=!
0
,
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
,
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
,
c
=
p
*
n
;
a
.
video
.
w
=
o
,
a
.
video
.
h
=
l
,
a
.
ppt
.
w
=
c
,
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
},
createHeartTime
:
function
(
e
){
var
i
=
this
,
s
=
e
||
5
e3
;
this
.
destroyHeartTime
(),
this
.
hearBeat
=
setInterval
(
function
(){
if
(
i
.
chapterVideo
&&
i
.
isPlaying
){
if
(
i
.
_rProgress
&&
i
.
_rProgress
.
id
){
var
e
=
i
.
_rProgress
,
t
=
i
.
videoFlash
.
lastTime
;
e
.
pt
+=
0
<
t
-
e
.
cpt
&&
t
-
e
.
cpt
<
8
?
s
/
1
e3
:
0
,
e
.
cpt
=
t
,
e
.
mpt
=
t
>
e
.
mpt
?
t
:
e
.
mpt
,
i
.
$emit
(
"updateProgress"
,
i
.
_rProgress
)}
else
i
.
_rProgress
=
a
.
default
.
assignIn
({},
i
.
chapterVideo
.
progress
);
i
.
isPlaying
=!
1
}},
s
)},
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
})},
window
.
_playerSeek
=
function
(){
s
(
"#"
+
n
).
trigger
(
"player.seek"
,{
time
:
t
.
getPlayer
().
callAction
(
"getCurrentTime"
)})},
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
,
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
,
"7ec35a74"
,
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
}})],
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/app.
68a82e13
.js
→
client-dist/resources/app.
515134a0
.js
浏览文件 @
6a0e06a1
This source diff could not be displayed because it is too large. You can
view the blob
instead.
client-dist/resources/manifest.
be6e2083
.js
→
client-dist/resources/manifest.
a8c4ea56
.js
浏览文件 @
6a0e06a1
!
function
(
f
){
function
e
(
e
){
for
(
var
t
,
r
,
n
=
e
[
0
],
a
=
e
[
1
],
o
=
e
[
2
],
c
=
0
,
d
=
[];
c
<
n
.
length
;
c
++
)
r
=
n
[
c
],
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
(
b
&&
b
(
e
);
d
.
length
;)
d
.
shift
()();
return
i
.
push
.
apply
(
i
,
o
||
[]),
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
o
=
r
[
a
];
0
!==
s
[
o
]
&&
(
n
=!
1
)}
n
&&
(
i
.
splice
(
t
--
,
1
),
e
=
p
(
p
.
s
=
r
[
0
]))}
return
e
}
var
r
=
{},
l
=
{
3
:
0
},
s
=
{
3
:
0
},
i
=
[];
function
p
(
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
,
p
),
t
.
l
=!
0
,
t
.
exports
}
p
.
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
:
"1b8137937536"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"eb5caf8d2af7"
,
11
:
"e7ba1de89846"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"ca7cab1d6dca"
,
16
:
"a6265ac4f731"
,
17
:
"d80cfa33564a"
,
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
=
p
.
p
+
t
,
r
=
document
.
getElementsByTagName
(
"link"
),
o
=
0
;
o
<
r
.
length
;
o
++
){
var
c
=
(
f
=
r
[
o
]).
getAttribute
(
"data-href"
)
||
f
.
getAttribute
(
"href"
);
if
(
"stylesheet"
===
f
.
rel
&&
(
c
===
t
||
c
===
a
))
return
e
()}
var
d
=
document
.
getElementsByTagName
(
"style"
);
for
(
o
=
0
;
o
<
d
.
length
;
o
++
){
var
f
;
if
((
c
=
(
f
=
d
[
o
]).
getAttribute
(
"data-href"
))
===
t
||
c
===
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
,
o
=
document
.
getElementsByTagName
(
"head"
)[
0
],
c
=
document
.
createElement
(
"script"
);
c
.
charset
=
"utf-8"
,
c
.
timeout
=
120
,
p
.
nc
&&
c
.
setAttribute
(
"nonce"
,
p
.
nc
),
c
.
src
=
p
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"5788073d"
,
7
:
"34107010"
,
8
:
"3725acf5"
,
9
:
"bbdfab9a"
,
10
:
"921c3354"
,
11
:
"98d99539"
,
12
:
"bc06c483"
,
13
:
"c50bed76"
,
14
:
"21f6e4db"
,
15
:
"57645cc7"
,
16
:
"eb41993a"
,
17
:
"a6126945"
,
18
:
"15cc538d"
,
19
:
"d19d94e7"
,
20
:
"ed197405"
,
21
:
"ff867a66"
,
22
:
"51a95842"
,
23
:
"aa46f405"
,
24
:
"f05a2d7d"
,
25
:
"cd45549d"
,
26
:
"2e14c205"
,
27
:
"a1f5a7ff"
,
28
:
"01ab5f90"
,
29
:
"cd5a6716"
,
30
:
"d3ea8c6f"
}[
t
]
+
".js"
,
a
=
function
(
e
){
c
.
onerror
=
c
.
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
:
c
})},
12
e4
);
c
.
onerror
=
c
.
onload
=
a
,
o
.
appendChild
(
c
)}
return
Promise
.
all
(
e
)},
p
.
m
=
f
,
p
.
c
=
r
,
p
.
d
=
function
(
e
,
t
,
r
){
p
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
r
})},
p
.
r
=
function
(
e
){
"undefined"
!=
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"Module"
}),
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
})},
p
.
t
=
function
(
t
,
e
){
if
(
1
&
e
&&
(
t
=
p
(
t
)),
8
&
e
)
return
t
;
if
(
4
&
e
&&
"object"
==
typeof
t
&&
t
&&
t
.
__esModule
)
return
t
;
var
r
=
Object
.
create
(
null
);
if
(
p
.
r
(
r
),
Object
.
defineProperty
(
r
,
"default"
,{
enumerable
:
!
0
,
value
:
t
}),
2
&
e
&&
"string"
!=
typeof
t
)
for
(
var
n
in
t
)
p
.
d
(
r
,
n
,
function
(
e
){
return
t
[
e
]}.
bind
(
null
,
n
));
return
r
},
p
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
p
.
d
(
t
,
"a"
,
t
),
t
},
p
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
p
.
p
=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/"
,
p
.
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
b
=
n
;
u
()}([]);
!
function
(
f
){
function
e
(
e
){
for
(
var
t
,
r
,
n
=
e
[
0
],
a
=
e
[
1
],
o
=
e
[
2
],
c
=
0
,
d
=
[];
c
<
n
.
length
;
c
++
)
r
=
n
[
c
],
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
(
b
&&
b
(
e
);
d
.
length
;)
d
.
shift
()();
return
i
.
push
.
apply
(
i
,
o
||
[]),
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
o
=
r
[
a
];
0
!==
s
[
o
]
&&
(
n
=!
1
)}
n
&&
(
i
.
splice
(
t
--
,
1
),
e
=
p
(
p
.
s
=
r
[
0
]))}
return
e
}
var
r
=
{},
l
=
{
3
:
0
},
s
=
{
3
:
0
},
i
=
[];
function
p
(
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
,
p
),
t
.
l
=!
0
,
t
.
exports
}
p
.
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
:
"1b8137937536"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"eb5caf8d2af7"
,
11
:
"e7ba1de89846"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"ca7cab1d6dca"
,
16
:
"a6265ac4f731"
,
17
:
"d80cfa33564a"
,
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
=
p
.
p
+
t
,
r
=
document
.
getElementsByTagName
(
"link"
),
o
=
0
;
o
<
r
.
length
;
o
++
){
var
c
=
(
f
=
r
[
o
]).
getAttribute
(
"data-href"
)
||
f
.
getAttribute
(
"href"
);
if
(
"stylesheet"
===
f
.
rel
&&
(
c
===
t
||
c
===
a
))
return
e
()}
var
d
=
document
.
getElementsByTagName
(
"style"
);
for
(
o
=
0
;
o
<
d
.
length
;
o
++
){
var
f
;
if
((
c
=
(
f
=
d
[
o
]).
getAttribute
(
"data-href"
))
===
t
||
c
===
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
,
o
=
document
.
getElementsByTagName
(
"head"
)[
0
],
c
=
document
.
createElement
(
"script"
);
c
.
charset
=
"utf-8"
,
c
.
timeout
=
120
,
p
.
nc
&&
c
.
setAttribute
(
"nonce"
,
p
.
nc
),
c
.
src
=
p
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"5788073d"
,
7
:
"34107010"
,
8
:
"3725acf5"
,
9
:
"bbdfab9a"
,
10
:
"fe9ed803"
,
11
:
"98d99539"
,
12
:
"bc06c483"
,
13
:
"c50bed76"
,
14
:
"21f6e4db"
,
15
:
"57645cc7"
,
16
:
"eb41993a"
,
17
:
"a6126945"
,
18
:
"15cc538d"
,
19
:
"d19d94e7"
,
20
:
"ed197405"
,
21
:
"ff867a66"
,
22
:
"51a95842"
,
23
:
"aa46f405"
,
24
:
"f05a2d7d"
,
25
:
"cd45549d"
,
26
:
"2e14c205"
,
27
:
"a1f5a7ff"
,
28
:
"01ab5f90"
,
29
:
"cd5a6716"
,
30
:
"d3ea8c6f"
}[
t
]
+
".js"
,
a
=
function
(
e
){
c
.
onerror
=
c
.
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
:
c
})},
12
e4
);
c
.
onerror
=
c
.
onload
=
a
,
o
.
appendChild
(
c
)}
return
Promise
.
all
(
e
)},
p
.
m
=
f
,
p
.
c
=
r
,
p
.
d
=
function
(
e
,
t
,
r
){
p
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
r
})},
p
.
r
=
function
(
e
){
"undefined"
!=
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"Module"
}),
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
})},
p
.
t
=
function
(
t
,
e
){
if
(
1
&
e
&&
(
t
=
p
(
t
)),
8
&
e
)
return
t
;
if
(
4
&
e
&&
"object"
==
typeof
t
&&
t
&&
t
.
__esModule
)
return
t
;
var
r
=
Object
.
create
(
null
);
if
(
p
.
r
(
r
),
Object
.
defineProperty
(
r
,
"default"
,{
enumerable
:
!
0
,
value
:
t
}),
2
&
e
&&
"string"
!=
typeof
t
)
for
(
var
n
in
t
)
p
.
d
(
r
,
n
,
function
(
e
){
return
t
[
e
]}.
bind
(
null
,
n
));
return
r
},
p
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
p
.
d
(
t
,
"a"
,
t
),
t
},
p
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
p
.
p
=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/"
,
p
.
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
b
=
n
;
u
()}([]);
\ No newline at end of file
\ No newline at end of file
client/components/player/chapterVideo/chapterVideo.vue
浏览文件 @
6a0e06a1
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<div
:class=
"['play-video', (state.pptBoxOnly ? 'play-video-hide' : ''), (state.calculatedSize ? '' : 'play-video-init-center')]"
>
<div
:class=
"['play-video', (state.pptBoxOnly ? 'play-video-hide' : ''), (state.calculatedSize ? '' : 'play-video-init-center')]"
>
<e-video
<e-video
ref=
"video"
ref=
"video"
:lastTime=
"parseFloat((chapterVideo.progress && chapterVideo.progress.
c
pt) || 0)"
:lastTime=
"parseFloat((chapterVideo.progress && chapterVideo.progress.pt) || 0)"
:width=
"videoFlash.videoWidth"
:width=
"videoFlash.videoWidth"
:height=
"videoFlash.videoHeight"
:height=
"videoFlash.videoHeight"
:username=
"videoFlash.username"
:username=
"videoFlash.username"
...
@@ -77,8 +77,6 @@ export default {
...
@@ -77,8 +77,6 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
initOverVideoCloseHearBeatTime
:
parseInt
(
Math
.
random
()
*
1000
),
overVideoCloseHearBeatTime
:
0
,
// 当视频全部完成时,随机分钟课程完成挂视频时间,关闭计时器,继承上面的时间
state
:
{
state
:
{
pptIndex
:
0
,
// ppt 所在当前位置
pptIndex
:
0
,
// ppt 所在当前位置
pptBoxOnly
:
false
,
// 仅展示ppt框
pptBoxOnly
:
false
,
// 仅展示ppt框
...
@@ -97,7 +95,9 @@ export default {
...
@@ -97,7 +95,9 @@ export default {
resizeVideo
:
null
,
resizeVideo
:
null
,
/* 视频进度 统计 和 计算 */
/* 视频进度 统计 和 计算 */
hearBeat
:
null
,
hearBeat
:
null
,
_rProgress
:
{}
_rProgress
:
{},
/* 检测视频 是否一直在播放,如果停止播放,则停止接口调用 */
isPlaying
:
false
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -115,36 +115,11 @@ export default {
...
@@ -115,36 +115,11 @@ export default {
/* 窗口resize,重置大小 */
/* 窗口resize,重置大小 */
window
.
addEventListener
(
'resize'
,
this
.
resizeVideo
)
window
.
addEventListener
(
'resize'
,
this
.
resizeVideo
)
/* 增加 心跳 记录 视频学习时间 */
/* 增加 心跳 记录 视频学习时间 */
this
.
hearBeat
=
setInterval
(()
=>
{
this
.
createHeartTime
()
if
(
this
.
chapterVideo
)
{
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
let
_rProgress
=
this
.
_rProgress
let
tempTime
=
this
.
videoFlash
.
lastTime
_rProgress
.
pt
=
_rProgress
.
pt
+
((
tempTime
-
_rProgress
.
cpt
>
0
)
&&
(
tempTime
-
_rProgress
.
cpt
<
8
)
?
(
tempTime
-
_rProgress
.
cpt
)
:
0
)
_rProgress
.
cpt
=
tempTime
_rProgress
.
mpt
=
tempTime
>
_rProgress
.
mpt
?
tempTime
:
_rProgress
.
mpt
this
.
$emit
(
'updateProgress'
,
this
.
_rProgress
)
}
else
{
this
.
_rProgress
=
_
.
assignIn
({},
this
.
chapterVideo
.
progress
)
}
/* 已经播放到最后,定时记录开始,规定时间后关闭计时器 */
if
(
this
.
videoFlash
.
lastTime
===
this
.
_rProgress
.
cpt
&&
this
.
videoFlash
.
lastTime
===
this
.
_rProgress
.
mpt
)
{
/* 根据设定时间关闭计时器 */
if
(
this
.
overVideoCloseHearBeatTime
>
0
)
{
// console.log(this.overVideoCloseHearBeatTime)
let
_t
=
5
// 每次增加 进度时间,跟计时器时间等同
this
.
_rProgress
.
pt
+=
_t
this
.
overVideoCloseHearBeatTime
-=
_t
}
}
else
{
this
.
overVideoCloseHearBeatTime
=
this
.
initOverVideoCloseHearBeatTime
}
}
},
5000
)
},
},
destroyed
()
{
destroyed
()
{
window
.
removeEventListener
(
'resize'
,
this
.
resizeVideo
)
window
.
removeEventListener
(
'resize'
,
this
.
resizeVideo
)
clearInterval
(
this
.
hearBeat
)
this
.
destroyHeartTime
(
)
},
},
watch
:
{
watch
:
{
id
:
{
id
:
{
...
@@ -191,6 +166,8 @@ export default {
...
@@ -191,6 +166,8 @@ export default {
if
(
this
.
videoFlash
.
lastTime
===
time
)
{
return
}
if
(
this
.
videoFlash
.
lastTime
===
time
)
{
return
}
this
.
videoFlash
.
lastTime
=
time
this
.
videoFlash
.
lastTime
=
time
this
.
isPlaying
=
true
// 判断ppt位置
// 判断ppt位置
this
.
setPptIndexByTime
(
time
)
this
.
setPptIndexByTime
(
time
)
...
@@ -283,6 +260,37 @@ export default {
...
@@ -283,6 +260,37 @@ export default {
r
.
video
.
h
=
h
<
w
/
videoRatio
?
h
:
w
/
videoRatio
r
.
video
.
h
=
h
<
w
/
videoRatio
?
h
:
w
/
videoRatio
}
}
return
r
return
r
},
/* 初始化定时器 */
createHeartTime
(
time
)
{
let
_time
=
time
||
5000
this
.
destroyHeartTime
()
/* 增加 心跳 记录 视频学习时间 */
this
.
hearBeat
=
setInterval
(()
=>
{
if
(
this
.
chapterVideo
&&
this
.
isPlaying
)
{
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
let
_rProgress
=
this
.
_rProgress
let
tempTime
=
this
.
videoFlash
.
lastTime
/* 直接给出 增加定时器 循环定时 的每次 执行传输时间 */
_rProgress
.
pt
+=
((
tempTime
-
_rProgress
.
cpt
>
0
)
&&
(
tempTime
-
_rProgress
.
cpt
<
8
)
?
(
_time
/
1000
)
:
0
)
/* cpt 和 mpt 应该没问题 */
_rProgress
.
cpt
=
tempTime
_rProgress
.
mpt
=
tempTime
>
_rProgress
.
mpt
?
tempTime
:
_rProgress
.
mpt
/* 调用接口执行刷新 */
this
.
$emit
(
'updateProgress'
,
this
.
_rProgress
)
}
else
{
this
.
_rProgress
=
_
.
assignIn
({},
this
.
chapterVideo
.
progress
)
}
/* 实时监测 - 是否在播放中 */
this
.
isPlaying
=
false
}
},
_time
)
},
/* 消除定时器 */
destroyHeartTime
()
{
this
.
hearBeat
&&
clearInterval
(
this
.
hearBeat
)
}
}
}
}
}
}
...
...
client/components/websocket/index.vue
浏览文件 @
6a0e06a1
...
@@ -57,7 +57,7 @@ export default {
...
@@ -57,7 +57,7 @@ export default {
},
},
sendData
(
action
,
val
)
{
sendData
(
action
,
val
)
{
let
str
=
''
let
str
=
''
let
version
=
'PC-1.0.
1
'
// 客户端版本号,每次更新后,更新版本号。可以方便查看是否客户端都是最新版本
let
version
=
'PC-1.0.
2
'
// 客户端版本号,每次更新后,更新版本号。可以方便查看是否客户端都是最新版本
if
(
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
student_info
)
{
if
(
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
student_info
)
{
let
tmp_info
=
window
.
G
.
UserInfo
.
student_info
// eslint-disable-line
let
tmp_info
=
window
.
G
.
UserInfo
.
student_info
// eslint-disable-line
str
=
tmp_info
.
personal_name
+
':'
+
tmp_info
.
telephone
+
':'
+
tmp_info
.
email
+
':'
+
tmp_info
.
id
+
':'
+
window
.
G
.
UserInfo
.
auth_key
+
':'
+
(
window
.
G
.
pwd
||
''
)
str
=
tmp_info
.
personal_name
+
':'
+
tmp_info
.
telephone
+
':'
+
tmp_info
.
email
+
':'
+
tmp_info
.
id
+
':'
+
window
.
G
.
UserInfo
.
auth_key
+
':'
+
(
window
.
G
.
pwd
||
''
)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论