Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
3d53d567
提交
3d53d567
authored
5月 06, 2019
作者:
GOD_ZYX
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
e6d7de8a
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
79 行增加
和
45 行删除
+79
-45
History.md
History.md
+8
-0
build.zip
build.zip
+0
-0
index.html
client-dist/index.html
+2
-2
10.6d628040.js
client-dist/resources/10.6d628040.js
+2
-0
10.76af75db.js
client-dist/resources/10.76af75db.js
+0
-2
15.74dc8cd35292.css
client-dist/resources/15.74dc8cd35292.css
+2
-2
15.e61a13f7.js
client-dist/resources/15.e61a13f7.js
+2
-2
16.505c6d2d.js
client-dist/resources/16.505c6d2d.js
+2
-2
16.fca5eccb0e56.css
client-dist/resources/16.fca5eccb0e56.css
+2
-2
6.0069f7ea7855.css
client-dist/resources/6.0069f7ea7855.css
+2
-2
6.405863fa.js
client-dist/resources/6.405863fa.js
+2
-2
app.67c4139b.js
client-dist/resources/app.67c4139b.js
+0
-0
manifest.bd75d82f.js
client-dist/resources/manifest.bd75d82f.js
+2
-2
chapterVideo.vue
client/components/player/chapterVideo/chapterVideo.vue
+40
-23
index.vue
client/components/player/index.vue
+8
-0
ChapterAction.js
client/project/actions/ChapterAction.js
+2
-1
main.js
client/project/main.js
+1
-1
course.vue
client/project/pages/myLearn/course.vue
+1
-1
courseAll.vue
client/project/pages/myLearn/courseAll.vue
+1
-1
没有找到文件。
History.md
浏览文件 @
3d53d567
PC-1.0.7 / 2019-05-06
==================
*
修改 视频进度,在播放完成时(pt+10
*
speed > duration),上送进度。
*
修改 选课广场、课程列表 视频观看进度 > 99.5 统一变成 100。
*
修改 增加 map字段,记录视频播放 的所有帧,Node服务端 暂时不存这个字段
*
map字段功能 暂时不发布,upload-video接口 需要改造成 post 接口
PC-1.0.6 / 2019-05-05
PC-1.0.6 / 2019-05-05
==================
==================
...
...
build.zip
浏览文件 @
3d53d567
No preview for this file type
client-dist/index.html
浏览文件 @
3d53d567
...
@@ -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.beb12663.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>
<![endif]-->
<script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.bd75d82f.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.67c4139b.js"
></script></body></html>
\ No newline at end of file
\ No newline at end of file
client-dist/resources/10.6d628040.js
0 → 100644
浏览文件 @
3d53d567
(
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
)),
p
=
n
(
i
(
74
));
function
n
(
e
){
return
e
&&
e
.
__esModule
?
e
:{
default
:
e
}}
var
r
=
1
e4
;
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
,
isFinish
:
!
1
,
queueFrames
:[],
mapFrames
:[],
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
=
p
.
default
.
debounce
(
this
.
jdugeSize
.
bind
(
this
),
200
)),
setTimeout
(
this
.
jdugeSize
,
300
),
window
.
addEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
createHeartTime
(
r
)},
destroyed
:
function
(){
window
.
removeEventListener
(
"resize"
,
this
.
resizeVideo
),
this
.
destroyHeartTime
(),
this
.
hearBeatFunc
(
r
)},
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
){
if
(
this
.
chapterVideo
){
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
);
else
{
this
.
_rProgress
=
p
.
default
.
assignIn
({},
this
.
chapterVideo
.
progress
);
for
(
var
t
=
[],
i
=
this
.
chapterVideo
.
video_length
||
1
,
s
=
0
;
s
<
i
;
s
++
)
t
.
push
(
0
);
this
.
videoFlash
.
mapFrames
=
this
.
_rProgress
.
map
.
length
?
this
.
_rProgress
.
map
:
t
,
this
.
_rProgress
.
map
=
this
.
videoFlash
.
mapFrames
}
this
.
_rProgress
.
pt
+
10
*
this
.
videoFlash
.
speed
>=
e
.
time
&&
(
this
.
isPlaying
=!
0
,
this
.
hearBeatFunc
(
r
))}},
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
);
else
{
this
.
_rProgress
=
p
.
default
.
assignIn
({},
this
.
chapterVideo
.
progress
);
for
(
var
t
=
[],
i
=
this
.
chapterVideo
.
video_length
||
1
,
s
=
0
;
s
<
i
;
s
++
)
t
.
push
(
0
);
this
.
videoFlash
.
mapFrames
=
this
.
_rProgress
.
map
.
length
?
this
.
_rProgress
.
map
:
t
,
this
.
_rProgress
.
map
=
this
.
videoFlash
.
mapFrames
}
var
a
=
this
.
_rProgress
,
n
=
this
.
videoFlash
.
lastTime
,
r
=
this
.
videoFlash
.
speed
,
o
=
this
.
videoFlash
.
isSeek
,
l
=
this
.
videoFlash
.
queueFrames
;
0
===
a
.
cpt
&&
0
===
a
.
mpt
&&
0
===
a
.
pt
&&
/skip=1/
.
test
(
document
.
cookie
)
&&
(
a
.
pt
=
7
),
o
||
(
a
.
pt
+=
e
/
1
e3
*
r
,
a
.
cpt
=
n
,
a
.
mpt
=
n
>
a
.
mpt
?
n
:
a
.
mpt
,
a
.
ps
=
l
,
this
.
$emit
(
"updateProgress"
,
this
.
_rProgress
)),
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
.
_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
,
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
,
"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
),
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
,
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
)])])},
a
=
[];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
a
})}}]);
\ No newline at end of file
client-dist/resources/10.76af75db.js
deleted
100644 → 0
浏览文件 @
e6d7de8a
(
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
}}
var
o
=
1
e4
;
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
,
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
.
chapterVideo
&&
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
||
(
this
.
_rProgress
=
r
.
default
.
assignIn
({},
this
.
chapterVideo
.
progress
)),
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
,
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
.
_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
,
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
,
"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
),
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
,
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
)])])},
a
=
[];
i
.
d
(
t
,
"a"
,
function
(){
return
s
}),
i
.
d
(
t
,
"b"
,
function
(){
return
a
})}}]);
\ No newline at end of file
client-dist/resources/15.
ca7cab1d6dca
.css
→
client-dist/resources/15.
74dc8cd35292
.css
浏览文件 @
3d53d567
ul
.tabs-list
[
data-v-f8c2614e
]
{
float
:
left
;
width
:
100%
;
margin
:
0
0
.15rem
;
padding
:
0
;
font-size
:
.16rem
;
line-height
:
1.5
;
border-top
:
1px
solid
#e8e8e8
}
ul
.tabs-list
[
data-v-f8c2614e
]
:last-child
{
margin-bottom
:
0
}
ul
.tabs-list
.tabs-hd
[
data-v-f8c2614e
]
{
display
:
inline-block
;
color
:
#fff
;
padding
:
5px
0
9px
;
margin-top
:
-5px
;
width
:
94px
;
text-align
:
center
;
background
:
url(https://zws-imgs-pub.ezijing.com/754005be709bf2295bc55923c2b91fd8.png)
no-repeat
0
0
}
ul
.tabs-list
li
[
data-v-f8c2614e
]
{
float
:
left
;
list-style
:
none
;
padding
:
.1rem
0
;
margin-right
:
.2rem
}
ul
.tabs-list
li
.tab
[
data-v-f8c2614e
]
{
padding
:
0
.1rem
;
cursor
:
pointer
}
ul
.tabs-list
li
.tab.on
[
data-v-f8c2614e
]
{
background
:
#b49441
;
color
:
#fff
}
ul
.tabs-list
li
.tab
[
data-v-f8c2614e
]
:focus
,
ul
.tabs-list
li
.tab
[
data-v-f8c2614e
]
:hover
{
color
:
#b49441
;
background
:
#eee
}
.switch-box
[
data-v-f8c2614e
]
{
margin
:
0
.3rem
}
.switch-box
.icon
[
data-v-f8c2614e
]
{
margin-left
:
.1rem
}
.switch-box
.rbtn
[
data-v-f8c2614e
]
{
float
:
right
}
ul
.course-list
[
data-v-f8c2614e
]
{
margin
:
0
;
padding
:
0
;
font-size
:
.18rem
;
color
:
#313131
}
ul
.course-list
.no-data
[
data-v-f8c2614e
]
{
text-align
:
center
;
line-height
:
2rem
}
ul
.course-list
li
.item
[
data-v-f8c2614e
]
{
padding
:
.1rem
0
;
list-style
:
none
;
border-bottom
:
1px
solid
#dcdcdc
;
overflow
:
hidden
}
ul
.course-list
li
.item
[
data-v-f8c2614e
]
:first-child
{
padding-top
:
0
}
ul
.course-list
li
.item
[
data-v-f8c2614e
]
:last-child
{
margin-bottom
:
.2rem
}
ul
.course-list
li
.item
.left-pic
[
data-v-f8c2614e
]
{
position
:
relative
;
float
:
left
;
width
:
1.8rem
;
overflow
:
hidden
}
ul
.course-list
li
.item
.left-pic
.no-img
[
data-v-f8c2614e
]
{
width
:
100%
;
height
:
1rem
;
text-align
:
center
;
line-height
:
1.1rem
;
border
:
1px
solid
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
.no-img
i
[
data-v-f8c2614e
]
{
font-size
:
.4rem
;
color
:
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
img
[
data-v-f8c2614e
]
{
display
:
block
;
width
:
100%
}
ul
.course-list
li
.item
.right-bd
[
data-v-f8c2614e
]
{
position
:
relative
;
display
:
block
;
margin-left
:
2rem
}
ul
.course-list
li
.item
.right-bd
.title
[
data-v-f8c2614e
]
{
width
:
80%
;
line-height
:
1.5
;
font-weight
:
700
;
overflow
:
hidden
;
-o-text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
ul
.course-list
li
.item
.right-bd
.tags
[
data-v-f8c2614e
]
{
margin
:
.05rem
0
;
font-size
:
.14rem
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-f8c2614e
]
{
padding
:
0
.1rem
;
margin
:
0
;
border-right
:
1px
solid
#313131
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-f8c2614e
]
:first-child
{
padding-left
:
0
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-f8c2614e
]
:last-child
{
border
:
none
}
ul
.course-list
li
.item
.right-bd
.time
[
data-v-f8c2614e
]
{
font-size
:
.12rem
}
ul
.course-list
li
.item
.right-bd
.time
em
[
data-v-f8c2614e
]
{
font-style
:
normal
;
color
:
#898989
}
ul
.course-list
li
.item
.right-bd
.progress
[
data-v-f8c2614e
]
{
margin-top
:
.05rem
;
font-size
:
14px
}
ul
.course-list
li
.item
.right-bd
.progress
.el-progress
[
data-v-f8c2614e
]
{
width
:
50%
;
display
:
inline-block
;
vertical-align
:
text-bottom
}
ul
.course-list
li
.item
.right-bd
.right-sel
[
data-v-f8c2614e
]
{
position
:
absolute
;
right
:
0
;
top
:
0
;
font-size
:
14px
;
padding
:
0
.1rem
}
ul
.course-list
li
.item
.right-bd
.in-btn
[
data-v-f8c2614e
]
{
position
:
absolute
;
right
:
0
;
bottom
:
0
}
@media
(
max-width
:
767px
){
.switch-box
[
data-v-f8c2614e
]
{
margin
:
0
}}
ul
.tabs-list
[
data-v-2021d0cc
]
{
float
:
left
;
width
:
100%
;
margin
:
0
0
.15rem
;
padding
:
0
;
font-size
:
.16rem
;
line-height
:
1.5
;
border-top
:
1px
solid
#e8e8e8
}
ul
.tabs-list
[
data-v-2021d0cc
]
:last-child
{
margin-bottom
:
0
}
ul
.tabs-list
.tabs-hd
[
data-v-2021d0cc
]
{
display
:
inline-block
;
color
:
#fff
;
padding
:
5px
0
9px
;
margin-top
:
-5px
;
width
:
94px
;
text-align
:
center
;
background
:
url(https://zws-imgs-pub.ezijing.com/754005be709bf2295bc55923c2b91fd8.png)
no-repeat
0
0
}
ul
.tabs-list
li
[
data-v-2021d0cc
]
{
float
:
left
;
list-style
:
none
;
padding
:
.1rem
0
;
margin-right
:
.2rem
}
ul
.tabs-list
li
.tab
[
data-v-2021d0cc
]
{
padding
:
0
.1rem
;
cursor
:
pointer
}
ul
.tabs-list
li
.tab.on
[
data-v-2021d0cc
]
{
background
:
#b49441
;
color
:
#fff
}
ul
.tabs-list
li
.tab
[
data-v-2021d0cc
]
:focus
,
ul
.tabs-list
li
.tab
[
data-v-2021d0cc
]
:hover
{
color
:
#b49441
;
background
:
#eee
}
.switch-box
[
data-v-2021d0cc
]
{
margin
:
0
.3rem
}
.switch-box
.icon
[
data-v-2021d0cc
]
{
margin-left
:
.1rem
}
.switch-box
.rbtn
[
data-v-2021d0cc
]
{
float
:
right
}
ul
.course-list
[
data-v-2021d0cc
]
{
margin
:
0
;
padding
:
0
;
font-size
:
.18rem
;
color
:
#313131
}
ul
.course-list
.no-data
[
data-v-2021d0cc
]
{
text-align
:
center
;
line-height
:
2rem
}
ul
.course-list
li
.item
[
data-v-2021d0cc
]
{
padding
:
.1rem
0
;
list-style
:
none
;
border-bottom
:
1px
solid
#dcdcdc
;
overflow
:
hidden
}
ul
.course-list
li
.item
[
data-v-2021d0cc
]
:first-child
{
padding-top
:
0
}
ul
.course-list
li
.item
[
data-v-2021d0cc
]
:last-child
{
margin-bottom
:
.2rem
}
ul
.course-list
li
.item
.left-pic
[
data-v-2021d0cc
]
{
position
:
relative
;
float
:
left
;
width
:
1.8rem
;
overflow
:
hidden
}
ul
.course-list
li
.item
.left-pic
.no-img
[
data-v-2021d0cc
]
{
width
:
100%
;
height
:
1rem
;
text-align
:
center
;
line-height
:
1.1rem
;
border
:
1px
solid
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
.no-img
i
[
data-v-2021d0cc
]
{
font-size
:
.4rem
;
color
:
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
img
[
data-v-2021d0cc
]
{
display
:
block
;
width
:
100%
}
ul
.course-list
li
.item
.right-bd
[
data-v-2021d0cc
]
{
position
:
relative
;
display
:
block
;
margin-left
:
2rem
}
ul
.course-list
li
.item
.right-bd
.title
[
data-v-2021d0cc
]
{
width
:
80%
;
line-height
:
1.5
;
font-weight
:
700
;
overflow
:
hidden
;
-o-text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
ul
.course-list
li
.item
.right-bd
.tags
[
data-v-2021d0cc
]
{
margin
:
.05rem
0
;
font-size
:
.14rem
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-2021d0cc
]
{
padding
:
0
.1rem
;
margin
:
0
;
border-right
:
1px
solid
#313131
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-2021d0cc
]
:first-child
{
padding-left
:
0
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-2021d0cc
]
:last-child
{
border
:
none
}
ul
.course-list
li
.item
.right-bd
.time
[
data-v-2021d0cc
]
{
font-size
:
.12rem
}
ul
.course-list
li
.item
.right-bd
.time
em
[
data-v-2021d0cc
]
{
font-style
:
normal
;
color
:
#898989
}
ul
.course-list
li
.item
.right-bd
.progress
[
data-v-2021d0cc
]
{
margin-top
:
.05rem
;
font-size
:
14px
}
ul
.course-list
li
.item
.right-bd
.progress
.el-progress
[
data-v-2021d0cc
]
{
width
:
50%
;
display
:
inline-block
;
vertical-align
:
text-bottom
}
ul
.course-list
li
.item
.right-bd
.right-sel
[
data-v-2021d0cc
]
{
position
:
absolute
;
right
:
0
;
top
:
0
;
font-size
:
14px
;
padding
:
0
.1rem
}
ul
.course-list
li
.item
.right-bd
.in-btn
[
data-v-2021d0cc
]
{
position
:
absolute
;
right
:
0
;
bottom
:
0
}
@media
(
max-width
:
767px
){
.switch-box
[
data-v-2021d0cc
]
{
margin
:
0
}}
\ No newline at end of file
\ No newline at end of file
client-dist/resources/15.
f49555ac
.js
→
client-dist/resources/15.
e61a13f7
.js
浏览文件 @
3d53d567
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
15
],{
253
:
function
(
t
,
e
,
s
){
"use strict"
;
s
.
r
(
e
);
var
a
=
s
(
435
),
i
=
s
(
300
);
for
(
var
n
in
i
)
"default"
!==
n
&&
function
(
t
){
s
.
d
(
e
,
t
,
function
(){
return
i
[
t
]})}(
n
);
s
(
383
);
var
r
=
s
(
1
),
l
=
Object
(
r
.
a
)(
i
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"f8c2614e"
,
null
);
l
.
options
.
__file
=
"course.vue"
,
e
.
default
=
l
.
exports
},
300
:
function
(
t
,
e
,
s
){
"use strict"
;
s
.
r
(
e
);
var
a
=
s
(
301
),
i
=
s
.
n
(
a
);
for
(
var
n
in
a
)
"default"
!==
n
&&
function
(
t
){
s
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
n
);
e
.
default
=
i
.
a
},
301
:
function
(
t
,
e
,
s
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
a
,
i
=
s
(
72
),
n
=
(
a
=
i
)
&&
a
.
__esModule
?
a
:{
default
:
a
};
e
.
default
=
{
components
:{},
data
:
function
(){
return
{
filter
:{
studyEarly
:
"down"
,
selectTime
:
"down"
},
find
:[{
name
:
"学期"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"semester_id"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
""
,
name
:
"第一学期"
},{
val
:
""
,
name
:
"第二学期"
},{
val
:
""
,
name
:
"第三学期"
},{
val
:
""
,
name
:
"第四学期"
}]},{
name
:
"课程类型"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"course_type"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
"1"
,
name
:
"必修课"
},{
val
:
"2"
,
name
:
"选修课"
},{
val
:
"3"
,
name
:
"重修课"
}]}],
homeList
:[],
param
:{}}},
mounted
:
function
(){
var
e
=
this
,
t
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
courseAction
.
getlearnFindList
().
then
(
function
(
t
){
e
.
find
[
0
].
arrItem
=
t
,
e
.
getAjaxList
(
!
0
,
"请去选课广场选课"
)}).
catch
(
function
(
t
){
e
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
t
.
close
()})},
methods
:{
goCourseAll
:
function
(){
this
.
$router
.
push
({
path
:
"/app/my-learn/course-all"
})},
goCourseContent
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
.
cid
,
s
=
t
.
currentTarget
.
dataset
.
sid
;
this
.
$router
.
push
({
path
:
"/app/my-learn/course-detail/"
+
s
+
"/"
+
e
})},
getAjaxList
:
function
(
t
,
e
){
var
s
=
this
;
n
.
default
.
courseAction
.
getCourseList
(
t
,
this
.
param
).
then
(
function
(
t
){(
s
.
homeList
=
t
).
length
||
s
.
$message
(
e
)}).
catch
(
function
(
t
){
s
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){})},
selFindSelect
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
,
s
=
e
.
index
,
a
=
this
.
find
,
i
=
e
.
i
;
a
[
i
].
selectIndex
=
s
,
a
[
i
].
isShow
=!
1
,
"-1"
===
e
.
val
?
delete
this
.
param
[
e
.
key
]:
this
.
param
[
e
.
key
]
=
e
.
val
,
this
.
getAjaxList
(
!
0
,
"暂无符合条件的课程"
)},
studyEarlyUpdate
:
function
(){
var
t
=
"up"
===
this
.
filter
.
studyEarly
?
"down"
:
"up"
;
"down"
===
(
this
.
filter
.
studyEarly
=
t
)?
this
.
param
.
order_type
=
"learn_time"
:
"up"
===
t
&&
(
this
.
param
.
order_type
=
"-learn_time"
),
this
.
getAjaxList
(
!
0
,
"请去选课广场选课"
)},
selectTimeUpdate
:
function
(){
var
t
=
"up"
===
this
.
filter
.
selectTime
?
"down"
:
"up"
;
"down"
===
(
this
.
filter
.
selectTime
=
t
)?
this
.
param
.
order_type
=
"join_time"
:
"up"
===
t
&&
(
this
.
param
.
order_type
=
"-join_time"
),
this
.
getAjaxList
(
!
0
,
"请去选课广场选课"
)}}}},
302
:
function
(
t
,
e
,
s
){},
383
:
function
(
t
,
e
,
s
){
"use strict"
;
var
a
=
s
(
302
);
s
.
n
(
a
).
a
},
435
:
function
(
t
,
e
,
s
){
"use strict"
;
var
a
=
function
(){
var
i
=
this
,
t
=
i
.
$createElement
,
n
=
i
.
_self
.
_c
||
t
;
return
n
(
"div"
,[
n
(
"div"
,{
staticClass
:
"con-title"
},[
i
.
_v
(
"我的课程"
)]),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"con-box"
},[
i
.
_l
(
i
.
find
,
function
(
s
,
a
){
return
[
n
(
"ul"
,{
key
:
a
,
staticClass
:
"tabs-list"
},[
n
(
"li"
,{
staticClass
:
"tabs-hd"
},[
i
.
_v
(
i
.
_s
(
s
.
name
))]),
i
.
_v
(
" "
),
i
.
_l
(
s
.
arrItem
,
function
(
t
,
e
){
return
[
n
(
"li"
,{
key
:
e
},[
n
(
"div"
,{
class
:[
"tab"
,
s
.
selectIndex
==
e
?
"on"
:
""
],
attrs
:{
"data-index"
:
e
,
"data-i"
:
a
,
"data-key"
:
s
.
key
,
"data-val"
:
t
.
val
},
on
:{
click
:
i
.
selFindSelect
}},[
i
.
_v
(
i
.
_s
(
t
.
name
))])])]})],
2
)]})],
2
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"switch-box"
},[
n
(
"el-button"
,{
attrs
:{
type
:
"info"
,
size
:
"medium"
,
plain
:
""
},
on
:{
click
:
i
.
studyEarlyUpdate
}},[
i
.
_v
(
"最近学习"
),
n
(
"i"
,{
class
:[
"el-icon-caret-"
+
(
"down"
==
i
.
filter
.
studyEarly
?
"bottom"
:
"top"
),
"icon"
]})]),
i
.
_v
(
" "
),
n
(
"el-button"
,{
attrs
:{
type
:
"info"
,
size
:
"medium"
,
plain
:
""
},
on
:{
click
:
i
.
selectTimeUpdate
}},[
i
.
_v
(
"选修时间"
),
n
(
"i"
,{
class
:[
"el-icon-caret-"
+
(
"down"
==
i
.
filter
.
selectTime
?
"bottom"
:
"top"
),
"icon"
]})]),
i
.
_v
(
" "
),
n
(
"el-button"
,{
staticClass
:
"rbtn"
,
attrs
:{
type
:
"primary"
,
size
:
"medium"
,
icon
:
"el-icon-self-cc-book icon"
},
on
:{
click
:
i
.
goCourseAll
}},[
i
.
_v
(
"选课广场"
)])],
1
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"con-box"
},[
n
(
"ul"
,{
staticClass
:
"course-list"
},[
i
.
_l
(
i
.
homeList
,
function
(
t
,
e
){
return
[
n
(
"li"
,{
key
:
e
,
staticClass
:
"item"
},[
n
(
"div"
,{
staticClass
:
"left-pic"
},[
t
.
src
?[
n
(
"img"
,{
attrs
:{
src
:
t
.
src
,
alt
:
""
}})]:[
i
.
_m
(
0
,
!
0
)]],
2
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"right-bd"
},[
n
(
"div"
,{
staticClass
:
"title"
},[
i
.
_v
(
i
.
_s
(
t
.
title
))]),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"tags"
},[
i
.
_l
(
t
.
arrTab
,
function
(
t
,
e
){
return
[
n
(
"span"
,{
key
:
e
},[
i
.
_v
(
i
.
_s
(
t
))])]})],
2
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"time"
},[
i
.
_v
(
"
\
n "
+
i
.
_s
(
t
.
status
)
+
" "
),
n
(
"em"
,[
i
.
_v
(
i
.
_s
(
t
.
time
))])]),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"progress"
},[
i
.
_v
(
"
\
n 视频观看进度 "
),
n
(
"el-progress"
,{
attrs
:{
percentage
:
t
.
progress
,
color
:
"#b49441"
}})],
1
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"right-sel"
},[
i
.
_v
(
i
.
_s
(
t
.
myStatus
))]),
i
.
_v
(
" "
),
n
(
"el-button"
,{
staticClass
:
"in-btn"
,
attrs
:{
type
:
"primary"
,
size
:
"small"
,
round
:
""
,
"data-cid"
:
t
.
id
,
"data-sid"
:
t
.
sid
},
on
:{
click
:
i
.
goCourseContent
}},[
i
.
_v
(
"查看课程"
)])],
1
)])]}),
i
.
_v
(
" "
),
i
.
homeList
.
length
?
i
.
_e
():[
n
(
"div"
,{
staticClass
:
"no-data"
},[
i
.
_v
(
"暂无相关课程"
)])]],
2
)])])},
i
=
[
function
(){
var
t
=
this
.
$createElement
,
e
=
this
.
_self
.
_c
||
t
;
return
e
(
"div"
,{
staticClass
:
"no-img"
},[
e
(
"i"
,{
staticClass
:
"el-icon-self-13"
})])}];
s
.
d
(
e
,
"a"
,
function
(){
return
a
}),
s
.
d
(
e
,
"b"
,
function
(){
return
i
})}}]);
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
15
],{
253
:
function
(
t
,
e
,
s
){
"use strict"
;
s
.
r
(
e
);
var
a
=
s
(
435
),
i
=
s
(
300
);
for
(
var
n
in
i
)
"default"
!==
n
&&
function
(
t
){
s
.
d
(
e
,
t
,
function
(){
return
i
[
t
]})}(
n
);
s
(
383
);
var
r
=
s
(
1
),
l
=
Object
(
r
.
a
)(
i
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"2021d0cc"
,
null
);
l
.
options
.
__file
=
"course.vue"
,
e
.
default
=
l
.
exports
},
300
:
function
(
t
,
e
,
s
){
"use strict"
;
s
.
r
(
e
);
var
a
=
s
(
301
),
i
=
s
.
n
(
a
);
for
(
var
n
in
a
)
"default"
!==
n
&&
function
(
t
){
s
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
n
);
e
.
default
=
i
.
a
},
301
:
function
(
t
,
e
,
s
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
a
,
i
=
s
(
72
),
n
=
(
a
=
i
)
&&
a
.
__esModule
?
a
:{
default
:
a
};
e
.
default
=
{
components
:{},
data
:
function
(){
return
{
filter
:{
studyEarly
:
"down"
,
selectTime
:
"down"
},
find
:[{
name
:
"学期"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"semester_id"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
""
,
name
:
"第一学期"
},{
val
:
""
,
name
:
"第二学期"
},{
val
:
""
,
name
:
"第三学期"
},{
val
:
""
,
name
:
"第四学期"
}]},{
name
:
"课程类型"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"course_type"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
"1"
,
name
:
"必修课"
},{
val
:
"2"
,
name
:
"选修课"
},{
val
:
"3"
,
name
:
"重修课"
}]}],
homeList
:[],
param
:{}}},
mounted
:
function
(){
var
e
=
this
,
t
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
courseAction
.
getlearnFindList
().
then
(
function
(
t
){
e
.
find
[
0
].
arrItem
=
t
,
e
.
getAjaxList
(
!
0
,
"请去选课广场选课"
)}).
catch
(
function
(
t
){
e
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
t
.
close
()})},
methods
:{
goCourseAll
:
function
(){
this
.
$router
.
push
({
path
:
"/app/my-learn/course-all"
})},
goCourseContent
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
.
cid
,
s
=
t
.
currentTarget
.
dataset
.
sid
;
this
.
$router
.
push
({
path
:
"/app/my-learn/course-detail/"
+
s
+
"/"
+
e
})},
getAjaxList
:
function
(
t
,
e
){
var
s
=
this
;
n
.
default
.
courseAction
.
getCourseList
(
t
,
this
.
param
).
then
(
function
(
t
){(
s
.
homeList
=
t
).
length
||
s
.
$message
(
e
)}).
catch
(
function
(
t
){
s
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){})},
selFindSelect
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
,
s
=
e
.
index
,
a
=
this
.
find
,
i
=
e
.
i
;
a
[
i
].
selectIndex
=
s
,
a
[
i
].
isShow
=!
1
,
"-1"
===
e
.
val
?
delete
this
.
param
[
e
.
key
]:
this
.
param
[
e
.
key
]
=
e
.
val
,
this
.
getAjaxList
(
!
0
,
"暂无符合条件的课程"
)},
studyEarlyUpdate
:
function
(){
var
t
=
"up"
===
this
.
filter
.
studyEarly
?
"down"
:
"up"
;
"down"
===
(
this
.
filter
.
studyEarly
=
t
)?
this
.
param
.
order_type
=
"learn_time"
:
"up"
===
t
&&
(
this
.
param
.
order_type
=
"-learn_time"
),
this
.
getAjaxList
(
!
0
,
"请去选课广场选课"
)},
selectTimeUpdate
:
function
(){
var
t
=
"up"
===
this
.
filter
.
selectTime
?
"down"
:
"up"
;
"down"
===
(
this
.
filter
.
selectTime
=
t
)?
this
.
param
.
order_type
=
"join_time"
:
"up"
===
t
&&
(
this
.
param
.
order_type
=
"-join_time"
),
this
.
getAjaxList
(
!
0
,
"请去选课广场选课"
)}}}},
302
:
function
(
t
,
e
,
s
){},
383
:
function
(
t
,
e
,
s
){
"use strict"
;
var
a
=
s
(
302
);
s
.
n
(
a
).
a
},
435
:
function
(
t
,
e
,
s
){
"use strict"
;
var
a
=
function
(){
var
i
=
this
,
t
=
i
.
$createElement
,
n
=
i
.
_self
.
_c
||
t
;
return
n
(
"div"
,[
n
(
"div"
,{
staticClass
:
"con-title"
},[
i
.
_v
(
"我的课程"
)]),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"con-box"
},[
i
.
_l
(
i
.
find
,
function
(
s
,
a
){
return
[
n
(
"ul"
,{
key
:
a
,
staticClass
:
"tabs-list"
},[
n
(
"li"
,{
staticClass
:
"tabs-hd"
},[
i
.
_v
(
i
.
_s
(
s
.
name
))]),
i
.
_v
(
" "
),
i
.
_l
(
s
.
arrItem
,
function
(
t
,
e
){
return
[
n
(
"li"
,{
key
:
e
},[
n
(
"div"
,{
class
:[
"tab"
,
s
.
selectIndex
==
e
?
"on"
:
""
],
attrs
:{
"data-index"
:
e
,
"data-i"
:
a
,
"data-key"
:
s
.
key
,
"data-val"
:
t
.
val
},
on
:{
click
:
i
.
selFindSelect
}},[
i
.
_v
(
i
.
_s
(
t
.
name
))])])]})],
2
)]})],
2
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"switch-box"
},[
n
(
"el-button"
,{
attrs
:{
type
:
"info"
,
size
:
"medium"
,
plain
:
""
},
on
:{
click
:
i
.
studyEarlyUpdate
}},[
i
.
_v
(
"最近学习"
),
n
(
"i"
,{
class
:[
"el-icon-caret-"
+
(
"down"
==
i
.
filter
.
studyEarly
?
"bottom"
:
"top"
),
"icon"
]})]),
i
.
_v
(
" "
),
n
(
"el-button"
,{
attrs
:{
type
:
"info"
,
size
:
"medium"
,
plain
:
""
},
on
:{
click
:
i
.
selectTimeUpdate
}},[
i
.
_v
(
"选修时间"
),
n
(
"i"
,{
class
:[
"el-icon-caret-"
+
(
"down"
==
i
.
filter
.
selectTime
?
"bottom"
:
"top"
),
"icon"
]})]),
i
.
_v
(
" "
),
n
(
"el-button"
,{
staticClass
:
"rbtn"
,
attrs
:{
type
:
"primary"
,
size
:
"medium"
,
icon
:
"el-icon-self-cc-book icon"
},
on
:{
click
:
i
.
goCourseAll
}},[
i
.
_v
(
"选课广场"
)])],
1
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"con-box"
},[
n
(
"ul"
,{
staticClass
:
"course-list"
},[
i
.
_l
(
i
.
homeList
,
function
(
t
,
e
){
return
[
n
(
"li"
,{
key
:
e
,
staticClass
:
"item"
},[
n
(
"div"
,{
staticClass
:
"left-pic"
},[
t
.
src
?[
n
(
"img"
,{
attrs
:{
src
:
t
.
src
,
alt
:
""
}})]:[
i
.
_m
(
0
,
!
0
)]],
2
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"right-bd"
},[
n
(
"div"
,{
staticClass
:
"title"
},[
i
.
_v
(
i
.
_s
(
t
.
title
))]),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"tags"
},[
i
.
_l
(
t
.
arrTab
,
function
(
t
,
e
){
return
[
n
(
"span"
,{
key
:
e
},[
i
.
_v
(
i
.
_s
(
t
))])]})],
2
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"time"
},[
i
.
_v
(
"
\
n "
+
i
.
_s
(
t
.
status
)
+
" "
),
n
(
"em"
,[
i
.
_v
(
i
.
_s
(
t
.
time
))])]),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"progress"
},[
i
.
_v
(
"
\
n 视频观看进度 "
),
n
(
"el-progress"
,{
attrs
:{
percentage
:
99.5
<
t
.
progress
?
100
:
t
.
progress
,
color
:
"#b49441"
}})],
1
),
i
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"right-sel"
},[
i
.
_v
(
i
.
_s
(
t
.
myStatus
))]),
i
.
_v
(
" "
),
n
(
"el-button"
,{
staticClass
:
"in-btn"
,
attrs
:{
type
:
"primary"
,
size
:
"small"
,
round
:
""
,
"data-cid"
:
t
.
id
,
"data-sid"
:
t
.
sid
},
on
:{
click
:
i
.
goCourseContent
}},[
i
.
_v
(
"查看课程"
)])],
1
)])]}),
i
.
_v
(
" "
),
i
.
homeList
.
length
?
i
.
_e
():[
n
(
"div"
,{
staticClass
:
"no-data"
},[
i
.
_v
(
"暂无相关课程"
)])]],
2
)])])},
i
=
[
function
(){
var
t
=
this
.
$createElement
,
e
=
this
.
_self
.
_c
||
t
;
return
e
(
"div"
,{
staticClass
:
"no-img"
},[
e
(
"i"
,{
staticClass
:
"el-icon-self-13"
})])}];
s
.
d
(
e
,
"a"
,
function
(){
return
a
}),
s
.
d
(
e
,
"b"
,
function
(){
return
i
})}}]);
\ No newline at end of file
\ No newline at end of file
client-dist/resources/16.
b8ee8fb
d.js
→
client-dist/resources/16.
505c6d2
d.js
浏览文件 @
3d53d567
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
16
],{
256
:
function
(
t
,
e
,
a
){
"use strict"
;
a
.
r
(
e
);
var
s
=
a
(
432
),
n
=
a
(
309
);
for
(
var
i
in
n
)
"default"
!==
i
&&
function
(
t
){
a
.
d
(
e
,
t
,
function
(){
return
n
[
t
]})}(
i
);
a
(
386
);
var
r
=
a
(
1
),
c
=
Object
(
r
.
a
)(
n
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
"8b1dd7c8"
,
null
);
c
.
options
.
__file
=
"courseAll.vue"
,
e
.
default
=
c
.
exports
},
309
:
function
(
t
,
e
,
a
){
"use strict"
;
a
.
r
(
e
);
var
s
=
a
(
310
),
n
=
a
.
n
(
s
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
a
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
e
.
default
=
n
.
a
},
310
:
function
(
t
,
e
,
a
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
s
,
n
=
a
(
72
),
i
=
(
s
=
n
)
&&
s
.
__esModule
?
s
:{
default
:
s
};
e
.
default
=
{
components
:{},
data
:
function
(){
return
{
find
:[{
name
:
"学期"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"semester_id"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
""
,
name
:
"第一学期"
},{
val
:
""
,
name
:
"第二学期"
},{
val
:
""
,
name
:
"第三学期"
},{
val
:
""
,
name
:
"第四学期"
}]},{
name
:
"课程类型"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"course_type"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
"1"
,
name
:
"必修课"
},{
val
:
"2"
,
name
:
"选修课"
}]},{
name
:
"选修状态"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"select_status"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
"0"
,
name
:
"未选修"
},{
val
:
"1"
,
name
:
"已选修"
}]}],
homeList
:[],
param
:{}}},
mounted
:
function
(){
var
e
=
this
;
this
.
VueEvent
.
$emit
(
"can-change-sidebar"
,{
defaultActive
:
"0"
});
var
a
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
i
.
default
.
courseAction
.
getlearnFindList
().
then
(
function
(
t
){
e
.
find
[
0
].
arrItem
=
t
,
e
.
getAjaxList
(
!
1
,
"请去选课广场选课"
)}).
catch
(
function
(
t
){
a
.
close
(),
e
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
a
.
close
()})},
methods
:{
goCourseContent
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
.
cid
,
a
=
t
.
currentTarget
.
dataset
.
sid
;
this
.
$router
.
push
({
path
:
"/app/my-learn/course-detail/"
+
a
+
"/"
+
e
})},
getAjaxList
:
function
(
t
,
e
){
var
a
=
this
;
i
.
default
.
courseAction
.
getCourseList
(
t
,
this
.
param
).
then
(
function
(
t
){(
a
.
homeList
=
t
).
length
||
a
.
$message
(
e
)}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){})},
selFindSelect
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
,
a
=
e
.
index
,
s
=
this
.
find
,
n
=
e
.
i
;
s
[
n
].
selectIndex
=
a
,
s
[
n
].
isShow
=!
1
,
"-1"
===
e
.
val
?
delete
this
.
param
[
e
.
key
]:
this
.
param
[
e
.
key
]
=
e
.
val
,
this
.
getAjaxList
(
!
1
,
"暂无符合条件的课程"
)}}}},
311
:
function
(
t
,
e
,
a
){},
386
:
function
(
t
,
e
,
a
){
"use strict"
;
var
s
=
a
(
311
);
a
.
n
(
s
).
a
},
432
:
function
(
t
,
e
,
a
){
"use strict"
;
var
s
=
function
(){
var
n
=
this
,
t
=
n
.
$createElement
,
i
=
n
.
_self
.
_c
||
t
;
return
i
(
"div"
,[
i
(
"div"
,{
staticClass
:
"con-title"
},[
n
.
_v
(
"选课广场"
)]),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"con-box"
},[
n
.
_l
(
n
.
find
,
function
(
a
,
s
){
return
[
i
(
"ul"
,{
key
:
s
,
staticClass
:
"tabs-list"
},[
i
(
"li"
,{
staticClass
:
"tabs-hd"
},[
n
.
_v
(
n
.
_s
(
a
.
name
))]),
n
.
_v
(
" "
),
n
.
_l
(
a
.
arrItem
,
function
(
t
,
e
){
return
[
i
(
"li"
,{
key
:
e
},[
i
(
"div"
,{
class
:[
"tab"
,
a
.
selectIndex
==
e
?
"on"
:
""
],
attrs
:{
"data-index"
:
e
,
"data-i"
:
s
,
"data-key"
:
a
.
key
,
"data-val"
:
t
.
val
},
on
:{
click
:
n
.
selFindSelect
}},[
n
.
_v
(
n
.
_s
(
t
.
name
))])])]})],
2
)]})],
2
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"con-box"
},[
i
(
"ul"
,{
staticClass
:
"course-list"
},[
n
.
_l
(
n
.
homeList
,
function
(
t
,
e
){
return
[
i
(
"li"
,{
key
:
e
,
staticClass
:
"item"
},[
i
(
"div"
,{
staticClass
:
"left-pic"
},[
t
.
src
?[
i
(
"img"
,{
attrs
:{
src
:
t
.
src
,
alt
:
""
}})]:[
n
.
_m
(
0
,
!
0
)]],
2
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"right-bd"
},[
i
(
"div"
,{
staticClass
:
"title"
},[
n
.
_v
(
n
.
_s
(
t
.
title
))]),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"tags"
},[
n
.
_l
(
t
.
arrTab
,
function
(
t
,
e
){
return
[
i
(
"span"
,{
key
:
e
},[
n
.
_v
(
n
.
_s
(
t
))])]})],
2
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"time"
},[
n
.
_v
(
"
\
n "
+
n
.
_s
(
t
.
status
)
+
" "
),
i
(
"em"
,[
n
.
_v
(
n
.
_s
(
t
.
time
))])]),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"progress"
},[
n
.
_v
(
"
\
n 学习进度 "
),
i
(
"el-progress"
,{
attrs
:{
percentage
:
t
.
progress
,
color
:
"#b49441"
}})],
1
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"right-sel"
},[
n
.
_v
(
n
.
_s
(
t
.
myStatus
))]),
n
.
_v
(
" "
),
i
(
"el-button"
,{
staticClass
:
"in-btn"
,
attrs
:{
type
:
"primary"
,
size
:
"small"
,
round
:
""
,
"data-cid"
:
t
.
id
,
"data-sid"
:
t
.
sid
},
on
:{
click
:
n
.
goCourseContent
}},[
n
.
_v
(
"查看课程"
)])],
1
)])]}),
n
.
_v
(
" "
),
n
.
homeList
.
length
?
n
.
_e
():[
i
(
"div"
,{
staticClass
:
"no-data"
},[
n
.
_v
(
"暂无相关课程"
)])]],
2
)])])},
n
=
[
function
(){
var
t
=
this
.
$createElement
,
e
=
this
.
_self
.
_c
||
t
;
return
e
(
"div"
,{
staticClass
:
"no-img"
},[
e
(
"i"
,{
staticClass
:
"el-icon-self-13"
})])}];
a
.
d
(
e
,
"a"
,
function
(){
return
s
}),
a
.
d
(
e
,
"b"
,
function
(){
return
n
})}}]);
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
16
],{
256
:
function
(
t
,
e
,
a
){
"use strict"
;
a
.
r
(
e
);
var
s
=
a
(
432
),
n
=
a
(
309
);
for
(
var
i
in
n
)
"default"
!==
i
&&
function
(
t
){
a
.
d
(
e
,
t
,
function
(){
return
n
[
t
]})}(
i
);
a
(
386
);
var
r
=
a
(
1
),
c
=
Object
(
r
.
a
)(
n
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
"1497b902"
,
null
);
c
.
options
.
__file
=
"courseAll.vue"
,
e
.
default
=
c
.
exports
},
309
:
function
(
t
,
e
,
a
){
"use strict"
;
a
.
r
(
e
);
var
s
=
a
(
310
),
n
=
a
.
n
(
s
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
a
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
e
.
default
=
n
.
a
},
310
:
function
(
t
,
e
,
a
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
s
,
n
=
a
(
72
),
i
=
(
s
=
n
)
&&
s
.
__esModule
?
s
:{
default
:
s
};
e
.
default
=
{
components
:{},
data
:
function
(){
return
{
find
:[{
name
:
"学期"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"semester_id"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
""
,
name
:
"第一学期"
},{
val
:
""
,
name
:
"第二学期"
},{
val
:
""
,
name
:
"第三学期"
},{
val
:
""
,
name
:
"第四学期"
}]},{
name
:
"课程类型"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"course_type"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
"1"
,
name
:
"必修课"
},{
val
:
"2"
,
name
:
"选修课"
}]},{
name
:
"选修状态"
,
isShow
:
!
1
,
selectIndex
:
0
,
key
:
"select_status"
,
arrItem
:[{
val
:
"-1"
,
name
:
"全部"
},{
val
:
"0"
,
name
:
"未选修"
},{
val
:
"1"
,
name
:
"已选修"
}]}],
homeList
:[],
param
:{}}},
mounted
:
function
(){
var
e
=
this
;
this
.
VueEvent
.
$emit
(
"can-change-sidebar"
,{
defaultActive
:
"0"
});
var
a
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
i
.
default
.
courseAction
.
getlearnFindList
().
then
(
function
(
t
){
e
.
find
[
0
].
arrItem
=
t
,
e
.
getAjaxList
(
!
1
,
"请去选课广场选课"
)}).
catch
(
function
(
t
){
a
.
close
(),
e
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
a
.
close
()})},
methods
:{
goCourseContent
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
.
cid
,
a
=
t
.
currentTarget
.
dataset
.
sid
;
this
.
$router
.
push
({
path
:
"/app/my-learn/course-detail/"
+
a
+
"/"
+
e
})},
getAjaxList
:
function
(
t
,
e
){
var
a
=
this
;
i
.
default
.
courseAction
.
getCourseList
(
t
,
this
.
param
).
then
(
function
(
t
){(
a
.
homeList
=
t
).
length
||
a
.
$message
(
e
)}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){})},
selFindSelect
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
,
a
=
e
.
index
,
s
=
this
.
find
,
n
=
e
.
i
;
s
[
n
].
selectIndex
=
a
,
s
[
n
].
isShow
=!
1
,
"-1"
===
e
.
val
?
delete
this
.
param
[
e
.
key
]:
this
.
param
[
e
.
key
]
=
e
.
val
,
this
.
getAjaxList
(
!
1
,
"暂无符合条件的课程"
)}}}},
311
:
function
(
t
,
e
,
a
){},
386
:
function
(
t
,
e
,
a
){
"use strict"
;
var
s
=
a
(
311
);
a
.
n
(
s
).
a
},
432
:
function
(
t
,
e
,
a
){
"use strict"
;
var
s
=
function
(){
var
n
=
this
,
t
=
n
.
$createElement
,
i
=
n
.
_self
.
_c
||
t
;
return
i
(
"div"
,[
i
(
"div"
,{
staticClass
:
"con-title"
},[
n
.
_v
(
"选课广场"
)]),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"con-box"
},[
n
.
_l
(
n
.
find
,
function
(
a
,
s
){
return
[
i
(
"ul"
,{
key
:
s
,
staticClass
:
"tabs-list"
},[
i
(
"li"
,{
staticClass
:
"tabs-hd"
},[
n
.
_v
(
n
.
_s
(
a
.
name
))]),
n
.
_v
(
" "
),
n
.
_l
(
a
.
arrItem
,
function
(
t
,
e
){
return
[
i
(
"li"
,{
key
:
e
},[
i
(
"div"
,{
class
:[
"tab"
,
a
.
selectIndex
==
e
?
"on"
:
""
],
attrs
:{
"data-index"
:
e
,
"data-i"
:
s
,
"data-key"
:
a
.
key
,
"data-val"
:
t
.
val
},
on
:{
click
:
n
.
selFindSelect
}},[
n
.
_v
(
n
.
_s
(
t
.
name
))])])]})],
2
)]})],
2
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"con-box"
},[
i
(
"ul"
,{
staticClass
:
"course-list"
},[
n
.
_l
(
n
.
homeList
,
function
(
t
,
e
){
return
[
i
(
"li"
,{
key
:
e
,
staticClass
:
"item"
},[
i
(
"div"
,{
staticClass
:
"left-pic"
},[
t
.
src
?[
i
(
"img"
,{
attrs
:{
src
:
t
.
src
,
alt
:
""
}})]:[
n
.
_m
(
0
,
!
0
)]],
2
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"right-bd"
},[
i
(
"div"
,{
staticClass
:
"title"
},[
n
.
_v
(
n
.
_s
(
t
.
title
))]),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"tags"
},[
n
.
_l
(
t
.
arrTab
,
function
(
t
,
e
){
return
[
i
(
"span"
,{
key
:
e
},[
n
.
_v
(
n
.
_s
(
t
))])]})],
2
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"time"
},[
n
.
_v
(
"
\
n "
+
n
.
_s
(
t
.
status
)
+
" "
),
i
(
"em"
,[
n
.
_v
(
n
.
_s
(
t
.
time
))])]),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"progress"
},[
n
.
_v
(
"
\
n 视频观看进度 "
),
i
(
"el-progress"
,{
attrs
:{
percentage
:
99.5
<
t
.
progress
?
100
:
t
.
progress
,
color
:
"#b49441"
}})],
1
),
n
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"right-sel"
},[
n
.
_v
(
n
.
_s
(
t
.
myStatus
))]),
n
.
_v
(
" "
),
i
(
"el-button"
,{
staticClass
:
"in-btn"
,
attrs
:{
type
:
"primary"
,
size
:
"small"
,
round
:
""
,
"data-cid"
:
t
.
id
,
"data-sid"
:
t
.
sid
},
on
:{
click
:
n
.
goCourseContent
}},[
n
.
_v
(
"查看课程"
)])],
1
)])]}),
n
.
_v
(
" "
),
n
.
homeList
.
length
?
n
.
_e
():[
i
(
"div"
,{
staticClass
:
"no-data"
},[
n
.
_v
(
"暂无相关课程"
)])]],
2
)])])},
n
=
[
function
(){
var
t
=
this
.
$createElement
,
e
=
this
.
_self
.
_c
||
t
;
return
e
(
"div"
,{
staticClass
:
"no-img"
},[
e
(
"i"
,{
staticClass
:
"el-icon-self-13"
})])}];
a
.
d
(
e
,
"a"
,
function
(){
return
s
}),
a
.
d
(
e
,
"b"
,
function
(){
return
n
})}}]);
\ No newline at end of file
\ No newline at end of file
client-dist/resources/16.
a6265ac4f731
.css
→
client-dist/resources/16.
fca5eccb0e56
.css
浏览文件 @
3d53d567
ul
.tabs-list
[
data-v-8b1dd7c8
]
{
float
:
left
;
width
:
100%
;
margin
:
0
0
.15rem
;
padding
:
0
;
font-size
:
.16rem
;
line-height
:
1.5
;
border-top
:
1px
solid
#e8e8e8
}
ul
.tabs-list
[
data-v-8b1dd7c8
]
:last-child
{
margin-bottom
:
0
}
ul
.tabs-list
.tabs-hd
[
data-v-8b1dd7c8
]
{
display
:
inline-block
;
color
:
#fff
;
padding
:
5px
0
9px
;
margin-top
:
-5px
;
width
:
94px
;
text-align
:
center
;
background
:
url(https://zws-imgs-pub.ezijing.com/754005be709bf2295bc55923c2b91fd8.png)
no-repeat
0
0
}
ul
.tabs-list
li
[
data-v-8b1dd7c8
]
{
float
:
left
;
list-style
:
none
;
padding
:
.1rem
0
;
margin-right
:
.2rem
}
ul
.tabs-list
li
.tab
[
data-v-8b1dd7c8
]
{
padding
:
0
.1rem
;
cursor
:
pointer
}
ul
.tabs-list
li
.tab.on
[
data-v-8b1dd7c8
]
{
background
:
#b49441
;
color
:
#fff
}
ul
.tabs-list
li
.tab
[
data-v-8b1dd7c8
]
:focus
,
ul
.tabs-list
li
.tab
[
data-v-8b1dd7c8
]
:hover
{
color
:
#b49441
;
background
:
#eee
}
.switch-box
[
data-v-8b1dd7c8
]
{
margin
:
0
.3rem
}
.switch-box
.icon
[
data-v-8b1dd7c8
]
{
margin-left
:
.1rem
}
.switch-box
.rbtn
[
data-v-8b1dd7c8
]
{
float
:
right
}
ul
.course-list
[
data-v-8b1dd7c8
]
{
margin
:
0
;
padding
:
0
;
font-size
:
.18rem
;
color
:
#313131
}
ul
.course-list
.no-data
[
data-v-8b1dd7c8
]
{
text-align
:
center
;
line-height
:
2rem
}
ul
.course-list
li
.item
[
data-v-8b1dd7c8
]
{
padding
:
.1rem
0
;
list-style
:
none
;
border-bottom
:
1px
solid
#dcdcdc
;
overflow
:
hidden
}
ul
.course-list
li
.item
[
data-v-8b1dd7c8
]
:first-child
{
padding-top
:
0
}
ul
.course-list
li
.item
[
data-v-8b1dd7c8
]
:last-child
{
margin-bottom
:
.2rem
}
ul
.course-list
li
.item
.left-pic
[
data-v-8b1dd7c8
]
{
position
:
relative
;
float
:
left
;
width
:
1.8rem
;
overflow
:
hidden
}
ul
.course-list
li
.item
.left-pic
.no-img
[
data-v-8b1dd7c8
]
{
width
:
100%
;
height
:
1rem
;
text-align
:
center
;
line-height
:
1.1rem
;
border
:
1px
solid
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
.no-img
i
[
data-v-8b1dd7c8
]
{
font-size
:
.4rem
;
color
:
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
img
[
data-v-8b1dd7c8
]
{
display
:
block
;
width
:
100%
}
ul
.course-list
li
.item
.right-bd
[
data-v-8b1dd7c8
]
{
position
:
relative
;
display
:
block
;
margin-left
:
2rem
}
ul
.course-list
li
.item
.right-bd
.title
[
data-v-8b1dd7c8
]
{
width
:
80%
;
line-height
:
1.5
;
font-weight
:
700
;
overflow
:
hidden
;
-o-text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
ul
.course-list
li
.item
.right-bd
.tags
[
data-v-8b1dd7c8
]
{
margin
:
.05rem
0
;
font-size
:
.14rem
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-8b1dd7c8
]
{
padding
:
0
.1rem
;
margin
:
0
;
border-right
:
1px
solid
#313131
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-8b1dd7c8
]
:first-child
{
padding-left
:
0
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-8b1dd7c8
]
:last-child
{
border
:
none
}
ul
.course-list
li
.item
.right-bd
.time
[
data-v-8b1dd7c8
]
{
font-size
:
.12rem
}
ul
.course-list
li
.item
.right-bd
.time
em
[
data-v-8b1dd7c8
]
{
font-style
:
normal
;
color
:
#898989
}
ul
.course-list
li
.item
.right-bd
.progress
[
data-v-8b1dd7c8
]
{
margin-top
:
.05rem
;
font-size
:
14px
}
ul
.course-list
li
.item
.right-bd
.progress
.el-progress
[
data-v-8b1dd7c8
]
{
width
:
50%
;
display
:
inline-block
;
vertical-align
:
text-bottom
}
ul
.course-list
li
.item
.right-bd
.right-sel
[
data-v-8b1dd7c8
]
{
position
:
absolute
;
right
:
0
;
top
:
0
;
font-size
:
14px
;
padding
:
0
.1rem
}
ul
.course-list
li
.item
.right-bd
.in-btn
[
data-v-8b1dd7c8
]
{
position
:
absolute
;
right
:
0
;
bottom
:
0
}
@media
(
max-width
:
767px
){
.switch-box
[
data-v-8b1dd7c8
]
{
margin
:
0
}}
ul
.tabs-list
[
data-v-1497b902
]
{
float
:
left
;
width
:
100%
;
margin
:
0
0
.15rem
;
padding
:
0
;
font-size
:
.16rem
;
line-height
:
1.5
;
border-top
:
1px
solid
#e8e8e8
}
ul
.tabs-list
[
data-v-1497b902
]
:last-child
{
margin-bottom
:
0
}
ul
.tabs-list
.tabs-hd
[
data-v-1497b902
]
{
display
:
inline-block
;
color
:
#fff
;
padding
:
5px
0
9px
;
margin-top
:
-5px
;
width
:
94px
;
text-align
:
center
;
background
:
url(https://zws-imgs-pub.ezijing.com/754005be709bf2295bc55923c2b91fd8.png)
no-repeat
0
0
}
ul
.tabs-list
li
[
data-v-1497b902
]
{
float
:
left
;
list-style
:
none
;
padding
:
.1rem
0
;
margin-right
:
.2rem
}
ul
.tabs-list
li
.tab
[
data-v-1497b902
]
{
padding
:
0
.1rem
;
cursor
:
pointer
}
ul
.tabs-list
li
.tab.on
[
data-v-1497b902
]
{
background
:
#b49441
;
color
:
#fff
}
ul
.tabs-list
li
.tab
[
data-v-1497b902
]
:focus
,
ul
.tabs-list
li
.tab
[
data-v-1497b902
]
:hover
{
color
:
#b49441
;
background
:
#eee
}
.switch-box
[
data-v-1497b902
]
{
margin
:
0
.3rem
}
.switch-box
.icon
[
data-v-1497b902
]
{
margin-left
:
.1rem
}
.switch-box
.rbtn
[
data-v-1497b902
]
{
float
:
right
}
ul
.course-list
[
data-v-1497b902
]
{
margin
:
0
;
padding
:
0
;
font-size
:
.18rem
;
color
:
#313131
}
ul
.course-list
.no-data
[
data-v-1497b902
]
{
text-align
:
center
;
line-height
:
2rem
}
ul
.course-list
li
.item
[
data-v-1497b902
]
{
padding
:
.1rem
0
;
list-style
:
none
;
border-bottom
:
1px
solid
#dcdcdc
;
overflow
:
hidden
}
ul
.course-list
li
.item
[
data-v-1497b902
]
:first-child
{
padding-top
:
0
}
ul
.course-list
li
.item
[
data-v-1497b902
]
:last-child
{
margin-bottom
:
.2rem
}
ul
.course-list
li
.item
.left-pic
[
data-v-1497b902
]
{
position
:
relative
;
float
:
left
;
width
:
1.8rem
;
overflow
:
hidden
}
ul
.course-list
li
.item
.left-pic
.no-img
[
data-v-1497b902
]
{
width
:
100%
;
height
:
1rem
;
text-align
:
center
;
line-height
:
1.1rem
;
border
:
1px
solid
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
.no-img
i
[
data-v-1497b902
]
{
font-size
:
.4rem
;
color
:
#e2e2e2
}
ul
.course-list
li
.item
.left-pic
img
[
data-v-1497b902
]
{
display
:
block
;
width
:
100%
}
ul
.course-list
li
.item
.right-bd
[
data-v-1497b902
]
{
position
:
relative
;
display
:
block
;
margin-left
:
2rem
}
ul
.course-list
li
.item
.right-bd
.title
[
data-v-1497b902
]
{
width
:
80%
;
line-height
:
1.5
;
font-weight
:
700
;
overflow
:
hidden
;
-o-text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
}
ul
.course-list
li
.item
.right-bd
.tags
[
data-v-1497b902
]
{
margin
:
.05rem
0
;
font-size
:
.14rem
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-1497b902
]
{
padding
:
0
.1rem
;
margin
:
0
;
border-right
:
1px
solid
#313131
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-1497b902
]
:first-child
{
padding-left
:
0
}
ul
.course-list
li
.item
.right-bd
.tags
span
[
data-v-1497b902
]
:last-child
{
border
:
none
}
ul
.course-list
li
.item
.right-bd
.time
[
data-v-1497b902
]
{
font-size
:
.12rem
}
ul
.course-list
li
.item
.right-bd
.time
em
[
data-v-1497b902
]
{
font-style
:
normal
;
color
:
#898989
}
ul
.course-list
li
.item
.right-bd
.progress
[
data-v-1497b902
]
{
margin-top
:
.05rem
;
font-size
:
14px
}
ul
.course-list
li
.item
.right-bd
.progress
.el-progress
[
data-v-1497b902
]
{
width
:
50%
;
display
:
inline-block
;
vertical-align
:
text-bottom
}
ul
.course-list
li
.item
.right-bd
.right-sel
[
data-v-1497b902
]
{
position
:
absolute
;
right
:
0
;
top
:
0
;
font-size
:
14px
;
padding
:
0
.1rem
}
ul
.course-list
li
.item
.right-bd
.in-btn
[
data-v-1497b902
]
{
position
:
absolute
;
right
:
0
;
bottom
:
0
}
@media
(
max-width
:
767px
){
.switch-box
[
data-v-1497b902
]
{
margin
:
0
}}
\ No newline at end of file
\ No newline at end of file
client-dist/resources/6.
39a4b4394a2e
.css
→
client-dist/resources/6.
0069f7ea7855
.css
浏览文件 @
3d53d567
.tab-pane
[
data-v-1d8953da
]
{
display
:
block
;
height
:
100%
;
overflow
:
auto
}
.tab-pane
.chapter-list
[
data-v-1d8953da
]
{
margin
:
0
;
padding
:
0
;
line-height
:
1.6
;
overflow
:
hidden
}
.tab-pane
.chapter-list
.chapter-item
h4
[
data-v-1d8953da
]
{
padding
:
10px
22px
;
margin
:
0
;
font-size
:
15px
;
color
:
#b0b0b0
;
background-color
:
#2f2f2f
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
[
data-v-1d8953da
]
{
margin
:
0
;
padding
:
0
;
line-height
:
1.6
;
overflow
:
hidden
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
{
position
:
relative
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
.on
[
data-v-1d8953da
]
{
background
:
#3c3c3c
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
.on
a
[
data-v-1d8953da
]
{
color
:
#b49441
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
:hover
{
background
:
#3c3c3c
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
:before
{
display
:
block
;
content
:
""
;
position
:
absolute
;
left
:
13px
;
top
:
16px
;
z-index
:
10
;
width
:
18px
;
height
:
18px
;
background
:
#5b5b5b
;
border
:
2px
solid
#5b5b5b
;
-webkit-border-radius
:
50%
;
-moz-border-radius
:
50%
;
border-radius
:
50%
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
:after
{
display
:
block
;
content
:
""
;
position
:
absolute
;
left
:
22px
;
top
:
0
;
z-index
:
5
;
width
:
1px
;
height
:
100px
;
background
:
#616161
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
.knot-name
[
data-v-1d8953da
]
{
display
:
block
;
padding
:
15px
35px
15px
40px
;
font-size
:
14px
;
color
:
#909090
;
text-decoration
:
none
;
cursor
:
pointer
}
.tab-pane
.chapter-list
.chapter-item
.el-icon
[
data-v-1d8953da
]
{
position
:
absolute
;
font-size
:
16px
;
right
:
10px
;
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
-moz-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
-o-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
)}
.tab-pane
[
data-v-8ec544e6
]
{
display
:
block
;
height
:
100%
;
overflow
:
auto
}
.tab-pane
.lecture-list
[
data-v-8ec544e6
]
{
padding
:
8px
16px
}
.tab-pane
.lecture-list
li
[
data-v-8ec544e6
]
{
padding
:
8px
16px
;
cursor
:
pointer
;
list-style
:
none
}
.tab-pane
.lecture-list
li
.on
[
data-v-8ec544e6
]
{
background
:
#888
}
.tab-pane
.lecture-list
li
img
[
data-v-8ec544e6
]
{
width
:
100%
}
.play
{
overflow
:
hidden
;
position
:
fixed
;
top
:
0
;
z-index
:
800
;
width
:
100%
;
height
:
100%
;
background-color
:
#3f3f3f
;
color
:
#a0a0a0
}
.play
.left-content
{
position
:
absolute
;
right
:
350px
;
top
:
0
;
left
:
0
;
bottom
:
0
;
min-width
:
705px
;
height
:
100%
}
.play.sidebar-hide
.left-content
{
right
:
0
}
.play
.play-top
{
line-height
:
56px
}
.play
.play-top
p
{
font-size
:
1.5em
;
text-align
:
center
;
margin
:
0
}
.play
.play-back
{
position
:
absolute
;
top
:
6px
;
left
:
10px
;
width
:
40px
;
height
:
40px
;
overflow
:
hidden
;
color
:
#fff
;
font-size
:
24px
;
line-height
:
40px
;
text-align
:
center
}
.play
.play-content
{
position
:
absolute
;
top
:
56px
;
bottom
:
0
;
left
:
0
;
right
:
0
}
.play
.play-content-video
{
height
:
100%
}
.play
.play-center
.text-error
{
font-size
:
.875em
;
line-height
:
1.5em
}
.play
.play-video-hide
{
visible
:
hidden
;
overflow
:
hidden
;
width
:
0
}
.play
.play-video-init-center
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
margin
:
-180px
0
0
-275px
}
.play
.play-ppt
{
position
:
relative
;
width
:
550px
;
height
:
363.375px
;
background-color
:
#000
}
.play
.play-ppt-img
{
width
:
100%
;
height
:
100%
}
.play
.play-controls
{
position
:
absolute
;
bottom
:
0
;
left
:
0
;
right
:
0
;
height
:
44px
;
line-height
:
42px
;
padding
:
0
14px
;
background-color
:
#000
}
.play
.play-controls
.fl
i
{
color
:
#8c8c8b
}
.play
.play-page
{
position
:
absolute
;
left
:
50%
;
margin-left
:
-75px
;
color
:
#fff
;
width
:
150px
;
text-align
:
center
;
font-size
:
.875em
}
.play
.play-page
.play-now
{
color
:
#d29f29
}
.play
.play-amazing
{
float
:
right
}
.play
.play-amazing
i
{
color
:
#fff
;
margin
:
0
10px
;
cursor
:
pointer
}
.play
.play-amazing
i
.active
,
.play
.play-amazing
i
:hover
{
color
:
#d29f29
}
.play
.play-amazing
.icon-rotate
{
font-size
:
1.125em
}
.play
.play-footer
{
position
:
absolute
;
bottom
:
0
;
left
:
0
;
right
:
0
;
z-index
:
200
;
padding
:
18px
20px
15px
}
.play
.play-footer
a
:hover
{
color
:
#a0a0a0
}
.play
.play-state
{
display
:
inline-block
;
color
:
#a0a0a0
;
padding-left
:
25px
;
font-size
:
14px
;
line-height
:
18px
;
margin
:
0
20px
;
background
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAGLCAMAAAFly2nyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyMDA3NTdkYS1iNTY5LTQ5MGEtYTA4MS02YWNlYWZlMGM2YzMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg4NUE2RkFFMkVCMTFFN0FBREZBNkNDMUEwRTI3OTkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg4NUE2RjlFMkVCMTFFN0FBREZBNkNDMUEwRTI3OTkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzU0NDA3MDYtMWE4Mi00MDk4LTg2NWYtMzYwMmY4NWY1NThkIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIwMDc1N2RhLWI1NjktNDkwYS1hMDgxLTZhY2VhZmUwYzZjMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn/9WLEAAAGAUExURV9WQIWFhbGSQVVVVXR0dFNTU7SUQUBAQE5OTkFBQU9PT0JCQp6enpiYmFFMP6mMQUBAP5aWllFRUWpqaqqNQZGRkVhYWEpKSouLi5CQkJqBQYGBgXp6emVlZXJkQFJNP52dnUJBP5OTk6GGQYKCgpubm2hoaFlZWZWVlWFhYUtLS319fXl5eZ+fn4CAgFtTP0NDQ1xUP4ZyQE1NTUREREVFRUZGRpmZmVtbW2xsbIODg1paWlxcXFdXV3FjQGdnZ0hISHNzc1BQUF5eXmlpaYiIiIl1QHNlQKKHQZeXl2FYQF1dXWBXQFZWVl9fX0dHR0pHP1hRP6+QQYaGhnt7e0NCP6uOQYVyQFVPP6CFQWRkZHpqQHFxcZKSkqOIQV5VQH5tQG9iQI+Pj0VDP5d/QKSIQaSJQaCGQXBjQFJSUm9vb35+fmNjY2tra2hdQI14QEVEP4mJiWZbQFlSP6iLQV1VQHZ2dpycnIqKioRxQJR9QE5KP5SUlHx8fKCgoD8/P7j7iVMAAAVKSURBVHjabM3RCYAwDEXRR6GBQkEcoUMIDuFMuatrBW2DflwCB8KTg9wRjLZuRMu9HO3xYBVViiiTJZRoog3b3e+Ndfo9zGTXXfjuvPmvnwKIAUyhII16LIJwxIrMFQOREpIwbjyIlFKGcoEORdYIdCNWA+swzOeqBwgghjobaDhiJYHhjkeW1ZQVn6w4iPSvx22CBIN1vWR9Eg5ZKQafeuX6SGyuQiIxZdmQyHoCZB0kvrDKWkLZsvX1AAEEJE3BKsHqBeuIMBndFkg419WTqpcdRLKCw1mIlUS9kNQPzhccEL1Em6ATCyTVoCJZQJKdG8x24eIgqDc8DkjaQUWigaRAKJgtJ89HSG8dEFiA2XUYpCcBvWxA4ANms2GQ/CSHG2pogNKAngrYhZyQPM5OpF5RCFsBTGqASF2QCEAAgVOvKzQh54K8DRcVQkrY9VRi1rnWg5MhNIiFoUwnuChVbQOmsnpQggMxHVhZWVnhogas1LdNCERCrQACThiTHSZKVdvqbe2BFLs5kCkDFuGtFwbHsqCJTX09F1ABL1hYnYsqthkmAimBMCDTCCwiUi9Xz+ABTNAFXvX18kAFIhCF8lRJJTBWHWEm5baxwVhshJnUjUJimN4wZkidNIQZXGeFUFAHLgegaus0qWWxMy+SqFYdjKkqhqEWIIAQcQFiccGKjxpYQaKAKFI0kQoXCVRjBgkL6j4ORBmlhCitFGAsP6hYIWapNQhYrMgsbliR5wQr/DIRxaAZUoHINSjjA8IyQypX2RElrDGcBfOlOHJJyzpo/CEWy6MDZvECq4J6NVtgAxoip1bPIAyitYTqZRhA7Zp6xvp6HgaOemZ/JSBHiSGpvl4UKM5uzcAhBi3kGeo5JDkMXCQGwB+lcUzhYJaIAJCyMwS2/CFyGfUMciC6OqLeiEERxKqqr2di4KsPDEgDctIYIuvrPYBtLwEGBr54aPXBUM+nzJcsJ0V3fwjWQYAgUo6nhOULZTHT2R/8bBAAaVIiuhnksvShLP1BWgqQx/KGserqUGtMBkTVCWPUM1jVqcD0ZsOqW1DNqwczhWVgy/s6cbiYAitc1twZrk4U1lnk0IWKialC1UVpYJgHEKAd8+ppGIaisBlR0owOaCmFlkIZpZRd9i6jZYgtIQQ8gNgSAgkQ4wH7r2PHcbHjIt4Qorkvib5c+1i2ont86bWaxJ0lssG8CSFX2WG0w/lt+LxclcxwjLyYEiNeNVHGaiCPcSyUYb6W3z9onhgSI9EclVhVTswza0dc8x0hWcPb+/JMYWZqrE5kapRdJx3myyk0+DxDkxkbLGugbW/vf2AqexP2TzNkhmNxVGaKcrvgYnVjrrH6oKTh7f23TFuJ1euGodfHVjTKNCv9lZK2MAXpWOnkUOYEqbE0AimdEfWNuGAthUAnKcT5LWym1hbsSmIikLUtcr4520uzl7NYo9FuCdY4f+U8dcOz1rwjo3aNz5bWPB1Pma+R+HRlnIf/or2YbGtLFtsv/JT5w/x1PYwpANfBErk/RsFrgMBlkpFgU5FMdInAHjHzp48IPQV2yJfzagQKttU/fSi80+yWAtZouiGvu4cUnVFXPxQ+c2SCcwdDX63I4avqvdVhUAn1fJPVWue5GeJ6V+X6Wb/LJtagGKGJf30egQHWyXOeAwGuu1eu4/e7bJ1d6lg8r3t15m+yWggzIovj/6df5VmWeHQfP3YKkw6fMN8+RlM+t0a/O9HW+BAndNZChOW71cxGBZ9Roq9bk/MaOlkDmx+rd/clpPl6InBSZIrVuiWOXWodV0SNSRjpca3lE672gHeiUdU0AAAAAElFTkSuQmCC)
no-repeat
0
0
;
cursor
:
pointer
}
.play
.play-state
a
{
color
:
#a0a0a0
;
text-decoration
:
none
}
.play
.play-state-prev
{
background-position
:
0
2px
}
.play
.play-state-prev-disable
{
background-position
:
0
-78px
;
color
:
#666
}
.play
.play-state-next
{
background-position
:
0
-38px
}
.play
.play-state-next-disable
{
background-position
:
0
-118px
;
color
:
#666
}
.play
.play-state-check
{
background-position
:
0
-160px
}
.play
.play-state-check-active
{
background-position
:
0
-200px
;
color
:
#b19241
}
.play
.play-state-ppt
{
background-position
:
0
-240px
}
.play
.play-state-ppt-active
{
background-position
:
0
-280px
;
color
:
#b19241
}
.play
.play-state-next-disable
:hover
,
.play
.play-state-prev-disable
:hover
{
color
:
#666
!important
}
.play
.switch
{
display
:
block
;
width
:
36px
;
height
:
125px
;
position
:
absolute
;
right
:
0
;
top
:
50%
;
text-align
:
center
;
margin
:
-63px
0
0
;
z-index
:
998
;
cursor
:
pointer
}
.play
.switch
a
{
color
:
#a0a0a0
;
text-decoration
:
none
;
font-size
:
14px
;
line-height
:
2
;
margin-bottom
:
20px
}
.play
.switch
a
i
{
font-size
:
24px
;
padding
:
5px
;
background
:
#666
;
border-radius
:
4px
}
.play
.play-paper
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
right
:
0
;
overflow
:
auto
;
background-color
:
#e5e5e5
}
.play
.play-paper-body
{
min-height
:
500px
;
margin
:
25px
;
padding
:
15px
45px
25px
;
color
:
#313131
;
box-shadow
:
0
0
2px
rgba
(
0
,
0
,
0
,
.05
);
background-color
:
#f2f2f2
}
.play
.play-paper-title
{
margin
:
0
10px
;
text-align
:
center
}
.play
.play-paper-title
div
{
padding-bottom
:
3px
;
display
:
inline-block
;
border-bottom
:
1px
solid
#707070
}
.play
.play-paper-title
h3
{
padding
:
0
0
5px
;
margin
:
0
;
display
:
inline-block
;
font-size
:
20px
;
border-bottom
:
3px
solid
#707070
}
.play
.play-paper-body
.help
{
color
:
#999
;
font-size
:
12px
}
.play
.play-paper-body
.help-file
{
margin-top
:
-10px
}
.play
.play-paper-body
.area-btns
{
margin
:
20px
0
}
.play
.play-paper-body
.area-btns
.btn
{
padding
:
6px
25px
}
.play
.play-paper-body
.area-btns
.help
{
margin-top
:
10px
;
font-size
:
14px
}
.play
.play-paper-body
.area-btns
.help-info
{
display
:
inline-block
;
vertical-align
:
middle
}
.play
.play-paper-body
.webuploader-btn
.upbtn
{
color
:
#b49441
;
text-decoration
:
underline
;
padding
:
3px
15px
;
font-size
:
.9em
;
display
:
inline-block
}
.play
.play-paper-body
.webuploader-btn
.loading
.fa-spin
{
font-size
:
1.2em
!important
}
.play
.play-paper-body
label
{
font-weight
:
400
}
.play
.play-paper-body
input
{
vertical-align
:
middle
}
.play
.play-paper-check
{
margin-top
:
20px
;
padding
:
20px
;
border
:
1px
solid
#dedede
}
.play
.play-paper-check
h4
{
font-size
:
16px
;
margin
:
0
0
10px
}
.play
.play-paper-check-item
{
padding-left
:
3em
}
.play
.play-paper-check-item
b
{
margin-left
:
-3em
;
margin-top
:
1px
}
.play
.play-paper-check-item
.edit_html
,
.play
.play-paper-check-item
b
{
display
:
inline-block
;
vertical-align
:
top
}
.play
.play-read-files
{
padding
:
30px
;
margin
:
0
}
.play
.play-read-files
li
{
font-size
:
16px
;
padding
:
20px
30px
;
margin-bottom
:
10px
;
background-color
:
#fff
;
list-style
:
none
}
.play
.play-read-files
li
a
{
color
:
#333
;
text-decoration
:
none
}
.play
.play-read-files
li
a
:hover
{
color
:
#b49441
}
.play
.play-chapter-work
{
padding
:
25px
}
.play
.play-chapter-work
.work-number
{
margin-left
:
-25px
}
.play
.play-chapter-work
.work-title
{
margin-top
:
-20px
;
margin-bottom
:
10px
}
.play
.play-chapter-work
.area-btns
{
margin
:
20px
-25px
0
;
border-top
:
1px
solid
#eaeaea
;
padding-top
:
20px
}
.play
.play-chapter-exam
{
padding
:
25px
}
.play
.play-chapter-exam
li
{
position
:
relative
;
margin-top
:
15px
;
border-bottom
:
1px
solid
#b49441
}
.play
.play-chapter-exam
.exam-title
{
margin
:
-20px
0
10px
25px
}
.play
.play-chapter-exam
.wrong
{
color
:
#d80000
}
.play
.play-chapter-exam
.correct
{
color
:
#090
}
.play
.play-chapter-exam
.answer
{
position
:
absolute
;
right
:
25px
;
bottom
:
10px
}
.play
.play-chapter-exam
.result
{
float
:
right
;
margin-top
:
-20px
;
margin-right
:
-20px
;
font-size
:
16px
;
font-weight
:
700
}
.play
dd
,
.play
dl
,
.play
dt
,
.play
li
,
.play
ol
,
.play
ul
{
margin
:
0
;
padding
:
0
;
list-style
:
none
}
.play
.edit_html
p
{
padding
:
0
;
margin
:
0
0
15px
}
.play
.play-paper-step
{
font-weight
:
700
;
font-size
:
16px
;
margin
:
30px
-20px
15px
;
padding-bottom
:
10px
;
border-bottom
:
1px
dashed
#cecece
}
.play
.no-data
{
color
:
#c9c9c9
;
font-size
:
36px
;
padding
:
160px
0
;
text-align
:
center
}
.play
.hide
{
display
:
none
}
.play
.play-jiangyi
,
.play
.play-video
{
float
:
left
}
@media
(
max-width
:
768px
){
.play
.left-content
{
min-width
:
0
;
right
:
0
}
.play
.play-back
{
margin
:
0
}
.play
.play-chapter-work
{
padding
:
25px
0
;
margin-right
:
-20px
}
.play
.play-read-files
{
padding
:
30px
0
;
margin
:
0
-20px
}
.play
.switch
{
top
:
80%
}
.play
.play-paper-body
{
padding
:
15px
25px
25px
}
.play
.play-paper-step
{
margin
:
30px
0
15px
}}
.exam
.q-group
.q-title
p
{
padding
:
0
;
margin
:
0
}
.exam
.el-radio
+
.el-radio
{
margin-left
:
0
}
.exam
.el-radio__input.is-disabled
+
span
.el-radio__label
{
color
:
inherit
}
.exam
.el-checkbox
+
.el-checkbox
{
margin-left
:
0
}
.exam
.el-checkbox__input.is-disabled
+
span
.el-checkbox__label
{
color
:
inherit
}
.exam
.el-checkbox__label
,
.exam
.el-radio__label
{
white-space
:
normal
}
.right-ctrl
[
data-v-338df2c4
]
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
right
:
0
;
z-index
:
200
;
width
:
350px
;
background
:
#212121
;
border-left
:
19px
solid
#1b1b1b
}
.right-ctrl
.ctrl-arrow
[
data-v-338df2c4
]
{
position
:
absolute
;
top
:
0
;
left
:
-19px
;
bottom
:
0
;
width
:
19px
;
height
:
100%
;
font-size
:
14px
;
color
:
#969696
;
cursor
:
pointer
}
.right-ctrl
.ctrl-arrow
span
[
data-v-338df2c4
]
{
position
:
absolute
;
top
:
50%
;
left
:
0
;
width
:
19px
;
margin-top
:
-10px
;
text-align
:
center
;
color
:
#fff
}
.right-ctrl
.ctrl-pl
[
data-v-338df2c4
]
{
position
:
relative
;
height
:
100%
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
[
data-v-338df2c4
]
{
margin
:
0
;
padding
:
15px
0
;
line-height
:
1.6
;
background-color
:
#232323
;
overflow
:
hidden
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
li
[
data-v-338df2c4
]
{
float
:
left
;
position
:
relative
;
width
:
50%
;
padding
:
0
;
font-size
:
16px
;
color
:
#909090
;
text-align
:
center
;
list-style
:
none
;
cursor
:
pointer
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
li
a
[
data-v-338df2c4
]
{
color
:
#909090
;
text-decoration
:
none
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
li
.on
a
[
data-v-338df2c4
]
{
color
:
#b49441
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
.br-l-line
[
data-v-338df2c4
]
{
border-left
:
1px
solid
#3f3f3f
}
.right-ctrl
.ctrl-pl
.pl-tab-bd
[
data-v-338df2c4
]
{
height
:
94%
}
.tab-pane
[
data-v-1d8953da
]
{
display
:
block
;
height
:
100%
;
overflow
:
auto
}
.tab-pane
.chapter-list
[
data-v-1d8953da
]
{
margin
:
0
;
padding
:
0
;
line-height
:
1.6
;
overflow
:
hidden
}
.tab-pane
.chapter-list
.chapter-item
h4
[
data-v-1d8953da
]
{
padding
:
10px
22px
;
margin
:
0
;
font-size
:
15px
;
color
:
#b0b0b0
;
background-color
:
#2f2f2f
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
[
data-v-1d8953da
]
{
margin
:
0
;
padding
:
0
;
line-height
:
1.6
;
overflow
:
hidden
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
{
position
:
relative
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
.on
[
data-v-1d8953da
]
{
background
:
#3c3c3c
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
.on
a
[
data-v-1d8953da
]
{
color
:
#b49441
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
:hover
{
background
:
#3c3c3c
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
:before
{
display
:
block
;
content
:
""
;
position
:
absolute
;
left
:
13px
;
top
:
16px
;
z-index
:
10
;
width
:
18px
;
height
:
18px
;
background
:
#5b5b5b
;
border
:
2px
solid
#5b5b5b
;
-webkit-border-radius
:
50%
;
-moz-border-radius
:
50%
;
border-radius
:
50%
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
li
[
data-v-1d8953da
]
:after
{
display
:
block
;
content
:
""
;
position
:
absolute
;
left
:
22px
;
top
:
0
;
z-index
:
5
;
width
:
1px
;
height
:
100px
;
background
:
#616161
}
.tab-pane
.chapter-list
.chapter-item
.knot-list
.knot-name
[
data-v-1d8953da
]
{
display
:
block
;
padding
:
15px
35px
15px
40px
;
font-size
:
14px
;
color
:
#909090
;
text-decoration
:
none
;
cursor
:
pointer
}
.tab-pane
.chapter-list
.chapter-item
.el-icon
[
data-v-1d8953da
]
{
position
:
absolute
;
font-size
:
16px
;
right
:
10px
;
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
-moz-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
-o-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
)}
.tab-pane
[
data-v-8ec544e6
]
{
display
:
block
;
height
:
100%
;
overflow
:
auto
}
.tab-pane
.lecture-list
[
data-v-8ec544e6
]
{
padding
:
8px
16px
}
.tab-pane
.lecture-list
li
[
data-v-8ec544e6
]
{
padding
:
8px
16px
;
cursor
:
pointer
;
list-style
:
none
}
.tab-pane
.lecture-list
li
.on
[
data-v-8ec544e6
]
{
background
:
#888
}
.tab-pane
.lecture-list
li
img
[
data-v-8ec544e6
]
{
width
:
100%
}
.play
{
overflow
:
hidden
;
position
:
fixed
;
top
:
0
;
z-index
:
800
;
width
:
100%
;
height
:
100%
;
background-color
:
#3f3f3f
;
color
:
#a0a0a0
}
.play
.left-content
{
position
:
absolute
;
right
:
350px
;
top
:
0
;
left
:
0
;
bottom
:
0
;
min-width
:
705px
;
height
:
100%
}
.play.sidebar-hide
.left-content
{
right
:
0
}
.play
.play-top
{
line-height
:
56px
}
.play
.play-top
p
{
font-size
:
1.5em
;
text-align
:
center
;
margin
:
0
}
.play
.play-back
{
position
:
absolute
;
top
:
6px
;
left
:
10px
;
width
:
40px
;
height
:
40px
;
overflow
:
hidden
;
color
:
#fff
;
font-size
:
24px
;
line-height
:
40px
;
text-align
:
center
}
.play
.play-content
{
position
:
absolute
;
top
:
56px
;
bottom
:
0
;
left
:
0
;
right
:
0
}
.play
.play-content-video
{
height
:
100%
}
.play
.play-center
.text-error
{
font-size
:
.875em
;
line-height
:
1.5em
}
.play
.play-video-hide
{
visible
:
hidden
;
overflow
:
hidden
;
width
:
0
}
.play
.play-video-init-center
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
margin
:
-180px
0
0
-275px
}
.play
.play-ppt
{
position
:
relative
;
width
:
550px
;
height
:
363.375px
;
background-color
:
#000
}
.play
.play-ppt-img
{
width
:
100%
;
height
:
100%
}
.play
.play-controls
{
position
:
absolute
;
bottom
:
0
;
left
:
0
;
right
:
0
;
height
:
44px
;
line-height
:
42px
;
padding
:
0
14px
;
background-color
:
#000
}
.play
.play-controls
.fl
i
{
color
:
#8c8c8b
}
.play
.play-page
{
position
:
absolute
;
left
:
50%
;
margin-left
:
-75px
;
color
:
#fff
;
width
:
150px
;
text-align
:
center
;
font-size
:
.875em
}
.play
.play-page
.play-now
{
color
:
#d29f29
}
.play
.play-amazing
{
float
:
right
}
.play
.play-amazing
i
{
color
:
#fff
;
margin
:
0
10px
;
cursor
:
pointer
}
.play
.play-amazing
i
.active
,
.play
.play-amazing
i
:hover
{
color
:
#d29f29
}
.play
.play-amazing
.icon-rotate
{
font-size
:
1.125em
}
.play
.play-footer
{
position
:
absolute
;
bottom
:
0
;
left
:
0
;
right
:
0
;
z-index
:
200
;
padding
:
18px
20px
15px
}
.play
.play-footer
a
:hover
{
color
:
#a0a0a0
}
.play
.play-state
{
display
:
inline-block
;
color
:
#a0a0a0
;
padding-left
:
25px
;
font-size
:
14px
;
line-height
:
18px
;
margin
:
0
20px
;
background
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAGLCAMAAAFly2nyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyMDA3NTdkYS1iNTY5LTQ5MGEtYTA4MS02YWNlYWZlMGM2YzMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg4NUE2RkFFMkVCMTFFN0FBREZBNkNDMUEwRTI3OTkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg4NUE2RjlFMkVCMTFFN0FBREZBNkNDMUEwRTI3OTkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzU0NDA3MDYtMWE4Mi00MDk4LTg2NWYtMzYwMmY4NWY1NThkIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIwMDc1N2RhLWI1NjktNDkwYS1hMDgxLTZhY2VhZmUwYzZjMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn/9WLEAAAGAUExURV9WQIWFhbGSQVVVVXR0dFNTU7SUQUBAQE5OTkFBQU9PT0JCQp6enpiYmFFMP6mMQUBAP5aWllFRUWpqaqqNQZGRkVhYWEpKSouLi5CQkJqBQYGBgXp6emVlZXJkQFJNP52dnUJBP5OTk6GGQYKCgpubm2hoaFlZWZWVlWFhYUtLS319fXl5eZ+fn4CAgFtTP0NDQ1xUP4ZyQE1NTUREREVFRUZGRpmZmVtbW2xsbIODg1paWlxcXFdXV3FjQGdnZ0hISHNzc1BQUF5eXmlpaYiIiIl1QHNlQKKHQZeXl2FYQF1dXWBXQFZWVl9fX0dHR0pHP1hRP6+QQYaGhnt7e0NCP6uOQYVyQFVPP6CFQWRkZHpqQHFxcZKSkqOIQV5VQH5tQG9iQI+Pj0VDP5d/QKSIQaSJQaCGQXBjQFJSUm9vb35+fmNjY2tra2hdQI14QEVEP4mJiWZbQFlSP6iLQV1VQHZ2dpycnIqKioRxQJR9QE5KP5SUlHx8fKCgoD8/P7j7iVMAAAVKSURBVHjabM3RCYAwDEXRR6GBQkEcoUMIDuFMuatrBW2DflwCB8KTg9wRjLZuRMu9HO3xYBVViiiTJZRoog3b3e+Ndfo9zGTXXfjuvPmvnwKIAUyhII16LIJwxIrMFQOREpIwbjyIlFKGcoEORdYIdCNWA+swzOeqBwgghjobaDhiJYHhjkeW1ZQVn6w4iPSvx22CBIN1vWR9Eg5ZKQafeuX6SGyuQiIxZdmQyHoCZB0kvrDKWkLZsvX1AAEEJE3BKsHqBeuIMBndFkg419WTqpcdRLKCw1mIlUS9kNQPzhccEL1Em6ATCyTVoCJZQJKdG8x24eIgqDc8DkjaQUWigaRAKJgtJ89HSG8dEFiA2XUYpCcBvWxA4ANms2GQ/CSHG2pogNKAngrYhZyQPM5OpF5RCFsBTGqASF2QCEAAgVOvKzQh54K8DRcVQkrY9VRi1rnWg5MhNIiFoUwnuChVbQOmsnpQggMxHVhZWVnhogas1LdNCERCrQACThiTHSZKVdvqbe2BFLs5kCkDFuGtFwbHsqCJTX09F1ABL1hYnYsqthkmAimBMCDTCCwiUi9Xz+ABTNAFXvX18kAFIhCF8lRJJTBWHWEm5baxwVhshJnUjUJimN4wZkidNIQZXGeFUFAHLgegaus0qWWxMy+SqFYdjKkqhqEWIIAQcQFiccGKjxpYQaKAKFI0kQoXCVRjBgkL6j4ORBmlhCitFGAsP6hYIWapNQhYrMgsbliR5wQr/DIRxaAZUoHINSjjA8IyQypX2RElrDGcBfOlOHJJyzpo/CEWy6MDZvECq4J6NVtgAxoip1bPIAyitYTqZRhA7Zp6xvp6HgaOemZ/JSBHiSGpvl4UKM5uzcAhBi3kGeo5JDkMXCQGwB+lcUzhYJaIAJCyMwS2/CFyGfUMciC6OqLeiEERxKqqr2di4KsPDEgDctIYIuvrPYBtLwEGBr54aPXBUM+nzJcsJ0V3fwjWQYAgUo6nhOULZTHT2R/8bBAAaVIiuhnksvShLP1BWgqQx/KGserqUGtMBkTVCWPUM1jVqcD0ZsOqW1DNqwczhWVgy/s6cbiYAitc1twZrk4U1lnk0IWKialC1UVpYJgHEKAd8+ppGIaisBlR0owOaCmFlkIZpZRd9i6jZYgtIQQ8gNgSAgkQ4wH7r2PHcbHjIt4Qorkvib5c+1i2ont86bWaxJ0lssG8CSFX2WG0w/lt+LxclcxwjLyYEiNeNVHGaiCPcSyUYb6W3z9onhgSI9EclVhVTswza0dc8x0hWcPb+/JMYWZqrE5kapRdJx3myyk0+DxDkxkbLGugbW/vf2AqexP2TzNkhmNxVGaKcrvgYnVjrrH6oKTh7f23TFuJ1euGodfHVjTKNCv9lZK2MAXpWOnkUOYEqbE0AimdEfWNuGAthUAnKcT5LWym1hbsSmIikLUtcr4520uzl7NYo9FuCdY4f+U8dcOz1rwjo3aNz5bWPB1Pma+R+HRlnIf/or2YbGtLFtsv/JT5w/x1PYwpANfBErk/RsFrgMBlkpFgU5FMdInAHjHzp48IPQV2yJfzagQKttU/fSi80+yWAtZouiGvu4cUnVFXPxQ+c2SCcwdDX63I4avqvdVhUAn1fJPVWue5GeJ6V+X6Wb/LJtagGKGJf30egQHWyXOeAwGuu1eu4/e7bJ1d6lg8r3t15m+yWggzIovj/6df5VmWeHQfP3YKkw6fMN8+RlM+t0a/O9HW+BAndNZChOW71cxGBZ9Roq9bk/MaOlkDmx+rd/clpPl6InBSZIrVuiWOXWodV0SNSRjpca3lE672gHeiUdU0AAAAAElFTkSuQmCC)
no-repeat
0
0
;
cursor
:
pointer
}
.play
.play-state
a
{
color
:
#a0a0a0
;
text-decoration
:
none
}
.play
.play-state-prev
{
background-position
:
0
2px
}
.play
.play-state-prev-disable
{
background-position
:
0
-78px
;
color
:
#666
}
.play
.play-state-next
{
background-position
:
0
-38px
}
.play
.play-state-next-disable
{
background-position
:
0
-118px
;
color
:
#666
}
.play
.play-state-check
{
background-position
:
0
-160px
}
.play
.play-state-check-active
{
background-position
:
0
-200px
;
color
:
#b19241
}
.play
.play-state-ppt
{
background-position
:
0
-240px
}
.play
.play-state-ppt-active
{
background-position
:
0
-280px
;
color
:
#b19241
}
.play
.play-state-next-disable
:hover
,
.play
.play-state-prev-disable
:hover
{
color
:
#666
!important
}
.play
.switch
{
display
:
block
;
width
:
36px
;
height
:
125px
;
position
:
absolute
;
right
:
0
;
top
:
50%
;
text-align
:
center
;
margin
:
-63px
0
0
;
z-index
:
998
;
cursor
:
pointer
}
.play
.switch
a
{
color
:
#a0a0a0
;
text-decoration
:
none
;
font-size
:
14px
;
line-height
:
2
;
margin-bottom
:
20px
}
.play
.switch
a
i
{
font-size
:
24px
;
padding
:
5px
;
background
:
#666
;
border-radius
:
4px
}
.play
.play-paper
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
right
:
0
;
overflow
:
auto
;
background-color
:
#e5e5e5
}
.play
.play-paper-body
{
min-height
:
500px
;
margin
:
25px
;
padding
:
15px
45px
25px
;
color
:
#313131
;
box-shadow
:
0
0
2px
rgba
(
0
,
0
,
0
,
.05
);
background-color
:
#f2f2f2
}
.play
.play-paper-title
{
margin
:
0
10px
;
text-align
:
center
}
.play
.play-paper-title
div
{
padding-bottom
:
3px
;
display
:
inline-block
;
border-bottom
:
1px
solid
#707070
}
.play
.play-paper-title
h3
{
padding
:
0
0
5px
;
margin
:
0
;
display
:
inline-block
;
font-size
:
20px
;
border-bottom
:
3px
solid
#707070
}
.play
.play-paper-body
.help
{
color
:
#999
;
font-size
:
12px
}
.play
.play-paper-body
.help-file
{
margin-top
:
-10px
}
.play
.play-paper-body
.area-btns
{
margin
:
20px
0
}
.play
.play-paper-body
.area-btns
.btn
{
padding
:
6px
25px
}
.play
.play-paper-body
.area-btns
.help
{
margin-top
:
10px
;
font-size
:
14px
}
.play
.play-paper-body
.area-btns
.help-info
{
display
:
inline-block
;
vertical-align
:
middle
}
.play
.play-paper-body
.webuploader-btn
.upbtn
{
color
:
#b49441
;
text-decoration
:
underline
;
padding
:
3px
15px
;
font-size
:
.9em
;
display
:
inline-block
}
.play
.play-paper-body
.webuploader-btn
.loading
.fa-spin
{
font-size
:
1.2em
!important
}
.play
.play-paper-body
label
{
font-weight
:
400
}
.play
.play-paper-body
input
{
vertical-align
:
middle
}
.play
.play-paper-check
{
margin-top
:
20px
;
padding
:
20px
;
border
:
1px
solid
#dedede
}
.play
.play-paper-check
h4
{
font-size
:
16px
;
margin
:
0
0
10px
}
.play
.play-paper-check-item
{
padding-left
:
3em
}
.play
.play-paper-check-item
b
{
margin-left
:
-3em
;
margin-top
:
1px
}
.play
.play-paper-check-item
.edit_html
,
.play
.play-paper-check-item
b
{
display
:
inline-block
;
vertical-align
:
top
}
.play
.play-read-files
{
padding
:
30px
;
margin
:
0
}
.play
.play-read-files
li
{
font-size
:
16px
;
padding
:
20px
30px
;
margin-bottom
:
10px
;
background-color
:
#fff
;
list-style
:
none
}
.play
.play-read-files
li
a
{
color
:
#333
;
text-decoration
:
none
}
.play
.play-read-files
li
a
:hover
{
color
:
#b49441
}
.play
.play-chapter-work
{
padding
:
25px
}
.play
.play-chapter-work
.work-number
{
margin-left
:
-25px
}
.play
.play-chapter-work
.work-title
{
margin-top
:
-20px
;
margin-bottom
:
10px
}
.play
.play-chapter-work
.area-btns
{
margin
:
20px
-25px
0
;
border-top
:
1px
solid
#eaeaea
;
padding-top
:
20px
}
.play
.play-chapter-exam
{
padding
:
25px
}
.play
.play-chapter-exam
li
{
position
:
relative
;
margin-top
:
15px
;
border-bottom
:
1px
solid
#b49441
}
.play
.play-chapter-exam
.exam-title
{
margin
:
-20px
0
10px
25px
}
.play
.play-chapter-exam
.wrong
{
color
:
#d80000
}
.play
.play-chapter-exam
.correct
{
color
:
#090
}
.play
.play-chapter-exam
.answer
{
position
:
absolute
;
right
:
25px
;
bottom
:
10px
}
.play
.play-chapter-exam
.result
{
float
:
right
;
margin-top
:
-20px
;
margin-right
:
-20px
;
font-size
:
16px
;
font-weight
:
700
}
.play
dd
,
.play
dl
,
.play
dt
,
.play
li
,
.play
ol
,
.play
ul
{
margin
:
0
;
padding
:
0
;
list-style
:
none
}
.play
.edit_html
p
{
padding
:
0
;
margin
:
0
0
15px
}
.play
.play-paper-step
{
font-weight
:
700
;
font-size
:
16px
;
margin
:
30px
-20px
15px
;
padding-bottom
:
10px
;
border-bottom
:
1px
dashed
#cecece
}
.play
.no-data
{
color
:
#c9c9c9
;
font-size
:
36px
;
padding
:
160px
0
;
text-align
:
center
}
.play
.hide
{
display
:
none
}
.play
.play-jiangyi
,
.play
.play-video
{
float
:
left
}
@media
(
max-width
:
768px
){
.play
.left-content
{
min-width
:
0
;
right
:
0
}
.play
.play-back
{
margin
:
0
}
.play
.play-chapter-work
{
padding
:
25px
0
;
margin-right
:
-20px
}
.play
.play-read-files
{
padding
:
30px
0
;
margin
:
0
-20px
}
.play
.switch
{
top
:
80%
}
.play
.play-paper-body
{
padding
:
15px
25px
25px
}
.play
.play-paper-step
{
margin
:
30px
0
15px
}}
.exam
.q-group
.q-title
p
{
padding
:
0
;
margin
:
0
}
.exam
.el-radio
+
.el-radio
{
margin-left
:
0
}
.exam
.el-radio__input.is-disabled
+
span
.el-radio__label
{
color
:
inherit
}
.exam
.el-checkbox
+
.el-checkbox
{
margin-left
:
0
}
.exam
.el-checkbox__input.is-disabled
+
span
.el-checkbox__label
{
color
:
inherit
}
.exam
.el-checkbox__label
,
.exam
.el-radio__label
{
white-space
:
normal
}
.right-ctrl
[
data-v-594f4eac
]
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
right
:
0
;
z-index
:
200
;
width
:
350px
;
background
:
#212121
;
border-left
:
19px
solid
#1b1b1b
}
.right-ctrl
.ctrl-arrow
[
data-v-594f4eac
]
{
position
:
absolute
;
top
:
0
;
left
:
-19px
;
bottom
:
0
;
width
:
19px
;
height
:
100%
;
font-size
:
14px
;
color
:
#969696
;
cursor
:
pointer
}
.right-ctrl
.ctrl-arrow
span
[
data-v-594f4eac
]
{
position
:
absolute
;
top
:
50%
;
left
:
0
;
width
:
19px
;
margin-top
:
-10px
;
text-align
:
center
;
color
:
#fff
}
.right-ctrl
.ctrl-pl
[
data-v-594f4eac
]
{
position
:
relative
;
height
:
100%
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
[
data-v-594f4eac
]
{
margin
:
0
;
padding
:
15px
0
;
line-height
:
1.6
;
background-color
:
#232323
;
overflow
:
hidden
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
li
[
data-v-594f4eac
]
{
float
:
left
;
position
:
relative
;
width
:
50%
;
padding
:
0
;
font-size
:
16px
;
color
:
#909090
;
text-align
:
center
;
list-style
:
none
;
cursor
:
pointer
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
li
a
[
data-v-594f4eac
]
{
color
:
#909090
;
text-decoration
:
none
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
li
.on
a
[
data-v-594f4eac
]
{
color
:
#b49441
}
.right-ctrl
.ctrl-pl
.pl-tab-hd
.br-l-line
[
data-v-594f4eac
]
{
border-left
:
1px
solid
#3f3f3f
}
.right-ctrl
.ctrl-pl
.pl-tab-bd
[
data-v-594f4eac
]
{
height
:
94%
}
\ No newline at end of file
\ No newline at end of file
client-dist/resources/6.
79342c91
.js
→
client-dist/resources/6.
405863fa
.js
浏览文件 @
3d53d567
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
6
],{
267
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
414
),
s
=
r
(
341
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
r
(
400
);
var
n
=
r
(
1
),
c
=
Object
(
n
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"338df2c4"
,
null
);
c
.
options
.
__file
=
"index.vue"
,
e
.
default
=
c
.
exports
},
341
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
342
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
i
);
e
.
default
=
s
.
a
},
342
:
function
(
t
,
e
,
r
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
n
=
i
(
r
(
72
)),
c
=
i
(
r
(
73
)),
a
=
i
(
r
(
396
)),
s
=
i
(
r
(
398
));
function
i
(
t
){
return
t
&&
t
.
__esModule
?
t
:{
default
:
t
}}
e
.
default
=
{
components
:{
sideChapterList
:
a
.
default
,
sideChapterPpt
:
s
.
default
},
props
:{
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
},
id
:{
type
:
String
,
require
:
!
1
}},
data
:
function
(){
return
{
SIDEBAR_CHAPTER
:
"sidebar_chapter"
,
SIDEBAR_PPT
:
"sidebar_ppt"
,
state
:{
sideBar
:
"sidebar_chapter"
,
isChapterVideo
:
!
1
},
chapterList
:{},
pptList
:{},
courseInfo
:[],
courseWork
:{},
curChapterName
:
""
,
chapterId
:
""
,
chapterRead
:{},
chapterWork
:{},
chapterExam
:{},
chapterVideo
:{},
chapterPpts
:[]}},
beforeRouteUpdate
:
function
(
t
,
e
,
r
){
var
a
=
this
;
if
(
"chapterVideo"
===
t
.
name
){
this
.
state
.
isChapterVideo
=!
0
;
var
s
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getCurrentChapterDetail
(
t
.
params
.
id
).
then
(
function
(
t
){
a
.
pptList
=
t
.
image
,
a
.
chapterPpts
=
t
.
rData
.
ppts
}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
s
.
close
()})}
else
this
.
state
.
isChapterVideo
=!
1
;
var
i
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getChapterList
(
t
.
params
.
cid
,
t
.
params
.
sid
,
t
.
params
.
id
).
then
(
function
(
e
){
a
.
chapterList
=
e
.
json
,
a
.
courseInfo
=
e
.
courseInfo
,
a
.
courseWork
=
e
.
courseWork
,
a
.
curChapterName
=
e
.
curJson
.
name
,
a
.
chapterId
=
e
.
curJson
.
chapterId
,
2
===
e
.
curJson
.
type
&&
n
.
default
.
chapterAction
.
getProgress
(
a
.
id
,
c
.
default
.
other
.
getIdt
(),
a
.
sid
).
then
(
function
(
t
){
a
.
chapterVideo
=
2
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterVideo
||
{},
a
.
chapterVideo
.
progress
=
t
}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}),
a
.
chapterRead
=
4
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterRead
||
{},
a
.
chapterExam
=
3
===
e
.
curJson
.
type
&&
1
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
homework
||
{},
a
.
chapterWork
=
3
===
e
.
curJson
.
type
&&
2
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
chapterWork
||
{}}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
i
.
close
()}),
r
()},
mounted
:
function
(){
var
r
=
this
;
if
(
"chapterVideo"
===
this
.
$route
.
name
){
this
.
state
.
isChapterVideo
=!
0
;
var
t
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getCurrentChapterDetail
(
this
.
id
).
then
(
function
(
t
){
r
.
pptList
=
t
.
image
,
r
.
chapterPpts
=
t
.
rData
.
ppts
}).
catch
(
function
(
t
){
r
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
t
.
close
()})}
var
e
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getChapterList
(
this
.
cid
,
this
.
sid
,
this
.
id
).
then
(
function
(
e
){
r
.
chapterList
=
e
.
json
,
r
.
courseInfo
=
e
.
courseInfo
,
r
.
courseWork
=
e
.
courseWork
,
r
.
curChapterName
=
e
.
curJson
.
name
,
r
.
chapterId
=
e
.
curJson
.
chapterId
,
2
===
e
.
curJson
.
type
&&
n
.
default
.
chapterAction
.
getProgress
(
r
.
id
,
c
.
default
.
other
.
getIdt
(),
r
.
sid
).
then
(
function
(
t
){
r
.
chapterVideo
=
2
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterVideo
||
{},
r
.
chapterVideo
.
progress
=
t
}).
catch
(
function
(
t
){
r
.
$message
.
error
(
t
.
message
)}),
r
.
chapterRead
=
4
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterRead
||
{},
r
.
chapterExam
=
3
===
e
.
curJson
.
type
&&
1
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
homework
||
{},
r
.
chapterWork
=
3
===
e
.
curJson
.
type
&&
2
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
chapterWork
||
{}}).
catch
(
function
(
t
){
r
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
e
.
close
()})},
methods
:{
changeSideBar
:
function
(
t
){
this
.
state
.
sideBar
=
t
},
handlePlayTime
:
function
(
t
){
this
.
$refs
.
sidePpt
&&
this
.
$refs
.
sidePpt
.
setIndexByPoint
(
t
)},
handleClickSidePpt
:
function
(
t
){
var
e
=
this
.
chapterPpts
||
[];
if
(
e
.
length
>
t
&&
this
.
$refs
.
comTotalChapter
){
var
r
=
e
[
t
];
this
.
$refs
.
comTotalChapter
.
setVideoTime
(
r
.
ppt_point
)}},
updateProgress
:
function
(
r
){
var
e
=
this
;
if
(
r
.
cpt
){
for
(
var
a
=
[],
t
=
0
;
t
<
r
.
ps
.
length
;
t
++
)
a
[
t
]
=
r
.
ps
[
t
];
n
.
default
.
chapterAction
.
updateProgress
({
d
:
c
.
default
.
other
.
getIdt
(),
i
:
c
.
default
.
other
.
getIdt
(),
c
:
this
.
cid
,
s
:
this
.
sid
,
v
:
this
.
id
,
_p
:
parseInt
(
r
.
pt
),
_m
:
parseInt
(
r
.
mpt
),
_c
:
parseInt
(
r
.
cpt
),
ps
:
a
.
join
(
","
)}).
then
(
function
(
t
){
if
(
t
.
success
)
for
(
var
e
=
0
;
e
<
a
.
length
;
e
++
)
r
.
ps
.
shift
()}).
catch
(
function
(
t
){
e
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){})}}}}},
343
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
344
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
i
);
e
.
default
=
s
.
a
},
344
:
function
(
t
,
e
,
r
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
}),
e
.
default
=
{
props
:{
list
:{
type
:
Object
,
require
:
!
1
},
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
}},
methods
:{
jumpToOtherVA
:
function
(
t
){
var
e
=
t
.
target
.
dataset
,
r
=
this
.
sid
,
a
=
this
.
cid
,
s
=
e
.
vid
;
if
(
!
e
.
hasva
){
var
i
=
e
.
index
,
n
=
e
.
index1
,
c
=
this
.
list
.
course
[
i
];
return
c
&&
c
.
chapters
[
n
]?
void
(
"course_info"
===
c
.
chapters
[
n
].
id
?
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/course-info/course_info"
}):
"course_work"
===
c
.
chapters
[
n
].
id
?
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/course-work/course_work"
}):
3
===
c
.
chapters
[
n
].
type
?
1
===
c
.
chapters
[
n
].
work_type
?
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-exam/"
+
s
}):
2
===
c
.
chapters
[
n
].
work_type
&&
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-work/"
+
s
}):
4
===
c
.
chapters
[
n
].
type
&&
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-read/"
+
s
})):
void
this
.
$message
.
error
(
"系统未知错误,001"
)}
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-video/"
+
s
})}}}},
345
:
function
(
t
,
e
,
r
){},
346
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
347
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
i
);
e
.
default
=
s
.
a
},
347
:
function
(
t
,
e
,
r
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
}),
e
.
default
=
{
props
:{
ppt
:{
type
:
Object
,
require
:
!
1
}},
methods
:{
setIndexByPoint
:
function
(
t
){
for
(
var
e
=
(
this
.
ppt
.
imgUrls
||
[]).
length
,
r
=
0
;
r
<
e
&&!
(
t
<
this
.
ppt
.
timeArr
[
r
]);
r
++
);
this
.
ppt
.
selectIndex
!==
r
-
1
&&
(
this
.
ppt
.
selectIndex
=
r
-
1
)},
onClickPpt
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
.
index
-
0
;
this
.
ppt
.
selectIndex
!==
e
&&
(
this
.
ppt
.
selectIndex
=
e
,
this
.
$emit
(
"handleClickPpt"
,
e
))}}}},
348
:
function
(
t
,
e
,
r
){},
349
:
function
(
t
,
e
,
r
){},
396
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
437
),
s
=
r
(
343
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
r
(
397
);
var
n
=
r
(
1
),
c
=
Object
(
n
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"1d8953da"
,
null
);
c
.
options
.
__file
=
"sideChapterList.vue"
,
e
.
default
=
c
.
exports
},
397
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
r
(
345
);
r
.
n
(
a
).
a
},
398
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
440
),
s
=
r
(
346
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
r
(
399
);
var
n
=
r
(
1
),
c
=
Object
(
n
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"8ec544e6"
,
null
);
c
.
options
.
__file
=
"sideChapterPpt.vue"
,
e
.
default
=
c
.
exports
},
399
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
r
(
348
);
r
.
n
(
a
).
a
},
400
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
r
(
349
);
r
.
n
(
a
).
a
},
414
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
r
=
e
.
_self
.
_c
||
t
;
return
r
(
"div"
,{
class
:[
"play"
,
e
.
state
.
sideBar
?
""
:
"sidebar-hide"
]},[
r
(
"div"
,{
staticClass
:
"left-content"
},[
r
(
"div"
,{
staticClass
:
"play-top cl"
,
style
:
e
.
state
.
sideBar
?{}:{
marginRight
:
0
}},[
r
(
"router-link"
,{
staticClass
:
"router-link-class"
,
attrs
:{
to
:{
path
:
"/app/my-learn/course-detail/"
+
e
.
sid
+
"/"
+
e
.
cid
}}},[
r
(
"i"
,{
staticClass
:
"play-back el-icon-arrow-left"
})]),
e
.
_v
(
" "
),
r
(
"p"
,[
e
.
_v
(
e
.
_s
(
e
.
chapterList
.
title
))])],
1
),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"play-content"
},[
r
(
"router-view"
,{
ref
:
"comTotalChapter"
,
attrs
:{
chapterName
:
e
.
curChapterName
,
chapterId
:
e
.
chapterId
,
courseInfo
:
e
.
courseInfo
,
courseWork
:
e
.
courseWork
,
chapterRead
:
e
.
chapterRead
,
chapterWork
:
e
.
chapterWork
,
chapterExam
:
e
.
chapterExam
,
chapterVideo
:
e
.
chapterVideo
,
ppts
:
e
.
chapterPpts
},
on
:{
handlePlayTime
:
e
.
handlePlayTime
,
updateProgress
:
e
.
updateProgress
}})],
1
)]),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"right-ctrl"
,
style
:{
right
:(
e
.
state
.
sideBar
?
0
:
-
388
)
+
"px"
}},[
r
(
"p"
,{
staticClass
:
"ctrl-arrow"
,
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
""
)}}},[
r
(
"span"
,[
e
.
_v
(
">"
)])]),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"ctrl-pl"
},[
r
(
"ul"
,{
staticClass
:
"pl-tab-hd"
},[
r
(
"li"
,{
class
:[
e
.
state
.
sideBar
===
e
.
SIDEBAR_CHAPTER
?
"on"
:
""
]},[
r
(
"a"
,{
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_CHAPTER
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_CHAPTER
)}}},[
e
.
_v
(
"章节"
)])]),
e
.
_v
(
" "
),
e
.
state
.
isChapterVideo
?[
r
(
"li"
,{
class
:[
"br-l-line"
,
e
.
state
.
sideBar
===
e
.
SIDEBAR_PPT
?
"on"
:
""
]},[
r
(
"a"
,{
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_PPT
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_PPT
)}}},[
e
.
_v
(
"讲义"
)])])]:
e
.
_e
()],
2
),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"pl-tab-bd"
},[
e
.
state
.
sideBar
===
e
.
SIDEBAR_CHAPTER
?[
r
(
"side-chapter-list"
,{
attrs
:{
list
:
e
.
chapterList
,
sid
:
e
.
sid
,
cid
:
e
.
cid
}})]:
e
.
_e
(),
e
.
_v
(
" "
),
e
.
state
.
sideBar
===
e
.
SIDEBAR_PPT
?[
r
(
"side-chapter-ppt"
,{
ref
:
"sidePpt"
,
attrs
:{
ppt
:
e
.
pptList
},
on
:{
handleClickPpt
:
e
.
handleClickSidePpt
}})]:
e
.
_e
()],
2
)])]),
e
.
_v
(
" "
),
e
.
state
.
sideBar
?
e
.
_e
():[
r
(
"div"
,{
staticClass
:
"switch"
},[
r
(
"a"
,{
staticClass
:
"switch-chapter"
,
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_CHAPTER
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_CHAPTER
)}}},[
r
(
"i"
,{
staticClass
:
"el-icon-self-wenjian"
}),
e
.
_v
(
" "
),
r
(
"div"
,[
e
.
_v
(
"章节"
)])]),
e
.
_v
(
" "
),
e
.
state
.
isChapterVideo
?[
r
(
"a"
,{
staticClass
:
"switch-handout"
,
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_PPT
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_PPT
)}}},[
r
(
"i"
,{
staticClass
:
"el-icon-self-PPT"
}),
e
.
_v
(
" "
),
r
(
"div"
,[
e
.
_v
(
"讲义"
)])])]:
e
.
_e
()],
2
)]],
2
)},
s
=
[];
r
.
d
(
e
,
"a"
,
function
(){
return
a
}),
r
.
d
(
e
,
"b"
,
function
(){
return
s
})},
437
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
function
(){
var
a
=
this
,
t
=
a
.
$createElement
,
s
=
a
.
_self
.
_c
||
t
;
return
s
(
"div"
,{
staticClass
:
"tab-pane"
},[
s
(
"ul"
,{
staticClass
:
"chapter-list"
},[
a
.
_l
(
a
.
list
.
course
,
function
(
t
,
r
){
return
[
s
(
"li"
,{
key
:
r
,
staticClass
:
"chapter-item"
},[
s
(
"h4"
,[
a
.
_v
(
a
.
_s
(
t
.
title
))]),
a
.
_v
(
" "
),
s
(
"ul"
,{
staticClass
:
"knot-list"
},[
a
.
_l
(
t
.
chapters
,
function
(
t
,
e
){
return
[
s
(
"li"
,{
key
:
e
,
class
:[
"knob-item"
,
t
.
id
===
a
.
list
.
currentChapterId
?
"on"
:
""
]},[
s
(
"a"
,{
staticClass
:
"knot-name"
,
attrs
:{
"data-vid"
:
t
.
id
,
"data-hasVA"
:
t
.
time
,
"data-index"
:
r
,
"data-index1"
:
e
},
on
:{
click
:
a
.
jumpToOtherVA
}},[
a
.
_v
(
a
.
_s
(
t
.
name
))]),
a
.
_v
(
" "
),
s
(
"i"
,{
class
:[
"el-icon"
,
t
.
time
?
"el-icon-self-iconset0481"
:
3
===
t
.
type
?
"el-icon-edit-outline"
:
"el-icon-self-cc-book"
]})])]})],
2
)])]})],
2
)])},
s
=
[];
r
.
d
(
e
,
"a"
,
function
(){
return
a
}),
r
.
d
(
e
,
"b"
,
function
(){
return
s
})},
440
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
function
(){
var
r
=
this
,
t
=
r
.
$createElement
,
a
=
r
.
_self
.
_c
||
t
;
return
a
(
"div"
,{
staticClass
:
"tab-pane"
},[
a
(
"ul"
,{
staticClass
:
"lecture-list"
},[
r
.
_l
(
r
.
ppt
.
imgUrls
,
function
(
t
,
e
){
return
[
a
(
"li"
,{
key
:
e
,
class
:[
e
===
r
.
ppt
.
selectIndex
?
"on"
:
""
],
attrs
:{
"data-index"
:
e
},
on
:{
click
:
r
.
onClickPpt
}},[
a
(
"img"
,{
attrs
:{
src
:
t
,
alt
:
""
}})])]})],
2
)])},
s
=
[];
r
.
d
(
e
,
"a"
,
function
(){
return
a
}),
r
.
d
(
e
,
"b"
,
function
(){
return
s
})}}]);
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
6
],{
267
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
414
),
s
=
r
(
341
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
r
(
400
);
var
n
=
r
(
1
),
c
=
Object
(
n
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"594f4eac"
,
null
);
c
.
options
.
__file
=
"index.vue"
,
e
.
default
=
c
.
exports
},
341
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
342
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
i
);
e
.
default
=
s
.
a
},
342
:
function
(
t
,
e
,
r
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
n
=
i
(
r
(
72
)),
c
=
i
(
r
(
73
)),
a
=
i
(
r
(
396
)),
s
=
i
(
r
(
398
));
function
i
(
t
){
return
t
&&
t
.
__esModule
?
t
:{
default
:
t
}}
e
.
default
=
{
components
:{
sideChapterList
:
a
.
default
,
sideChapterPpt
:
s
.
default
},
props
:{
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
},
id
:{
type
:
String
,
require
:
!
1
}},
data
:
function
(){
return
{
SIDEBAR_CHAPTER
:
"sidebar_chapter"
,
SIDEBAR_PPT
:
"sidebar_ppt"
,
state
:{
sideBar
:
"sidebar_chapter"
,
isChapterVideo
:
!
1
},
chapterList
:{},
pptList
:{},
courseInfo
:[],
courseWork
:{},
curChapterName
:
""
,
chapterId
:
""
,
chapterRead
:{},
chapterWork
:{},
chapterExam
:{},
chapterVideo
:{},
chapterPpts
:[]}},
beforeRouteUpdate
:
function
(
t
,
e
,
r
){
var
a
=
this
;
if
(
"chapterVideo"
===
t
.
name
){
this
.
state
.
isChapterVideo
=!
0
;
var
s
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getCurrentChapterDetail
(
t
.
params
.
id
).
then
(
function
(
t
){
a
.
pptList
=
t
.
image
,
a
.
chapterPpts
=
t
.
rData
.
ppts
}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
s
.
close
()})}
else
this
.
state
.
isChapterVideo
=!
1
;
var
i
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getChapterList
(
t
.
params
.
cid
,
t
.
params
.
sid
,
t
.
params
.
id
).
then
(
function
(
e
){
a
.
chapterList
=
e
.
json
,
a
.
courseInfo
=
e
.
courseInfo
,
a
.
courseWork
=
e
.
courseWork
,
a
.
curChapterName
=
e
.
curJson
.
name
,
a
.
chapterId
=
e
.
curJson
.
chapterId
,
2
===
e
.
curJson
.
type
&&
n
.
default
.
chapterAction
.
getProgress
(
a
.
id
,
c
.
default
.
other
.
getIdt
(),
a
.
sid
).
then
(
function
(
t
){
a
.
chapterVideo
=
2
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterVideo
||
{},
a
.
chapterVideo
.
progress
=
t
}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}),
a
.
chapterRead
=
4
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterRead
||
{},
a
.
chapterExam
=
3
===
e
.
curJson
.
type
&&
1
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
homework
||
{},
a
.
chapterWork
=
3
===
e
.
curJson
.
type
&&
2
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
chapterWork
||
{}}).
catch
(
function
(
t
){
a
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
i
.
close
()}),
r
()},
mounted
:
function
(){
var
r
=
this
;
if
(
"chapterVideo"
===
this
.
$route
.
name
){
this
.
state
.
isChapterVideo
=!
0
;
var
t
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getCurrentChapterDetail
(
this
.
id
).
then
(
function
(
t
){
r
.
pptList
=
t
.
image
,
r
.
chapterPpts
=
t
.
rData
.
ppts
}).
catch
(
function
(
t
){
r
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
t
.
close
()})}
var
e
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
n
.
default
.
chapterAction
.
getChapterList
(
this
.
cid
,
this
.
sid
,
this
.
id
).
then
(
function
(
e
){
r
.
chapterList
=
e
.
json
,
r
.
courseInfo
=
e
.
courseInfo
,
r
.
courseWork
=
e
.
courseWork
,
r
.
curChapterName
=
e
.
curJson
.
name
,
r
.
chapterId
=
e
.
curJson
.
chapterId
,
2
===
e
.
curJson
.
type
&&
n
.
default
.
chapterAction
.
getProgress
(
r
.
id
,
c
.
default
.
other
.
getIdt
(),
r
.
sid
).
then
(
function
(
t
){
r
.
chapterVideo
=
2
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterVideo
||
{},
r
.
chapterVideo
.
progress
=
t
}).
catch
(
function
(
t
){
r
.
$message
.
error
(
t
.
message
)}),
r
.
chapterRead
=
4
===
e
.
curJson
.
type
&&
e
.
curJson
.
chapterRead
||
{},
r
.
chapterExam
=
3
===
e
.
curJson
.
type
&&
1
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
homework
||
{},
r
.
chapterWork
=
3
===
e
.
curJson
.
type
&&
2
===
e
.
curJson
.
work_type
&&
e
.
curJson
.
chapterWork
||
{}}).
catch
(
function
(
t
){
r
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){
e
.
close
()})},
methods
:{
changeSideBar
:
function
(
t
){
this
.
state
.
sideBar
=
t
},
handlePlayTime
:
function
(
t
){
this
.
$refs
.
sidePpt
&&
this
.
$refs
.
sidePpt
.
setIndexByPoint
(
t
)},
handleClickSidePpt
:
function
(
t
){
var
e
=
this
.
chapterPpts
||
[];
if
(
e
.
length
>
t
&&
this
.
$refs
.
comTotalChapter
){
var
r
=
e
[
t
];
this
.
$refs
.
comTotalChapter
.
setVideoTime
(
r
.
ppt_point
)}},
updateProgress
:
function
(
r
){
var
e
=
this
;
if
(
r
.
cpt
){
for
(
var
a
=
[],
t
=
0
,
s
=
0
;
s
<
r
.
ps
.
length
;
s
++
){
a
[
s
]
=
r
.
ps
[
s
];
var
i
=
Math
.
floor
(
r
.
ps
[
s
])
||
1
;
i
!==
t
&&
(
r
.
map
[
i
-
1
]
+=
1
,
t
=
i
)}
n
.
default
.
chapterAction
.
updateProgress
({
d
:
c
.
default
.
other
.
getIdt
(),
i
:
c
.
default
.
other
.
getIdt
(),
c
:
this
.
cid
,
s
:
this
.
sid
,
v
:
this
.
id
,
_p
:
parseInt
(
r
.
pt
),
_m
:
parseInt
(
r
.
mpt
),
_c
:
parseInt
(
r
.
cpt
),
ps
:
a
.
join
(
","
)}).
then
(
function
(
t
){
if
(
t
.
success
)
for
(
var
e
=
0
;
e
<
a
.
length
;
e
++
)
r
.
ps
.
shift
()}).
catch
(
function
(
t
){
e
.
$message
.
error
(
t
.
message
)}).
finally
(
function
(){})}}}}},
343
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
344
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
i
);
e
.
default
=
s
.
a
},
344
:
function
(
t
,
e
,
r
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
}),
e
.
default
=
{
props
:{
list
:{
type
:
Object
,
require
:
!
1
},
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
}},
methods
:{
jumpToOtherVA
:
function
(
t
){
var
e
=
t
.
target
.
dataset
,
r
=
this
.
sid
,
a
=
this
.
cid
,
s
=
e
.
vid
;
if
(
!
e
.
hasva
){
var
i
=
e
.
index
,
n
=
e
.
index1
,
c
=
this
.
list
.
course
[
i
];
return
c
&&
c
.
chapters
[
n
]?
void
(
"course_info"
===
c
.
chapters
[
n
].
id
?
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/course-info/course_info"
}):
"course_work"
===
c
.
chapters
[
n
].
id
?
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/course-work/course_work"
}):
3
===
c
.
chapters
[
n
].
type
?
1
===
c
.
chapters
[
n
].
work_type
?
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-exam/"
+
s
}):
2
===
c
.
chapters
[
n
].
work_type
&&
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-work/"
+
s
}):
4
===
c
.
chapters
[
n
].
type
&&
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-read/"
+
s
})):
void
this
.
$message
.
error
(
"系统未知错误,001"
)}
this
.
$router
.
push
({
path
:
"/player/"
+
r
+
"/"
+
a
+
"/chapter-video/"
+
s
})}}}},
345
:
function
(
t
,
e
,
r
){},
346
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
347
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
a
[
t
]})}(
i
);
e
.
default
=
s
.
a
},
347
:
function
(
t
,
e
,
r
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
}),
e
.
default
=
{
props
:{
ppt
:{
type
:
Object
,
require
:
!
1
}},
methods
:{
setIndexByPoint
:
function
(
t
){
for
(
var
e
=
(
this
.
ppt
.
imgUrls
||
[]).
length
,
r
=
0
;
r
<
e
&&!
(
t
<
this
.
ppt
.
timeArr
[
r
]);
r
++
);
this
.
ppt
.
selectIndex
!==
r
-
1
&&
(
this
.
ppt
.
selectIndex
=
r
-
1
)},
onClickPpt
:
function
(
t
){
var
e
=
t
.
currentTarget
.
dataset
.
index
-
0
;
this
.
ppt
.
selectIndex
!==
e
&&
(
this
.
ppt
.
selectIndex
=
e
,
this
.
$emit
(
"handleClickPpt"
,
e
))}}}},
348
:
function
(
t
,
e
,
r
){},
349
:
function
(
t
,
e
,
r
){},
396
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
437
),
s
=
r
(
343
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
r
(
397
);
var
n
=
r
(
1
),
c
=
Object
(
n
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"1d8953da"
,
null
);
c
.
options
.
__file
=
"sideChapterList.vue"
,
e
.
default
=
c
.
exports
},
397
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
r
(
345
);
r
.
n
(
a
).
a
},
398
:
function
(
t
,
e
,
r
){
"use strict"
;
r
.
r
(
e
);
var
a
=
r
(
440
),
s
=
r
(
346
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
t
){
r
.
d
(
e
,
t
,
function
(){
return
s
[
t
]})}(
i
);
r
(
399
);
var
n
=
r
(
1
),
c
=
Object
(
n
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"8ec544e6"
,
null
);
c
.
options
.
__file
=
"sideChapterPpt.vue"
,
e
.
default
=
c
.
exports
},
399
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
r
(
348
);
r
.
n
(
a
).
a
},
400
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
r
(
349
);
r
.
n
(
a
).
a
},
414
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
r
=
e
.
_self
.
_c
||
t
;
return
r
(
"div"
,{
class
:[
"play"
,
e
.
state
.
sideBar
?
""
:
"sidebar-hide"
]},[
r
(
"div"
,{
staticClass
:
"left-content"
},[
r
(
"div"
,{
staticClass
:
"play-top cl"
,
style
:
e
.
state
.
sideBar
?{}:{
marginRight
:
0
}},[
r
(
"router-link"
,{
staticClass
:
"router-link-class"
,
attrs
:{
to
:{
path
:
"/app/my-learn/course-detail/"
+
e
.
sid
+
"/"
+
e
.
cid
}}},[
r
(
"i"
,{
staticClass
:
"play-back el-icon-arrow-left"
})]),
e
.
_v
(
" "
),
r
(
"p"
,[
e
.
_v
(
e
.
_s
(
e
.
chapterList
.
title
))])],
1
),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"play-content"
},[
r
(
"router-view"
,{
ref
:
"comTotalChapter"
,
attrs
:{
chapterName
:
e
.
curChapterName
,
chapterId
:
e
.
chapterId
,
courseInfo
:
e
.
courseInfo
,
courseWork
:
e
.
courseWork
,
chapterRead
:
e
.
chapterRead
,
chapterWork
:
e
.
chapterWork
,
chapterExam
:
e
.
chapterExam
,
chapterVideo
:
e
.
chapterVideo
,
ppts
:
e
.
chapterPpts
},
on
:{
handlePlayTime
:
e
.
handlePlayTime
,
updateProgress
:
e
.
updateProgress
}})],
1
)]),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"right-ctrl"
,
style
:{
right
:(
e
.
state
.
sideBar
?
0
:
-
388
)
+
"px"
}},[
r
(
"p"
,{
staticClass
:
"ctrl-arrow"
,
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
""
)}}},[
r
(
"span"
,[
e
.
_v
(
">"
)])]),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"ctrl-pl"
},[
r
(
"ul"
,{
staticClass
:
"pl-tab-hd"
},[
r
(
"li"
,{
class
:[
e
.
state
.
sideBar
===
e
.
SIDEBAR_CHAPTER
?
"on"
:
""
]},[
r
(
"a"
,{
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_CHAPTER
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_CHAPTER
)}}},[
e
.
_v
(
"章节"
)])]),
e
.
_v
(
" "
),
e
.
state
.
isChapterVideo
?[
r
(
"li"
,{
class
:[
"br-l-line"
,
e
.
state
.
sideBar
===
e
.
SIDEBAR_PPT
?
"on"
:
""
]},[
r
(
"a"
,{
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_PPT
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_PPT
)}}},[
e
.
_v
(
"讲义"
)])])]:
e
.
_e
()],
2
),
e
.
_v
(
" "
),
r
(
"div"
,{
staticClass
:
"pl-tab-bd"
},[
e
.
state
.
sideBar
===
e
.
SIDEBAR_CHAPTER
?[
r
(
"side-chapter-list"
,{
attrs
:{
list
:
e
.
chapterList
,
sid
:
e
.
sid
,
cid
:
e
.
cid
}})]:
e
.
_e
(),
e
.
_v
(
" "
),
e
.
state
.
sideBar
===
e
.
SIDEBAR_PPT
?[
r
(
"side-chapter-ppt"
,{
ref
:
"sidePpt"
,
attrs
:{
ppt
:
e
.
pptList
},
on
:{
handleClickPpt
:
e
.
handleClickSidePpt
}})]:
e
.
_e
()],
2
)])]),
e
.
_v
(
" "
),
e
.
state
.
sideBar
?
e
.
_e
():[
r
(
"div"
,{
staticClass
:
"switch"
},[
r
(
"a"
,{
staticClass
:
"switch-chapter"
,
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_CHAPTER
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_CHAPTER
)}}},[
r
(
"i"
,{
staticClass
:
"el-icon-self-wenjian"
}),
e
.
_v
(
" "
),
r
(
"div"
,[
e
.
_v
(
"章节"
)])]),
e
.
_v
(
" "
),
e
.
state
.
isChapterVideo
?[
r
(
"a"
,{
staticClass
:
"switch-handout"
,
attrs
:{
href
:
"#"
+
e
.
SIDEBAR_PPT
},
on
:{
click
:
function
(
t
){
e
.
changeSideBar
(
e
.
SIDEBAR_PPT
)}}},[
r
(
"i"
,{
staticClass
:
"el-icon-self-PPT"
}),
e
.
_v
(
" "
),
r
(
"div"
,[
e
.
_v
(
"讲义"
)])])]:
e
.
_e
()],
2
)]],
2
)},
s
=
[];
r
.
d
(
e
,
"a"
,
function
(){
return
a
}),
r
.
d
(
e
,
"b"
,
function
(){
return
s
})},
437
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
function
(){
var
a
=
this
,
t
=
a
.
$createElement
,
s
=
a
.
_self
.
_c
||
t
;
return
s
(
"div"
,{
staticClass
:
"tab-pane"
},[
s
(
"ul"
,{
staticClass
:
"chapter-list"
},[
a
.
_l
(
a
.
list
.
course
,
function
(
t
,
r
){
return
[
s
(
"li"
,{
key
:
r
,
staticClass
:
"chapter-item"
},[
s
(
"h4"
,[
a
.
_v
(
a
.
_s
(
t
.
title
))]),
a
.
_v
(
" "
),
s
(
"ul"
,{
staticClass
:
"knot-list"
},[
a
.
_l
(
t
.
chapters
,
function
(
t
,
e
){
return
[
s
(
"li"
,{
key
:
e
,
class
:[
"knob-item"
,
t
.
id
===
a
.
list
.
currentChapterId
?
"on"
:
""
]},[
s
(
"a"
,{
staticClass
:
"knot-name"
,
attrs
:{
"data-vid"
:
t
.
id
,
"data-hasVA"
:
t
.
time
,
"data-index"
:
r
,
"data-index1"
:
e
},
on
:{
click
:
a
.
jumpToOtherVA
}},[
a
.
_v
(
a
.
_s
(
t
.
name
))]),
a
.
_v
(
" "
),
s
(
"i"
,{
class
:[
"el-icon"
,
t
.
time
?
"el-icon-self-iconset0481"
:
3
===
t
.
type
?
"el-icon-edit-outline"
:
"el-icon-self-cc-book"
]})])]})],
2
)])]})],
2
)])},
s
=
[];
r
.
d
(
e
,
"a"
,
function
(){
return
a
}),
r
.
d
(
e
,
"b"
,
function
(){
return
s
})},
440
:
function
(
t
,
e
,
r
){
"use strict"
;
var
a
=
function
(){
var
r
=
this
,
t
=
r
.
$createElement
,
a
=
r
.
_self
.
_c
||
t
;
return
a
(
"div"
,{
staticClass
:
"tab-pane"
},[
a
(
"ul"
,{
staticClass
:
"lecture-list"
},[
r
.
_l
(
r
.
ppt
.
imgUrls
,
function
(
t
,
e
){
return
[
a
(
"li"
,{
key
:
e
,
class
:[
e
===
r
.
ppt
.
selectIndex
?
"on"
:
""
],
attrs
:{
"data-index"
:
e
},
on
:{
click
:
r
.
onClickPpt
}},[
a
(
"img"
,{
attrs
:{
src
:
t
,
alt
:
""
}})])]})],
2
)])},
s
=
[];
r
.
d
(
e
,
"a"
,
function
(){
return
a
}),
r
.
d
(
e
,
"b"
,
function
(){
return
s
})}}]);
\ No newline at end of file
\ No newline at end of file
client-dist/resources/app.6
5c18cf3
.js
→
client-dist/resources/app.6
7c4139b
.js
浏览文件 @
3d53d567
This source diff could not be displayed because it is too large. You can
view the blob
instead.
client-dist/resources/manifest.b
eb12663
.js
→
client-dist/resources/manifest.b
d75d82f
.js
浏览文件 @
3d53d567
!
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
:
"76af75db"
,
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
()}([]);
!
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
(
b
&&
b
(
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
=
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
:
"0069f7ea7855"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"7275abdd54ff"
,
11
:
"e7ba1de89846"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"74dc8cd35292"
,
16
:
"fca5eccb0e56"
,
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
=
p
.
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
,
p
.
nc
&&
o
.
setAttribute
(
"nonce"
,
p
.
nc
),
o
.
src
=
p
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"405863fa"
,
7
:
"ace7c55c"
,
8
:
"87290af0"
,
9
:
"dcfc2b8a"
,
10
:
"6d628040"
,
11
:
"433a0ecc"
,
12
:
"91c1f686"
,
13
:
"a61dca92"
,
14
:
"4d6ef107"
,
15
:
"e61a13f7"
,
16
:
"505c6d2d"
,
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
)},
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
浏览文件 @
3d53d567
...
@@ -94,7 +94,8 @@ export default {
...
@@ -94,7 +94,8 @@ export default {
speed
:
1
,
// 默认播放速度
speed
:
1
,
// 默认播放速度
isSeek
:
false
,
// 是否拖动进度条
isSeek
:
false
,
// 是否拖动进度条
isFinish
:
false
,
// 是否播放完成
isFinish
:
false
,
// 是否播放完成
queueFrames
:
[],
// 存放所有视频帧的栈,上传成功清空一次。
queueFrames
:
[],
// 存放所有视频帧的队列,上传成功清空一次。
mapFrames
:
[],
// 记录视频播放过的 所有帧 hash 表,数组 下标表示 视频对应帧 - 1,数组值 表示 播放过的帧,重复播 + 1
videoWidth
:
VIDEO_DEFAULT_WIDTH
,
videoWidth
:
VIDEO_DEFAULT_WIDTH
,
videoHeight
:
VIDEO_DEFAULT_HEIGHT
,
videoHeight
:
VIDEO_DEFAULT_HEIGHT
,
username
:
(
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
username
)
||
''
username
:
(
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
username
)
||
''
...
@@ -199,6 +200,14 @@ export default {
...
@@ -199,6 +200,14 @@ export default {
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
}
else
{
}
else
{
this
.
_rProgress
=
_
.
assignIn
({},
this
.
chapterVideo
.
progress
)
this
.
_rProgress
=
_
.
assignIn
({},
this
.
chapterVideo
.
progress
)
/* 增加 帧点 视频记录 精确粒度 到 秒 */
let
_arr
=
[]
let
_len
=
this
.
chapterVideo
.
video_length
||
1
for
(
let
i
=
0
;
i
<
_len
;
i
++
)
{
_arr
.
push
(
0
)
}
this
.
videoFlash
.
mapFrames
=
this
.
_rProgress
.
map
.
length
?
this
.
_rProgress
.
map
:
_arr
this
.
_rProgress
.
map
=
this
.
videoFlash
.
mapFrames
}
}
if
(
this
.
_rProgress
.
pt
+
((
HEART_TIME
/
1000
)
*
this
.
videoFlash
.
speed
)
>=
data
.
time
)
{
if
(
this
.
_rProgress
.
pt
+
((
HEART_TIME
/
1000
)
*
this
.
videoFlash
.
speed
)
>=
data
.
time
)
{
this
.
isPlaying
=
true
// 这里 再设置一次 true ,只有为 true时 才能上传 进度
this
.
isPlaying
=
true
// 这里 再设置一次 true ,只有为 true时 才能上传 进度
...
@@ -298,30 +307,38 @@ export default {
...
@@ -298,30 +307,38 @@ export default {
hearBeatFunc
(
_time
)
{
hearBeatFunc
(
_time
)
{
if
(
this
.
chapterVideo
&&
this
.
isPlaying
)
{
if
(
this
.
chapterVideo
&&
this
.
isPlaying
)
{
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
if
(
this
.
_rProgress
&&
this
.
_rProgress
.
id
)
{
let
_rProgress
=
this
.
_rProgress
let
tempTime
=
this
.
videoFlash
.
lastTime
let
_speed
=
this
.
videoFlash
.
speed
let
_isSeek
=
this
.
videoFlash
.
isSeek
let
_queue
=
this
.
videoFlash
.
queueFrames
/* 第一次播放时 */
if
(
_rProgress
.
cpt
===
0
&&
_rProgress
.
mpt
===
0
&&
_rProgress
.
pt
===
0
)
{
if
(
/skip=1/
.
test
(
document
.
cookie
))
{
_rProgress
.
pt
=
7
// 跳过片头设置片头时间
}
}
/* 拖动进度条,不记录时间 */
if
(
!
_isSeek
)
{
/* 直接给出 增加定时器 循环定时 的每次 执行传输时间 */
_rProgress
.
pt
+=
(
_time
/
1000
)
*
_speed
/* cpt 和 mpt 应该没问题 */
_rProgress
.
cpt
=
tempTime
_rProgress
.
mpt
=
tempTime
>
_rProgress
.
mpt
?
tempTime
:
_rProgress
.
mpt
_rProgress
.
ps
=
_queue
/* 调用接口执行刷新 */
this
.
$emit
(
'updateProgress'
,
this
.
_rProgress
)
}
}
else
{
}
else
{
this
.
_rProgress
=
_
.
assignIn
({},
this
.
chapterVideo
.
progress
)
this
.
_rProgress
=
_
.
assignIn
({},
this
.
chapterVideo
.
progress
)
/* 增加 帧点 视频记录 精确粒度 到 秒 */
let
_arr
=
[]
let
_len
=
this
.
chapterVideo
.
video_length
||
1
for
(
let
i
=
0
;
i
<
_len
;
i
++
)
{
_arr
.
push
(
0
)
}
this
.
videoFlash
.
mapFrames
=
this
.
_rProgress
.
map
.
length
?
this
.
_rProgress
.
map
:
_arr
this
.
_rProgress
.
map
=
this
.
videoFlash
.
mapFrames
}
let
_rProgress
=
this
.
_rProgress
let
tempTime
=
this
.
videoFlash
.
lastTime
let
_speed
=
this
.
videoFlash
.
speed
let
_isSeek
=
this
.
videoFlash
.
isSeek
let
_queue
=
this
.
videoFlash
.
queueFrames
/* 第一次播放时 */
if
(
_rProgress
.
cpt
===
0
&&
_rProgress
.
mpt
===
0
&&
_rProgress
.
pt
===
0
)
{
if
(
/skip=1/
.
test
(
document
.
cookie
))
{
_rProgress
.
pt
=
7
// 跳过片头设置片头时间
}
}
/* 拖动进度条,不记录时间 */
if
(
!
_isSeek
)
{
/* 直接给出 增加定时器 循环定时 的每次 执行传输时间 */
_rProgress
.
pt
+=
(
_time
/
1000
)
*
_speed
/* cpt 和 mpt 应该没问题 */
_rProgress
.
cpt
=
tempTime
_rProgress
.
mpt
=
tempTime
>
_rProgress
.
mpt
?
tempTime
:
_rProgress
.
mpt
_rProgress
.
ps
=
_queue
/* 调用接口执行刷新 */
this
.
$emit
(
'updateProgress'
,
this
.
_rProgress
)
}
}
/* 实时监测 - 是否在播放中 */
/* 实时监测 - 是否在播放中 */
this
.
isPlaying
=
false
this
.
isPlaying
=
false
...
...
client/components/player/index.vue
浏览文件 @
3d53d567
...
@@ -223,8 +223,15 @@ export default {
...
@@ -223,8 +223,15 @@ export default {
if
(
_rProgress
.
cpt
)
{
if
(
_rProgress
.
cpt
)
{
/* 处理一下 视频帧栈,另存一个数组,防止请求事件过长,或超时,导致数据上送失败 */
/* 处理一下 视频帧栈,另存一个数组,防止请求事件过长,或超时,导致数据上送失败 */
let
_arr
=
[]
let
_arr
=
[]
let
_intCountPrev
=
0
for
(
let
i
=
0
;
i
<
_rProgress
.
ps
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
_rProgress
.
ps
.
length
;
i
++
)
{
_arr
[
i
]
=
_rProgress
.
ps
[
i
]
_arr
[
i
]
=
_rProgress
.
ps
[
i
]
/* 客户端,处理一下,统计整个 视频帧数组 都有哪些帧 播过 */
let
_intCount
=
Math
.
floor
(
_rProgress
.
ps
[
i
])
||
1
if
(
_intCount
!==
_intCountPrev
)
{
_rProgress
.
map
[
_intCount
-
1
]
+=
1
_intCountPrev
=
_intCount
}
}
}
cAction
.
chapterAction
.
updateProgress
({
cAction
.
chapterAction
.
updateProgress
({
d
:
cTool
.
other
.
getIdt
(),
d
:
cTool
.
other
.
getIdt
(),
...
@@ -236,6 +243,7 @@ export default {
...
@@ -236,6 +243,7 @@ export default {
_m
:
parseInt
(
_rProgress
.
mpt
),
// 当前播放最大时间
_m
:
parseInt
(
_rProgress
.
mpt
),
// 当前播放最大时间
_c
:
parseInt
(
_rProgress
.
cpt
),
// 当前播放位置
_c
:
parseInt
(
_rProgress
.
cpt
),
// 当前播放位置
ps
:
_arr
.
join
(
','
)
// 播放时,播放过的 帧
ps
:
_arr
.
join
(
','
)
// 播放时,播放过的 帧
// map: _rProgress.map// 播放时,统计帧
}).
then
(
json
=>
{
}).
then
(
json
=>
{
if
(
json
.
success
)
{
if
(
json
.
success
)
{
/* 将已经上传 并 成功的 帧 全部从 栈中删除 */
/* 将已经上传 并 成功的 帧 全部从 栈中删除 */
...
...
client/project/actions/ChapterAction.js
浏览文件 @
3d53d567
...
@@ -156,7 +156,8 @@ export default class ChapterActon {
...
@@ -156,7 +156,8 @@ export default class ChapterActon {
mpt
:
parseInt
(
res
.
mpt
),
mpt
:
parseInt
(
res
.
mpt
),
pt
:
parseInt
(
res
.
pt
),
pt
:
parseInt
(
res
.
pt
),
progress
:
res
.
progress
,
progress
:
res
.
progress
,
sign
:
res
.
sign
sign
:
res
.
sign
,
map
:
res
.
map
||
[]
}
}
})
})
}
}
...
...
client/project/main.js
浏览文件 @
3d53d567
...
@@ -21,7 +21,7 @@ Vue.use(VueRouter)
...
@@ -21,7 +21,7 @@ Vue.use(VueRouter)
const
router
=
createRouter
()
const
router
=
createRouter
()
/* 设置全局变量 */
/* 设置全局变量 */
window
.
G
=
Vue
.
prototype
.
$GlobalVariable
=
{
window
.
G
=
Vue
.
prototype
.
$GlobalVariable
=
{
VERSION
:
'PC-1.0.
5
'
VERSION
:
'PC-1.0.
7
'
}
}
Vue
.
prototype
.
$md5
=
md5
Vue
.
prototype
.
$md5
=
md5
/* 导航守卫 */
/* 导航守卫 */
...
...
client/project/pages/myLearn/course.vue
浏览文件 @
3d53d567
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
{{item.status}}
  
<em>
{{item.time}}
</em>
{{item.status}}
  
<em>
{{item.time}}
</em>
</div>
</div>
<div
class=
"progress"
>
<div
class=
"progress"
>
视频观看进度
 
<el-progress
:percentage=
"item.progress"
color=
"#b49441"
></el-progress>
视频观看进度
 
<el-progress
:percentage=
"item.progress
> 99.5 ? 100 : item.progress
"
color=
"#b49441"
></el-progress>
</div>
</div>
<div
class=
"right-sel"
>
{{item.myStatus}}
</div>
<div
class=
"right-sel"
>
{{item.myStatus}}
</div>
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
查看课程
</el-button>
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
查看课程
</el-button>
...
...
client/project/pages/myLearn/courseAll.vue
浏览文件 @
3d53d567
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
{{item.status}}
  
<em>
{{item.time}}
</em>
{{item.status}}
  
<em>
{{item.time}}
</em>
</div>
</div>
<div
class=
"progress"
>
<div
class=
"progress"
>
学习进度
 
<el-progress
:percentage=
"
item.progress"
color=
"#b49441"
></el-progress>
视频观看进度
 
<el-progress
:percentage=
"item.progress > 99.5 ? 100 :
item.progress"
color=
"#b49441"
></el-progress>
</div>
</div>
<div
class=
"right-sel"
>
{{item.myStatus}}
</div>
<div
class=
"right-sel"
>
{{item.myStatus}}
</div>
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
查看课程
</el-button>
<el-button
class=
"in-btn"
type=
"primary"
size=
"small"
round
@
click=
"goCourseContent"
:data-cid=
'item.id'
:data-sid=
'item.sid'
>
查看课程
</el-button>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论