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 个修改的文件
包含
71 行增加
和
37 行删除
+71
-37
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
+0
-0
10.76af75db.js
client-dist/resources/10.76af75db.js
+0
-0
15.74dc8cd35292.css
client-dist/resources/15.74dc8cd35292.css
+2
-2
15.e61a13f7.js
client-dist/resources/15.e61a13f7.js
+0
-0
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
+0
-0
6.405863fa.js
client-dist/resources/6.405863fa.js
+0
-0
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
差异被折叠。
点击展开。
client-dist/resources/10.76af75db.js
deleted
100644 → 0
浏览文件 @
e6d7de8a
差异被折叠。
点击展开。
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
差异被折叠。
点击展开。
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
差异被折叠。
点击展开。
client-dist/resources/6.
79342c91
.js
→
client-dist/resources/6.
405863fa
.js
浏览文件 @
3d53d567
差异被折叠。
点击展开。
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论