Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
44e2dab3
提交
44e2dab3
authored
2月 26, 2019
作者:
GOD_ZYX
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加客户端版本号 + 服务端 UA统计
上级
6f81aa16
全部展开
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
97 行增加
和
18 行删除
+97
-18
build.zip
build.zip
+0
-0
index.html
client-dist/index.html
+2
-2
11.3a3f1cdf.js
client-dist/resources/11.3a3f1cdf.js
+2
-0
11.63cef44e90fb.css
client-dist/resources/11.63cef44e90fb.css
+2
-0
11.970f20fae48e.css
client-dist/resources/11.970f20fae48e.css
+0
-2
11.fea790d0.js
client-dist/resources/11.fea790d0.js
+0
-2
20.5ba1b1bc7480.css
client-dist/resources/20.5ba1b1bc7480.css
+2
-0
20.68029434d520.css
client-dist/resources/20.68029434d520.css
+0
-2
20.ed197405.js
client-dist/resources/20.ed197405.js
+0
-0
app.42db12ee.js
client-dist/resources/app.42db12ee.js
+0
-0
app.4fed8b5a.js
client-dist/resources/app.4fed8b5a.js
+0
-0
manifest.f9b17184.js
client-dist/resources/manifest.f9b17184.js
+2
-2
chapterExam.vue
client/components/player/chapterExam/chapterExam.vue
+62
-3
index.vue
client/components/websocket/index.vue
+8
-1
reportAdd.vue
client/project/pages/myLearn/reportAdd.vue
+1
-1
WebSocket.js
server/com/WebSocket.js
+2
-1
SocketMonitor.js
server/controller/SocketMonitor.js
+2
-1
distRun.js
server/distRun.js
+12
-1
没有找到文件。
build.zip
浏览文件 @
44e2dab3
No preview for this file type
client-dist/index.html
浏览文件 @
44e2dab3
...
...
@@ -2,4 +2,4 @@
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]-->
<script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.6dd89d2d.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.435ab98c.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.4fed8b5a.js"
></script></body></html>
\ No newline at end of file
<![endif]-->
<script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.f9b17184.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.435ab98c.js"
></script><script
type=
"text/javascript"
src=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.42db12ee.js"
></script></body></html>
\ No newline at end of file
client-dist/resources/11.3a3f1cdf.js
0 → 100644
浏览文件 @
44e2dab3
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
11
],{
270
:
function
(
e
,
t
,
r
){
"use strict"
;
r
.
r
(
t
);
var
s
=
r
(
430
),
a
=
r
(
357
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
e
){
r
.
d
(
t
,
e
,
function
(){
return
a
[
e
]})}(
i
);
r
(
404
);
var
c
=
r
(
1
),
o
=
Object
(
c
.
a
)(
a
.
default
,
s
.
a
,
s
.
b
,
!
1
,
null
,
"f3fcde96"
,
null
);
o
.
options
.
__file
=
"chapterExam.vue"
,
t
.
default
=
o
.
exports
},
357
:
function
(
e
,
t
,
r
){
"use strict"
;
r
.
r
(
t
);
var
s
=
r
(
358
),
a
=
r
.
n
(
s
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
e
){
r
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
i
);
t
.
default
=
a
.
a
},
358
:
function
(
e
,
t
,
r
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
s
,
a
=
r
(
73
),
h
=
(
s
=
a
)
&&
s
.
__esModule
?
s
:{
default
:
s
};
t
.
default
=
{
props
:{
chapterId
:{
type
:
String
,
require
:
!
1
},
chapterName
:{
type
:
String
,
require
:
!
1
},
chapterExam
:{
type
:
Object
,
require
:
!
1
},
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
},
id
:{
type
:
String
,
require
:
!
1
}},
data
:
function
(){
return
{
exam
:{},
param
:{
course_id
:
""
,
chapter_id
:
""
,
work_id
:
""
,
semester_id
:
""
,
work_contents
:
""
,
duration
:
0
,
score
:
0
},
startTime
:
""
,
recordAll
:[],
setTime
:
null
,
radioCur
:
""
,
checkCur
:
""
}},
mounted
:
function
(){
this
.
loadAjax
()},
methods
:{
updateData
:
function
(
d
){
return
this
.
param
=
{
course_id
:
d
.
course_id
,
chapter_id
:
d
.
chapter_id
,
work_id
:
d
.
work_id
,
semester_id
:
d
.
semester_id
,
work_contents
:
""
,
duration
:
0
,
score
:
0
},
this
.
startTime
=
(
new
Date
).
getTime
(),{
id
:
d
.
id
,
semester_id
:
d
.
semester_id
,
title
:
d
.
work_title
,
score
:
d
.
score
||
(
0
===
d
.
score
?
"0"
:
""
),
work_contents
:
d
.
work_contents
||
""
,
group
:
d
.
questions
.
map
(
function
(
e
,
t
){
var
r
=
""
,
s
=
""
,
a
=
0
,
i
=
JSON
.
parse
(
e
.
question_options
);
i
.
forEach
(
function
(
e
,
t
){
if
(
e
.
checked
)
switch
(
t
){
case
0
:
r
+=
"A,"
;
break
;
case
1
:
r
+=
"B,"
;
break
;
case
2
:
r
+=
"C,"
;
break
;
case
3
:
r
+=
"D,"
;
break
;
case
4
:
r
+=
"E,"
;
break
;
case
5
:
r
+=
"F,"
}});
var
c
=
""
;
if
(
d
.
work_contents
){
for
(
var
o
=
JSON
.
parse
(
d
.
work_contents
),
n
=
0
;
n
<
o
.
length
;
n
++
)
if
(
o
[
n
].
question_id
===
e
.
id
){
i
=
o
[
n
].
options
,
a
=
o
[
n
].
is_correct
;
break
}
if
(
1
===
e
.
question_type
)
for
(
var
u
=
0
;
u
<
i
.
length
;
u
++
)
if
(
i
[
u
].
selected
){
switch
(
c
=
u
){
case
0
:
s
=
"A,"
;
break
;
case
1
:
s
=
"B,"
;
break
;
case
2
:
s
=
"C,"
;
break
;
case
3
:
s
=
"D,"
;
break
;
case
4
:
s
=
"E,"
;
break
;
case
5
:
s
=
"F,"
}
break
}
if
(
2
===
e
.
question_type
)
for
(
var
l
=
0
;
l
<
i
.
length
;
l
++
)
if
(
i
[
l
].
selected
)
switch
(
l
){
case
0
:
s
+=
"A,"
;
break
;
case
1
:
s
+=
"B,"
;
break
;
case
2
:
s
+=
"C,"
;
break
;
case
3
:
s
+=
"D,"
;
break
;
case
4
:
s
+=
"E,"
;
break
;
case
5
:
s
+=
"F,"
}}
return
{
id
:
e
.
id
,
type
:
e
.
question_type
,
title
:
e
.
question_content
,
arr
:
i
,
cur
:
d
.
work_contents
&&
r
.
substr
(
0
,
r
.
length
-
1
)
||
""
,
arrSel
:[],
sel
:
c
,
stuAnswer
:
s
.
substr
(
0
,
s
.
length
-
1
),
is_correct
:
a
}})}},
updateData1
:
function
(
e
){
this
.
exam
.
id
=
e
.
id
,
this
.
exam
.
semester_id
=
e
.
semester_id
,
this
.
exam
.
title
=
e
.
work_title
,
this
.
exam
.
score
=
e
.
score
||
"0"
,
this
.
exam
.
work_contents
=
e
.
work_contents
||
""
;
for
(
var
t
=
0
;
t
<
this
.
exam
.
group
.
length
;
t
++
){
var
r
=
""
,
s
=
""
,
a
=
0
,
i
=
e
.
questions
[
t
],
c
=
JSON
.
parse
(
i
.
question_options
);
c
.
forEach
(
function
(
e
,
t
){
if
(
e
.
checked
)
switch
(
t
){
case
0
:
r
+=
"A,"
;
break
;
case
1
:
r
+=
"B,"
;
break
;
case
2
:
r
+=
"C,"
;
break
;
case
3
:
r
+=
"D,"
;
break
;
case
4
:
r
+=
"E,"
;
break
;
case
5
:
r
+=
"F,"
}});
var
o
=
""
;
if
(
e
.
work_contents
){
for
(
var
n
=
JSON
.
parse
(
e
.
work_contents
),
u
=
0
;
u
<
n
.
length
;
u
++
)
if
(
n
[
u
].
question_id
===
i
.
id
){
c
=
n
[
u
].
options
,
a
=
n
[
u
].
is_correct
;
break
}
if
(
1
===
i
.
question_type
)
for
(
var
l
=
0
;
l
<
c
.
length
;
l
++
)
if
(
c
[
l
].
selected
){
switch
(
o
=
l
){
case
0
:
s
=
"A,"
;
break
;
case
1
:
s
=
"B,"
;
break
;
case
2
:
s
=
"C,"
;
break
;
case
3
:
s
=
"D,"
;
break
;
case
4
:
s
=
"E,"
;
break
;
case
5
:
s
=
"F,"
}
break
}
if
(
2
===
i
.
question_type
)
for
(
var
d
=
0
;
d
<
c
.
length
;
d
++
)
if
(
c
[
d
].
selected
)
switch
(
d
){
case
0
:
s
+=
"A,"
;
break
;
case
1
:
s
+=
"B,"
;
break
;
case
2
:
s
+=
"C,"
;
break
;
case
3
:
s
+=
"D,"
;
break
;
case
4
:
s
+=
"E,"
;
break
;
case
5
:
s
+=
"F,"
}}
this
.
exam
.
group
[
t
].
id
=
i
.
id
,
this
.
exam
.
group
[
t
].
type
=
i
.
question_type
,
this
.
exam
.
group
[
t
].
title
=
i
.
question_content
,
this
.
exam
.
group
[
t
].
cur
=
e
.
work_contents
&&
r
.
substr
(
0
,
r
.
length
-
1
)
||
""
,
this
.
exam
.
group
[
t
].
arrSel
=
[],
this
.
exam
.
group
[
t
].
sel
=
o
,
this
.
exam
.
group
[
t
].
stuAnswer
=
s
.
substr
(
0
,
s
.
length
-
1
),
this
.
exam
.
group
[
t
].
is_correct
=
a
;
for
(
var
h
=
this
.
exam
.
group
[
t
].
arr
,
p
=
0
;
p
<
h
.
length
;
p
++
)
h
[
p
].
selected
=
c
[
p
].
selected
,
h
[
p
].
id
=
h
[
p
].
id
+
"1"
}},
loadAjax
:
function
(){
var
r
=
this
,
e
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
h
.
default
.
chapterAction
.
getExamDetail
(
this
.
sid
,
this
.
id
).
then
(
function
(
e
){
var
t
=
e
.
homework
;
r
.
exam
=
t
?(
t
.
score
=
e
.
score
,
t
.
work_contents
=
e
.
work_contents
,
r
.
updateData
(
t
)):{}}).
catch
(
function
(
e
){
r
.
$message
.
error
(
e
.
message
)}).
finally
(
function
(){
r
.
setTime
=
setInterval
(
function
(){
r
.
chapterExam
.
work_id
&&
r
.
chapterExam
.
work_id
===
r
.
id
&&
(
r
.
exam
.
id
||
(
r
.
exam
=
r
.
updateData
(
r
.
chapterExam
),
document
.
querySelector
(
".play-paper"
).
scrollTop
=
0
),
clearInterval
(
r
.
setTime
))},
50
),
e
.
close
()})},
radioClick
:
function
(
e
){
this
.
radioCur
=
e
.
currentTarget
.
dataset
.
index
},
radioChange
:
function
(
e
){
for
(
var
t
=
this
.
radioCur
,
r
=
this
.
exam
.
group
[
t
].
arr
,
s
=
e
,
a
=
0
;
a
<
r
.
length
;
a
++
)
r
[
a
].
selected
=
0
;
r
[
s
].
selected
=
1
,
this
.
exam
.
group
[
t
].
arr
=
r
,
this
.
recordAll
.
push
(
t
)},
checkboxClick
:
function
(
e
){
this
.
checkboxCur
=
e
.
currentTarget
.
dataset
.
index
},
checkboxChange
:
function
(
e
){
for
(
var
r
=
this
.
checkboxCur
,
t
=
this
.
exam
.
group
[
r
].
arr
,
s
=
e
,
a
=
0
;
a
<
t
.
length
;
a
++
)
t
[
a
].
selected
=
0
;
for
(
var
i
=
0
;
i
<
s
.
length
;
i
++
)
t
[
s
[
i
]].
selected
=
1
;
this
.
exam
.
group
[
r
].
arr
=
t
,
s
.
length
?
this
.
recordAll
.
push
(
r
):
this
.
recordAll
=
this
.
recordAll
.
filter
(
function
(
e
,
t
){
return
e
!==
r
})},
submitExam
:
function
(
e
){
var
r
=
this
;
if
(
e
.
currentTarget
.
dataset
.
submit
)
this
.
$message
.
error
(
"已做过,不能再提交"
);
else
{
this
.
param
.
duration
=
Math
.
floor
(((
new
Date
).
getTime
()
-
this
.
startTime
)
/
1
e3
);
for
(
var
t
=
this
.
exam
.
group
,
s
=
t
.
length
,
a
=
[],
i
=
0
,
c
=
0
,
o
=
0
;
o
<
s
;
o
++
){
for
(
var
n
=
0
;
n
<
this
.
recordAll
.
length
&&
this
.
recordAll
[
n
]
!==
o
+
""
;
n
++
);
if
(
n
===
this
.
recordAll
.
length
)
return
void
this
.
$message
.
error
(
"还有题目未做,不能提交"
)}
for
(
var
u
=
0
;
u
<
t
.
length
;
u
++
){
if
(
c
=
0
,
1
===
t
[
u
].
type
&&
t
[
u
].
arr
.
forEach
(
function
(
e
,
t
){
e
.
checked
&&
e
.
selected
&&
(
i
+=
c
=
1
)}),
2
===
t
[
u
].
type
){
var
l
=!
0
;
t
[
u
].
arr
.
forEach
(
function
(
e
,
t
){
e
.
checked
!==!!
e
.
selected
&&
(
l
=!
1
)}),
l
&&
(
i
+=
c
=
1
)}
a
.
push
({
question_id
:
t
[
u
].
id
,
is_correct
:
c
,
options
:
t
[
u
].
arr
})}
this
.
param
.
work_contents
=
JSON
.
stringify
(
a
),
this
.
param
.
score
=
(
i
/
s
*
100
).
toFixed
(
1
);
var
d
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
h
.
default
.
chapterAction
.
submitExamDetail
(
this
.
param
).
then
(
function
(
e
){
e
.
status
?
h
.
default
.
chapterAction
.
getExamDetail
(
r
.
sid
,
r
.
id
).
then
(
function
(
e
){
var
t
=
e
.
homework
;
t
&&
(
t
.
score
=
e
.
score
,
t
.
work_contents
=
e
.
work_contents
,
r
.
updateData1
(
t
))}).
catch
(
function
(
e
){
r
.
$message
.
error
(
e
.
message
)}):
r
.
$message
.
error
(
e
.
data
.
error
)}).
catch
(
function
(
e
){
r
.
$message
.
error
(
e
.
message
)}).
finally
(
function
(){
d
.
close
()})}}},
watch
:{
id
:{
handler
:
function
(){
this
.
loadAjax
()}}}}},
359
:
function
(
e
,
t
,
r
){},
404
:
function
(
e
,
t
,
r
){
"use strict"
;
var
s
=
r
(
359
);
r
.
n
(
s
).
a
},
430
:
function
(
e
,
t
,
r
){
"use strict"
;
var
s
=
function
(){
var
s
=
this
,
e
=
s
.
$createElement
,
a
=
s
.
_self
.
_c
||
e
;
return
a
(
"div"
,{
staticClass
:
"play-paper"
},[
a
(
"div"
,{
staticClass
:
"play-paper-body"
},[
a
(
"div"
,{
staticClass
:
"play-paper-title"
},[
a
(
"div"
,[
a
(
"h3"
,[
s
.
_v
(
s
.
_s
(
s
.
chapterName
))])])]),
s
.
_v
(
" "
),
a
(
"div"
,{
staticClass
:
"play-paper-content play-chapter-exam"
},[
this
.
exam
.
id
?[
a
(
"div"
,{
staticClass
:
"exam"
},[
a
(
"div"
,{
staticStyle
:{
"text-align"
:
"center"
}},[
a
(
"div"
,{
staticClass
:
"topic"
},[
s
.
exam
.
score
?[
a
(
"div"
,{
staticClass
:
"cur"
},[
s
.
_v
(
"正确率:"
+
s
.
_s
(
s
.
exam
.
score
)
+
"%"
)])]:
s
.
_e
()],
2
)]),
s
.
_v
(
" "
),
a
(
"div"
,{},[
s
.
_l
(
s
.
exam
.
group
,
function
(
r
,
e
){
return
[
1
==
r
.
type
?[
a
(
"div"
,{
key
:
e
,
staticClass
:
"q-group"
,
attrs
:{
"data-index"
:
e
},
on
:{
click
:
s
.
radioClick
}},[
a
(
"div"
,{
staticClass
:
"q-num"
},[
s
.
_v
(
s
.
_s
(
e
+
1
)
+
"."
)]),
a
(
"div"
,{
staticClass
:
"q-title"
,
domProps
:{
innerHTML
:
s
.
_s
(
r
.
title
)}}),
a
(
"div"
,{
staticClass
:
"q-type"
},[
s
.
_v
(
"(单选题)"
)]),
s
.
_v
(
" "
),
a
(
"el-radio-group"
,{
staticClass
:
"radio-group"
,
on
:{
change
:
s
.
radioChange
},
model
:{
value
:
r
.
sel
,
callback
:
function
(
e
){
s
.
$set
(
r
,
"sel"
,
e
)},
expression
:
"item.sel"
}},[
s
.
_l
(
r
.
arr
,
function
(
e
,
t
){
return
[
a
(
"el-radio"
,{
key
:
t
,
class
:[
"radio"
,
r
.
cur
&&
e
.
checked
&&
"success"
,
r
.
cur
&&!
e
.
checked
&&
e
.
selected
&&
"error"
],
attrs
:{
label
:
t
,
disabled
:
!!
r
.
cur
}},[
s
.
_v
(
s
.
_s
(
0
==
t
?
"A"
:
1
==
t
?
"B"
:
2
==
t
?
"C"
:
3
==
t
?
"D"
:
4
==
t
?
"E"
:
5
==
t
?
"F"
:
"G"
)
+
". "
+
s
.
_s
(
e
.
option
))])]})],
2
),
s
.
_v
(
" "
),
r
.
cur
?[
a
(
"div"
,{
staticClass
:
"result"
},[
s
.
_v
(
"学生答案:"
),
a
(
"div"
,{
class
:[
"stu"
,
r
.
is_correct
?
"success"
:
"error"
]},[
s
.
_v
(
s
.
_s
(
r
.
stuAnswer
))]),
s
.
_v
(
" 正确答案:"
+
s
.
_s
(
r
.
cur
))])]:
s
.
_e
()],
2
)]:
s
.
_e
(),
s
.
_v
(
" "
),
2
==
r
.
type
?[
a
(
"div"
,{
key
:
e
,
staticClass
:
"q-group"
,
attrs
:{
"data-index"
:
e
},
on
:{
click
:
s
.
checkboxClick
}},[
a
(
"div"
,{
staticClass
:
"q-num"
},[
s
.
_v
(
s
.
_s
(
e
+
1
)
+
"."
)]),
a
(
"div"
,{
staticClass
:
"q-title"
,
domProps
:{
innerHTML
:
s
.
_s
(
r
.
title
)}}),
a
(
"div"
,{
staticClass
:
"q-type"
},[
s
.
_v
(
"(多选题)"
)]),
s
.
_v
(
" "
),
a
(
"el-checkbox-group"
,{
staticClass
:
"checkbox-group"
,
on
:{
change
:
s
.
checkboxChange
},
model
:{
value
:
r
.
arrSel
,
callback
:
function
(
e
){
s
.
$set
(
r
,
"arrSel"
,
e
)},
expression
:
"item.arrSel"
}},[
s
.
_l
(
r
.
arr
,
function
(
e
,
t
){
return
[
a
(
"el-checkbox"
,{
key
:
e
.
id
,
class
:[
"checkbox"
,
r
.
cur
&&
e
.
checked
&&
"success"
,
r
.
cur
&&!
e
.
checked
&&
e
.
selected
&&
"error"
],
attrs
:{
label
:
t
,
checked
:
!!
e
.
selected
,
disabled
:
!!
r
.
cur
}},[
s
.
_v
(
s
.
_s
(
0
==
t
?
"A"
:
1
==
t
?
"B"
:
2
==
t
?
"C"
:
3
==
t
?
"D"
:
4
==
t
?
"E"
:
5
==
t
?
"F"
:
"G"
)
+
". "
+
s
.
_s
(
e
.
option
))])]})],
2
),
s
.
_v
(
" "
),
r
.
cur
?[
a
(
"div"
,{
staticClass
:
"result"
},[
s
.
_v
(
"学生答案:"
),
a
(
"div"
,{
class
:[
"stu"
,
r
.
is_correct
?
"success"
:
"error"
]},[
s
.
_v
(
s
.
_s
(
r
.
stuAnswer
))]),
s
.
_v
(
" 正确答案:"
+
s
.
_s
(
r
.
cur
))])]:
s
.
_e
()],
2
)]:
s
.
_e
()]})],
2
),
s
.
_v
(
" "
),
a
(
"div"
,{
class
:[
"btn"
,
s
.
exam
.
work_contents
&&
"on"
],
attrs
:{
"data-submit"
:
!!
s
.
exam
.
work_contents
},
on
:{
click
:
s
.
submitExam
}},[
s
.
_v
(
s
.
_s
(
s
.
exam
.
work_contents
?
"已提交"
:
"提交"
))]),
s
.
_v
(
" "
),
a
(
"div"
,{
staticClass
:
"care"
},[
s
.
_v
(
"(注意:测试只有一次提交机会)"
)])])]:
s
.
_e
()],
2
)])])},
a
=
[];
r
.
d
(
t
,
"a"
,
function
(){
return
s
}),
r
.
d
(
t
,
"b"
,
function
(){
return
a
})}}]);
\ No newline at end of file
client-dist/resources/11.63cef44e90fb.css
0 → 100644
浏览文件 @
44e2dab3
.play
.exam
[
data-v-f3fcde96
]
{
padding
:
0
}
.play
.exam
.topic
[
data-v-f3fcde96
]
{
display
:
inline-block
;
margin-bottom
:
.1rem
}
.play
.exam
.topic
.tit
[
data-v-f3fcde96
]
{
margin
:
0
auto
;
padding
:
0
.2rem
;
text-align
:
center
;
font-size
:
.24rem
;
color
:
#313131
;
background
:
#fff
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
-webkit-box-sizing
:
border-box
}
.play
.exam
.topic
.cur
[
data-v-f3fcde96
]
{
text-align
:
center
;
font-size
:
.18rem
;
color
:
#313131
;
line-height
:
.4rem
}
.play
.exam
.q-group
[
data-v-f3fcde96
]
{
padding
:
.1rem
;
border-bottom
:
1px
solid
hsla
(
0
,
0%
,
78.8%
,
.48
);
overflow
:
hidden
}
.play
.exam
.q-group
.q-num
[
data-v-f3fcde96
]
{
float
:
left
;
margin-right
:
.1rem
;
font-size
:
.16rem
;
color
:
#676a6c
}
.play
.exam
.q-group
.q-title
[
data-v-f3fcde96
]
{
float
:
left
;
width
:
90%
;
font-size
:
.16rem
;
color
:
#676a6c
;
text-align
:
justify
}
.play
.exam
.q-group
.q-type
[
data-v-f3fcde96
]
{
float
:
right
;
font-size
:
.16rem
;
color
:
#676a6c
}
.play
.exam
.q-group
.radio-group
[
data-v-f3fcde96
]
{
float
:
left
;
margin-top
:
.1rem
;
width
:
100%
}
.play
.exam
.q-group
.radio-group
.radio
[
data-v-f3fcde96
]
{
display
:
block
;
font-size
:
.18rem
;
color
:
#3f3b3a
;
line-height
:
.3rem
;
margin-bottom
:
.1rem
}
.play
.exam
.q-group
.checkbox-group
[
data-v-f3fcde96
]
{
float
:
left
;
margin-top
:
.1rem
;
width
:
100%
}
.play
.exam
.q-group
.checkbox-group
.checkbox
[
data-v-f3fcde96
]
{
display
:
block
;
font-size
:
.18rem
;
color
:
#3f3b3a
;
line-height
:
.3rem
;
margin-bottom
:
.1rem
}
.play
.exam
.q-group
.checkbox-group
.checkbox.error
[
data-v-f3fcde96
],
.play
.exam
.q-group
.radio-group
.radio.error
[
data-v-f3fcde96
]
{
color
:
#d80000
}
.play
.exam
.q-group
.checkbox-group
.checkbox.success
[
data-v-f3fcde96
],
.play
.exam
.q-group
.radio-group
.radio.success
[
data-v-f3fcde96
]
{
color
:
#090
}
.play
.exam
.q-group
.result
[
data-v-f3fcde96
]
{
float
:
right
;
font-size
:
.18rem
;
color
:
#3f3b3a
;
margin-right
:
0
}
.play
.exam
.q-group
.result
.stu
[
data-v-f3fcde96
]
{
display
:
inline-block
}
.play
.exam
.q-group
.result
.stu.error
[
data-v-f3fcde96
]
{
color
:
#d80000
}
.play
.exam
.q-group
.result
.stu.success
[
data-v-f3fcde96
]
{
color
:
#090
}
.play
.exam
.q-group
[
data-v-f3fcde96
]
:last-child
{
border-bottom
:
none
}
.play
.exam
.btn
[
data-v-f3fcde96
]
{
margin
:
.2rem
auto
;
width
:
60%
;
height
:
.5rem
;
line-height
:
.5rem
;
font-size
:
.16rem
;
text-align
:
center
;
font-weight
:
300
;
color
:
#fff
;
-webkit-border-radius
:
.1rem
;
-moz-border-radius
:
.1rem
;
border-radius
:
.1rem
;
background
:
#b49441
;
cursor
:
pointer
}
.play
.exam
.btn.on
[
data-v-f3fcde96
]
{
opacity
:
.5
}
.play
.exam
.care
[
data-v-f3fcde96
]
{
font-size
:
.16rem
;
color
:
#d80000
;
text-align
:
center
}
\ No newline at end of file
client-dist/resources/11.970f20fae48e.css
deleted
100644 → 0
浏览文件 @
6f81aa16
.play
.exam
[
data-v-529794d4
]
{
padding
:
0
}
.play
.exam
.topic
[
data-v-529794d4
]
{
display
:
inline-block
;
margin-bottom
:
.1rem
}
.play
.exam
.topic
.tit
[
data-v-529794d4
]
{
margin
:
0
auto
;
padding
:
0
.2rem
;
text-align
:
center
;
font-size
:
.24rem
;
color
:
#313131
;
background
:
#fff
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
-webkit-box-sizing
:
border-box
}
.play
.exam
.topic
.cur
[
data-v-529794d4
]
{
text-align
:
center
;
font-size
:
.18rem
;
color
:
#313131
;
line-height
:
.4rem
}
.play
.exam
.q-group
[
data-v-529794d4
]
{
padding
:
.1rem
;
border-bottom
:
1px
solid
hsla
(
0
,
0%
,
78.8%
,
.48
);
overflow
:
hidden
}
.play
.exam
.q-group
.q-num
[
data-v-529794d4
]
{
float
:
left
;
margin-right
:
.1rem
;
font-size
:
.16rem
;
color
:
#676a6c
}
.play
.exam
.q-group
.q-title
[
data-v-529794d4
]
{
float
:
left
;
width
:
90%
;
font-size
:
.16rem
;
color
:
#676a6c
;
text-align
:
justify
}
.play
.exam
.q-group
.q-type
[
data-v-529794d4
]
{
float
:
right
;
font-size
:
.16rem
;
color
:
#676a6c
}
.play
.exam
.q-group
.radio-group
[
data-v-529794d4
]
{
float
:
left
;
margin-top
:
.1rem
;
width
:
100%
}
.play
.exam
.q-group
.radio-group
.radio
[
data-v-529794d4
]
{
display
:
block
;
font-size
:
.18rem
;
color
:
#3f3b3a
;
line-height
:
.3rem
;
margin-bottom
:
.1rem
}
.play
.exam
.q-group
.checkbox-group
[
data-v-529794d4
]
{
float
:
left
;
margin-top
:
.1rem
;
width
:
100%
}
.play
.exam
.q-group
.checkbox-group
.checkbox
[
data-v-529794d4
]
{
display
:
block
;
font-size
:
.18rem
;
color
:
#3f3b3a
;
line-height
:
.3rem
;
margin-bottom
:
.1rem
}
.play
.exam
.q-group
.checkbox-group
.checkbox.error
[
data-v-529794d4
],
.play
.exam
.q-group
.radio-group
.radio.error
[
data-v-529794d4
]
{
color
:
#d80000
}
.play
.exam
.q-group
.checkbox-group
.checkbox.success
[
data-v-529794d4
],
.play
.exam
.q-group
.radio-group
.radio.success
[
data-v-529794d4
]
{
color
:
#090
}
.play
.exam
.q-group
.result
[
data-v-529794d4
]
{
float
:
right
;
font-size
:
.18rem
;
color
:
#3f3b3a
;
margin-right
:
0
}
.play
.exam
.q-group
[
data-v-529794d4
]
:last-child
{
border-bottom
:
none
}
.play
.exam
.btn
[
data-v-529794d4
]
{
margin
:
.2rem
auto
;
width
:
60%
;
height
:
.5rem
;
line-height
:
.5rem
;
font-size
:
.16rem
;
text-align
:
center
;
font-weight
:
300
;
color
:
#fff
;
-webkit-border-radius
:
.1rem
;
-moz-border-radius
:
.1rem
;
border-radius
:
.1rem
;
background
:
#b49441
;
cursor
:
pointer
}
.play
.exam
.btn.on
[
data-v-529794d4
]
{
opacity
:
.5
}
.play
.exam
.care
[
data-v-529794d4
]
{
font-size
:
.16rem
;
color
:
#d80000
;
text-align
:
center
}
\ No newline at end of file
client-dist/resources/11.fea790d0.js
deleted
100644 → 0
浏览文件 @
6f81aa16
(
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[]).
push
([[
11
],{
270
:
function
(
e
,
t
,
r
){
"use strict"
;
r
.
r
(
t
);
var
a
=
r
(
430
),
s
=
r
(
357
);
for
(
var
i
in
s
)
"default"
!==
i
&&
function
(
e
){
r
.
d
(
t
,
e
,
function
(){
return
s
[
e
]})}(
i
);
r
(
404
);
var
c
=
r
(
1
),
o
=
Object
(
c
.
a
)(
s
.
default
,
a
.
a
,
a
.
b
,
!
1
,
null
,
"529794d4"
,
null
);
o
.
options
.
__file
=
"chapterExam.vue"
,
t
.
default
=
o
.
exports
},
357
:
function
(
e
,
t
,
r
){
"use strict"
;
r
.
r
(
t
);
var
a
=
r
(
358
),
s
=
r
.
n
(
a
);
for
(
var
i
in
a
)
"default"
!==
i
&&
function
(
e
){
r
.
d
(
t
,
e
,
function
(){
return
a
[
e
]})}(
i
);
t
.
default
=
s
.
a
},
358
:
function
(
e
,
t
,
r
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
a
,
s
=
r
(
73
),
h
=
(
a
=
s
)
&&
a
.
__esModule
?
a
:{
default
:
a
};
t
.
default
=
{
props
:{
chapterId
:{
type
:
String
,
require
:
!
1
},
chapterName
:{
type
:
String
,
require
:
!
1
},
chapterExam
:{
type
:
Object
,
require
:
!
1
},
sid
:{
type
:
String
,
require
:
!
1
},
cid
:{
type
:
String
,
require
:
!
1
},
id
:{
type
:
String
,
require
:
!
1
}},
data
:
function
(){
return
{
exam
:{},
param
:{
course_id
:
""
,
chapter_id
:
""
,
work_id
:
""
,
semester_id
:
""
,
work_contents
:
""
,
duration
:
0
,
score
:
0
},
startTime
:
""
,
recordAll
:[],
setTime
:
null
,
radioCur
:
""
,
checkCur
:
""
}},
mounted
:
function
(){
this
.
loadAjax
()},
methods
:{
updateData
:
function
(
n
){
return
this
.
param
=
{
course_id
:
n
.
course_id
,
chapter_id
:
n
.
chapter_id
,
work_id
:
n
.
work_id
,
semester_id
:
n
.
semester_id
,
work_contents
:
""
,
duration
:
0
,
score
:
0
},
this
.
startTime
=
(
new
Date
).
getTime
(),{
id
:
n
.
id
,
semester_id
:
n
.
semester_id
,
title
:
n
.
work_title
,
score
:
n
.
score
||
(
0
===
n
.
score
?
"0"
:
""
),
work_contents
:
n
.
work_contents
||
""
,
group
:
n
.
questions
.
map
(
function
(
e
,
t
){
var
r
=
""
,
a
=
JSON
.
parse
(
e
.
question_options
);
a
.
forEach
(
function
(
e
,
t
){
if
(
e
.
checked
)
switch
(
t
){
case
0
:
r
+=
"A,"
;
break
;
case
1
:
r
+=
"B,"
;
break
;
case
2
:
r
+=
"C,"
;
break
;
case
3
:
r
+=
"D,"
;
break
;
case
4
:
r
+=
"E,"
;
break
;
case
5
:
r
+=
"F,"
}});
var
s
=
""
;
if
(
n
.
work_contents
){
for
(
var
i
=
JSON
.
parse
(
n
.
work_contents
),
c
=
0
;
c
<
i
.
length
;
c
++
)
if
(
i
[
c
].
question_id
===
e
.
id
){
a
=
i
[
c
].
options
;
break
}
if
(
1
===
e
.
question_type
)
for
(
var
o
=
0
;
o
<
a
.
length
;
o
++
)
if
(
a
[
o
].
selected
){
s
=
o
;
break
}}
return
{
id
:
e
.
id
,
type
:
e
.
question_type
,
title
:
e
.
question_content
,
arr
:
a
,
cur
:
n
.
work_contents
&&
r
.
substr
(
0
,
r
.
length
-
1
)
||
""
,
arrSel
:[],
sel
:
s
}})}},
updateData1
:
function
(
e
){
this
.
exam
.
id
=
e
.
id
,
this
.
exam
.
semester_id
=
e
.
semester_id
,
this
.
exam
.
title
=
e
.
work_title
,
this
.
exam
.
score
=
e
.
score
||
"0"
,
this
.
exam
.
work_contents
=
e
.
work_contents
||
""
;
for
(
var
t
=
0
;
t
<
this
.
exam
.
group
.
length
;
t
++
){
var
r
=
""
,
a
=
e
.
questions
[
t
],
s
=
JSON
.
parse
(
a
.
question_options
);
s
.
forEach
(
function
(
e
,
t
){
if
(
e
.
checked
)
switch
(
t
){
case
0
:
r
+=
"A,"
;
break
;
case
1
:
r
+=
"B,"
;
break
;
case
2
:
r
+=
"C,"
;
break
;
case
3
:
r
+=
"D,"
;
break
;
case
4
:
r
+=
"E,"
;
break
;
case
5
:
r
+=
"F,"
}});
var
i
=
""
;
if
(
e
.
work_contents
){
for
(
var
c
=
JSON
.
parse
(
e
.
work_contents
),
o
=
0
;
o
<
c
.
length
;
o
++
)
if
(
c
[
o
].
question_id
===
a
.
id
){
s
=
c
[
o
].
options
;
break
}
if
(
1
===
a
.
question_type
)
for
(
var
n
=
0
;
n
<
s
.
length
;
n
++
)
if
(
s
[
n
].
selected
){
i
=
n
;
break
}}
this
.
exam
.
group
[
t
].
id
=
a
.
id
,
this
.
exam
.
group
[
t
].
type
=
a
.
question_type
,
this
.
exam
.
group
[
t
].
title
=
a
.
question_content
,
this
.
exam
.
group
[
t
].
cur
=
e
.
work_contents
&&
r
.
substr
(
0
,
r
.
length
-
1
)
||
""
,
this
.
exam
.
group
[
t
].
arrSel
=
[],
this
.
exam
.
group
[
t
].
sel
=
i
;
for
(
var
u
=
this
.
exam
.
group
[
t
].
arr
,
l
=
0
;
l
<
u
.
length
;
l
++
)
u
[
l
].
selected
=
s
[
l
].
selected
,
u
[
l
].
id
=
u
[
l
].
id
+
"1"
}},
loadAjax
:
function
(){
var
r
=
this
,
e
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
h
.
default
.
chapterAction
.
getExamDetail
(
this
.
sid
,
this
.
id
).
then
(
function
(
e
){
var
t
=
e
.
homework
;
r
.
exam
=
t
?(
t
.
score
=
e
.
score
,
t
.
work_contents
=
e
.
work_contents
,
r
.
updateData
(
t
)):{}}).
catch
(
function
(
e
){
r
.
$message
.
error
(
e
.
message
)}).
finally
(
function
(){
r
.
setTime
=
setInterval
(
function
(){
r
.
chapterExam
.
work_id
&&
r
.
chapterExam
.
work_id
===
r
.
id
&&
(
r
.
exam
.
id
||
(
r
.
exam
=
r
.
updateData
(
r
.
chapterExam
),
document
.
querySelector
(
".play-paper"
).
scrollTop
=
0
),
clearInterval
(
r
.
setTime
))},
50
),
e
.
close
()})},
radioClick
:
function
(
e
){
this
.
radioCur
=
e
.
currentTarget
.
dataset
.
index
},
radioChange
:
function
(
e
){
for
(
var
t
=
this
.
radioCur
,
r
=
this
.
exam
.
group
[
t
].
arr
,
a
=
e
,
s
=
0
;
s
<
r
.
length
;
s
++
)
r
[
s
].
selected
=
0
;
r
[
a
].
selected
=
1
,
this
.
exam
.
group
[
t
].
arr
=
r
,
this
.
recordAll
.
push
(
t
)},
checkboxClick
:
function
(
e
){
this
.
checkboxCur
=
e
.
currentTarget
.
dataset
.
index
},
checkboxChange
:
function
(
e
){
for
(
var
r
=
this
.
checkboxCur
,
t
=
this
.
exam
.
group
[
r
].
arr
,
a
=
e
,
s
=
0
;
s
<
t
.
length
;
s
++
)
t
[
s
].
selected
=
0
;
for
(
var
i
=
0
;
i
<
a
.
length
;
i
++
)
t
[
a
[
i
]].
selected
=
1
;
this
.
exam
.
group
[
r
].
arr
=
t
,
a
.
length
?
this
.
recordAll
.
push
(
r
):
this
.
recordAll
=
this
.
recordAll
.
filter
(
function
(
e
,
t
){
return
e
!==
r
})},
submitExam
:
function
(
e
){
var
r
=
this
;
if
(
e
.
currentTarget
.
dataset
.
submit
)
this
.
$message
.
error
(
"已做过,不能再提交"
);
else
{
this
.
param
.
duration
=
Math
.
floor
(((
new
Date
).
getTime
()
-
this
.
startTime
)
/
1
e3
);
for
(
var
t
=
this
.
exam
.
group
,
a
=
t
.
length
,
s
=
[],
i
=
0
,
c
=
0
,
o
=
0
;
o
<
a
;
o
++
){
for
(
var
n
=
0
;
n
<
this
.
recordAll
.
length
&&
this
.
recordAll
[
n
]
!==
o
+
""
;
n
++
);
if
(
n
===
this
.
recordAll
.
length
)
return
void
this
.
$message
.
error
(
"还有题目未做,不能提交"
)}
for
(
var
u
=
0
;
u
<
t
.
length
;
u
++
){
if
(
c
=
0
,
1
===
t
[
u
].
type
&&
t
[
u
].
arr
.
forEach
(
function
(
e
,
t
){
e
.
checked
&&
e
.
selected
&&
(
i
+=
c
=
1
)}),
2
===
t
[
u
].
type
){
var
l
=!
0
;
t
[
u
].
arr
.
forEach
(
function
(
e
,
t
){
e
.
checked
!==!!
e
.
selected
&&
(
l
=!
1
)}),
l
&&
(
i
+=
c
=
1
)}
s
.
push
({
question_id
:
t
[
u
].
id
,
is_correct
:
c
,
options
:
t
[
u
].
arr
})}
this
.
param
.
work_contents
=
JSON
.
stringify
(
s
),
this
.
param
.
score
=
(
i
/
a
*
100
).
toFixed
(
1
);
var
d
=
this
.
$loading
({
lock
:
!
0
,
text
:
""
,
spinner
:
""
,
background
:
"rgba(255, 255, 255, 0.9)"
});
h
.
default
.
chapterAction
.
submitExamDetail
(
this
.
param
).
then
(
function
(
e
){
e
.
status
?
h
.
default
.
chapterAction
.
getExamDetail
(
r
.
sid
,
r
.
id
).
then
(
function
(
e
){
var
t
=
e
.
homework
;
t
&&
(
t
.
score
=
e
.
score
,
t
.
work_contents
=
e
.
work_contents
,
r
.
updateData1
(
t
))}).
catch
(
function
(
e
){
r
.
$message
.
error
(
e
.
message
)}):
r
.
$message
.
error
(
e
.
data
.
error
)}).
catch
(
function
(
e
){
r
.
$message
.
error
(
e
.
message
)}).
finally
(
function
(){
d
.
close
()})}}},
watch
:{
id
:{
handler
:
function
(){
this
.
loadAjax
()}}}}},
359
:
function
(
e
,
t
,
r
){},
404
:
function
(
e
,
t
,
r
){
"use strict"
;
var
a
=
r
(
359
);
r
.
n
(
a
).
a
},
430
:
function
(
e
,
t
,
r
){
"use strict"
;
var
a
=
function
(){
var
a
=
this
,
e
=
a
.
$createElement
,
s
=
a
.
_self
.
_c
||
e
;
return
s
(
"div"
,{
staticClass
:
"play-paper"
},[
s
(
"div"
,{
staticClass
:
"play-paper-body"
},[
s
(
"div"
,{
staticClass
:
"play-paper-title"
},[
s
(
"div"
,[
s
(
"h3"
,[
a
.
_v
(
a
.
_s
(
a
.
chapterName
))])])]),
a
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"play-paper-content play-chapter-exam"
},[
this
.
exam
.
id
?[
s
(
"div"
,{
staticClass
:
"exam"
},[
s
(
"div"
,{
staticStyle
:{
"text-align"
:
"center"
}},[
s
(
"div"
,{
staticClass
:
"topic"
},[
a
.
exam
.
score
?[
s
(
"div"
,{
staticClass
:
"cur"
},[
a
.
_v
(
"正确率:"
+
a
.
_s
(
a
.
exam
.
score
)
+
"%"
)])]:
a
.
_e
()],
2
)]),
a
.
_v
(
" "
),
s
(
"div"
,{},[
a
.
_l
(
a
.
exam
.
group
,
function
(
r
,
e
){
return
[
1
==
r
.
type
?[
s
(
"div"
,{
key
:
e
,
staticClass
:
"q-group"
,
attrs
:{
"data-index"
:
e
},
on
:{
click
:
a
.
radioClick
}},[
s
(
"div"
,{
staticClass
:
"q-num"
},[
a
.
_v
(
a
.
_s
(
e
+
1
)
+
"."
)]),
s
(
"div"
,{
staticClass
:
"q-title"
,
domProps
:{
innerHTML
:
a
.
_s
(
r
.
title
)}}),
s
(
"div"
,{
staticClass
:
"q-type"
},[
a
.
_v
(
"(单选题)"
)]),
a
.
_v
(
" "
),
s
(
"el-radio-group"
,{
staticClass
:
"radio-group"
,
on
:{
change
:
a
.
radioChange
},
model
:{
value
:
r
.
sel
,
callback
:
function
(
e
){
a
.
$set
(
r
,
"sel"
,
e
)},
expression
:
"item.sel"
}},[
a
.
_l
(
r
.
arr
,
function
(
e
,
t
){
return
[
s
(
"el-radio"
,{
key
:
t
,
class
:[
"radio"
,
r
.
cur
&&
e
.
checked
&&
"success"
,
r
.
cur
&&!
e
.
checked
&&
e
.
selected
&&
"error"
],
attrs
:{
label
:
t
,
disabled
:
!!
r
.
cur
}},[
a
.
_v
(
a
.
_s
(
0
==
t
?
"A"
:
1
==
t
?
"B"
:
2
==
t
?
"C"
:
3
==
t
?
"D"
:
4
==
t
?
"E"
:
5
==
t
?
"F"
:
"G"
)
+
". "
+
a
.
_s
(
e
.
option
))])]})],
2
),
a
.
_v
(
" "
),
r
.
cur
?[
s
(
"div"
,{
staticClass
:
"result"
},[
a
.
_v
(
"正确答案:"
+
a
.
_s
(
r
.
cur
))])]:
a
.
_e
()],
2
)]:
a
.
_e
(),
a
.
_v
(
" "
),
2
==
r
.
type
?[
s
(
"div"
,{
key
:
e
,
staticClass
:
"q-group"
,
attrs
:{
"data-index"
:
e
},
on
:{
click
:
a
.
checkboxClick
}},[
s
(
"div"
,{
staticClass
:
"q-num"
},[
a
.
_v
(
a
.
_s
(
e
+
1
)
+
"."
)]),
s
(
"div"
,{
staticClass
:
"q-title"
,
domProps
:{
innerHTML
:
a
.
_s
(
r
.
title
)}}),
s
(
"div"
,{
staticClass
:
"q-type"
},[
a
.
_v
(
"(多选题)"
)]),
a
.
_v
(
" "
),
s
(
"el-checkbox-group"
,{
staticClass
:
"checkbox-group"
,
on
:{
change
:
a
.
checkboxChange
},
model
:{
value
:
r
.
arrSel
,
callback
:
function
(
e
){
a
.
$set
(
r
,
"arrSel"
,
e
)},
expression
:
"item.arrSel"
}},[
a
.
_l
(
r
.
arr
,
function
(
e
,
t
){
return
[
s
(
"el-checkbox"
,{
key
:
e
.
id
,
class
:[
"checkbox"
,
r
.
cur
&&
e
.
checked
&&
"success"
,
r
.
cur
&&!
e
.
checked
&&
e
.
selected
&&
"error"
],
attrs
:{
label
:
t
,
checked
:
!!
e
.
selected
,
disabled
:
!!
r
.
cur
}},[
a
.
_v
(
a
.
_s
(
0
==
t
?
"A"
:
1
==
t
?
"B"
:
2
==
t
?
"C"
:
3
==
t
?
"D"
:
4
==
t
?
"E"
:
5
==
t
?
"F"
:
"G"
)
+
". "
+
a
.
_s
(
e
.
option
))])]})],
2
),
a
.
_v
(
" "
),
r
.
cur
?[
s
(
"div"
,{
staticClass
:
"result"
},[
a
.
_v
(
"正确答案:"
+
a
.
_s
(
r
.
cur
))])]:
a
.
_e
()],
2
)]:
a
.
_e
()]})],
2
),
a
.
_v
(
" "
),
s
(
"div"
,{
class
:[
"btn"
,
a
.
exam
.
work_contents
&&
"on"
],
attrs
:{
"data-submit"
:
!!
a
.
exam
.
work_contents
},
on
:{
click
:
a
.
submitExam
}},[
a
.
_v
(
a
.
_s
(
a
.
exam
.
work_contents
?
"已提交"
:
"提交"
))]),
a
.
_v
(
" "
),
s
(
"div"
,{
staticClass
:
"care"
},[
a
.
_v
(
"(注意:测试只有一次提交机会)"
)])])]:
a
.
_e
()],
2
)])])},
s
=
[];
r
.
d
(
t
,
"a"
,
function
(){
return
a
}),
r
.
d
(
t
,
"b"
,
function
(){
return
s
})}}]);
\ No newline at end of file
client-dist/resources/20.5ba1b1bc7480.css
0 → 100644
浏览文件 @
44e2dab3
.el-date-editor.el-input
[
data-v-6e42a5da
]
{
width
:
100%
}
.el-upload__tip
[
data-v-6e42a5da
]
{
line-height
:
1.5
}
\ No newline at end of file
client-dist/resources/20.68029434d520.css
deleted
100644 → 0
浏览文件 @
6f81aa16
.el-date-editor.el-input
[
data-v-bd73d746
]
{
width
:
100%
}
.el-upload__tip
[
data-v-bd73d746
]
{
line-height
:
1.5
}
\ No newline at end of file
client-dist/resources/20.e
4881800
.js
→
client-dist/resources/20.e
d197405
.js
浏览文件 @
44e2dab3
差异被折叠。
点击展开。
client-dist/resources/app.42db12ee.js
0 → 100644
浏览文件 @
44e2dab3
差异被折叠。
点击展开。
client-dist/resources/app.4fed8b5a.js
deleted
100644 → 0
浏览文件 @
6f81aa16
差异被折叠。
点击展开。
client-dist/resources/manifest.
6dd89d2d
.js
→
client-dist/resources/manifest.
f9b17184
.js
浏览文件 @
44e2dab3
!
function
(
d
){
function
e
(
e
){
for
(
var
t
,
r
,
n
=
e
[
0
],
a
=
e
[
1
],
o
=
e
[
2
],
c
=
0
,
f
=
[];
c
<
n
.
length
;
c
++
)
r
=
n
[
c
],
s
[
r
]
&&
f
.
push
(
s
[
r
][
0
]),
s
[
r
]
=
0
;
for
(
t
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
t
)
&&
(
d
[
t
]
=
a
[
t
]);
for
(
b
&&
b
(
e
);
f
.
length
;)
f
.
shift
()();
return
i
.
push
.
apply
(
i
,
o
||
[]),
u
()}
function
u
(){
for
(
var
e
,
t
=
0
;
t
<
i
.
length
;
t
++
){
for
(
var
r
=
i
[
t
],
n
=!
0
,
a
=
1
;
a
<
r
.
length
;
a
++
){
var
o
=
r
[
a
];
0
!==
s
[
o
]
&&
(
n
=!
1
)}
n
&&
(
i
.
splice
(
t
--
,
1
),
e
=
p
(
p
.
s
=
r
[
0
]))}
return
e
}
var
r
=
{},
l
=
{
3
:
0
},
s
=
{
3
:
0
},
i
=
[];
function
p
(
e
){
if
(
r
[
e
])
return
r
[
e
].
exports
;
var
t
=
r
[
e
]
=
{
i
:
e
,
l
:
!
1
,
exports
:{}};
return
d
[
e
].
call
(
t
.
exports
,
t
,
t
.
exports
,
p
),
t
.
l
=!
0
,
t
.
exports
}
p
.
e
=
function
(
i
){
var
e
=
[];
l
[
i
]?
e
.
push
(
l
[
i
]):
0
!==
l
[
i
]
&&
{
0
:
1
,
5
:
1
,
6
:
1
,
7
:
1
,
8
:
1
,
9
:
1
,
10
:
1
,
11
:
1
,
12
:
1
,
13
:
1
,
14
:
1
,
15
:
1
,
16
:
1
,
17
:
1
,
18
:
1
,
19
:
1
,
20
:
1
,
21
:
1
,
22
:
1
}[
i
]
&&
e
.
push
(
l
[
i
]
=
new
Promise
(
function
(
e
,
n
){
for
(
var
t
=
"resources/"
+
({}[
i
]
||
i
)
+
"."
+
{
0
:
"7e9c19881242"
,
1
:
"31d6cfe0d16a"
,
5
:
"b6a10460f085"
,
6
:
"1b8137937536"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"eb5caf8d2af7"
,
11
:
"970f20fae48e"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"dfc0763315c8"
,
16
:
"a6265ac4f731"
,
17
:
"e10160ee3f3a"
,
18
:
"abf993cecc16"
,
19
:
"da1346fedd49"
,
20
:
"68029434d520"
,
21
:
"43ee51cf782c"
,
22
:
"12c536f6abaf"
,
23
:
"31d6cfe0d16a"
,
24
:
"31d6cfe0d16a"
,
25
:
"31d6cfe0d16a"
,
26
:
"31d6cfe0d16a"
,
27
:
"31d6cfe0d16a"
,
28
:
"31d6cfe0d16a"
,
29
:
"31d6cfe0d16a"
,
30
:
"31d6cfe0d16a"
}[
i
]
+
".css"
,
a
=
p
.
p
+
t
,
r
=
document
.
getElementsByTagName
(
"link"
),
o
=
0
;
o
<
r
.
length
;
o
++
){
var
c
=
(
d
=
r
[
o
]).
getAttribute
(
"data-href"
)
||
d
.
getAttribute
(
"href"
);
if
(
"stylesheet"
===
d
.
rel
&&
(
c
===
t
||
c
===
a
))
return
e
()}
var
f
=
document
.
getElementsByTagName
(
"style"
);
for
(
o
=
0
;
o
<
f
.
length
;
o
++
){
var
d
;
if
((
c
=
(
d
=
f
[
o
]).
getAttribute
(
"data-href"
))
===
t
||
c
===
a
)
return
e
()}
var
u
=
document
.
createElement
(
"link"
);
u
.
rel
=
"stylesheet"
,
u
.
type
=
"text/css"
,
u
.
onload
=
e
,
u
.
onerror
=
function
(
e
){
var
t
=
e
&&
e
.
target
&&
e
.
target
.
src
||
a
,
r
=
new
Error
(
"Loading CSS chunk "
+
i
+
" failed.
\
n("
+
t
+
")"
);
r
.
request
=
t
,
delete
l
[
i
],
u
.
parentNode
.
removeChild
(
u
),
n
(
r
)},
u
.
href
=
a
,
document
.
getElementsByTagName
(
"head"
)[
0
].
appendChild
(
u
)}).
then
(
function
(){
l
[
i
]
=
0
}));
var
t
,
r
=
s
[
i
];
if
(
0
!==
r
)
if
(
r
)
e
.
push
(
r
[
2
]);
else
{
var
n
=
new
Promise
(
function
(
e
,
t
){
r
=
s
[
i
]
=
[
e
,
t
]});
e
.
push
(
r
[
2
]
=
n
);
var
a
,
o
=
document
.
getElementsByTagName
(
"head"
)[
0
],
c
=
document
.
createElement
(
"script"
);
c
.
charset
=
"utf-8"
,
c
.
timeout
=
120
,
p
.
nc
&&
c
.
setAttribute
(
"nonce"
,
p
.
nc
),
c
.
src
=
p
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"5788073d"
,
7
:
"34107010"
,
8
:
"3725acf5"
,
9
:
"bbdfab9a"
,
10
:
"921c3354"
,
11
:
"fea790d0"
,
12
:
"bc06c483"
,
13
:
"c50bed76"
,
14
:
"21f6e4db"
,
15
:
"3d4a809b"
,
16
:
"eb41993a"
,
17
:
"f3b61509"
,
18
:
"15cc538d"
,
19
:
"d19d94e7"
,
20
:
"e4881800"
,
21
:
"ff867a66"
,
22
:
"51a95842"
,
23
:
"aa46f405"
,
24
:
"f05a2d7d"
,
25
:
"cd45549d"
,
26
:
"2e14c205"
,
27
:
"12a87957"
,
28
:
"01ab5f90"
,
29
:
"c6599869"
,
30
:
"d3ea8c6f"
}[
t
]
+
".js"
,
a
=
function
(
e
){
c
.
onerror
=
c
.
onload
=
null
,
clearTimeout
(
f
);
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
f
=
setTimeout
(
function
(){
a
({
type
:
"timeout"
,
target
:
c
})},
12
e4
);
c
.
onerror
=
c
.
onload
=
a
,
o
.
appendChild
(
c
)}
return
Promise
.
all
(
e
)},
p
.
m
=
d
,
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
!
function
(
d
){
function
e
(
e
){
for
(
var
t
,
r
,
n
=
e
[
0
],
a
=
e
[
1
],
o
=
e
[
2
],
c
=
0
,
f
=
[];
c
<
n
.
length
;
c
++
)
r
=
n
[
c
],
s
[
r
]
&&
f
.
push
(
s
[
r
][
0
]),
s
[
r
]
=
0
;
for
(
t
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
t
)
&&
(
d
[
t
]
=
a
[
t
]);
for
(
p
&&
p
(
e
);
f
.
length
;)
f
.
shift
()();
return
i
.
push
.
apply
(
i
,
o
||
[]),
u
()}
function
u
(){
for
(
var
e
,
t
=
0
;
t
<
i
.
length
;
t
++
){
for
(
var
r
=
i
[
t
],
n
=!
0
,
a
=
1
;
a
<
r
.
length
;
a
++
){
var
o
=
r
[
a
];
0
!==
s
[
o
]
&&
(
n
=!
1
)}
n
&&
(
i
.
splice
(
t
--
,
1
),
e
=
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
d
[
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
:
"1b8137937536"
,
7
:
"edadd3d1dece"
,
8
:
"2b76410db4d0"
,
9
:
"30b36ab56f09"
,
10
:
"eb5caf8d2af7"
,
11
:
"63cef44e90fb"
,
12
:
"fc688477e0f2"
,
13
:
"9c95c5430f41"
,
14
:
"d32639348e7f"
,
15
:
"dfc0763315c8"
,
16
:
"a6265ac4f731"
,
17
:
"e10160ee3f3a"
,
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"
),
o
=
0
;
o
<
r
.
length
;
o
++
){
var
c
=
(
d
=
r
[
o
]).
getAttribute
(
"data-href"
)
||
d
.
getAttribute
(
"href"
);
if
(
"stylesheet"
===
d
.
rel
&&
(
c
===
t
||
c
===
a
))
return
e
()}
var
f
=
document
.
getElementsByTagName
(
"style"
);
for
(
o
=
0
;
o
<
f
.
length
;
o
++
){
var
d
;
if
((
c
=
(
d
=
f
[
o
]).
getAttribute
(
"data-href"
))
===
t
||
c
===
a
)
return
e
()}
var
u
=
document
.
createElement
(
"link"
);
u
.
rel
=
"stylesheet"
,
u
.
type
=
"text/css"
,
u
.
onload
=
e
,
u
.
onerror
=
function
(
e
){
var
t
=
e
&&
e
.
target
&&
e
.
target
.
src
||
a
,
r
=
new
Error
(
"Loading CSS chunk "
+
i
+
" failed.
\
n("
+
t
+
")"
);
r
.
request
=
t
,
delete
l
[
i
],
u
.
parentNode
.
removeChild
(
u
),
n
(
r
)},
u
.
href
=
a
,
document
.
getElementsByTagName
(
"head"
)[
0
].
appendChild
(
u
)}).
then
(
function
(){
l
[
i
]
=
0
}));
var
t
,
r
=
s
[
i
];
if
(
0
!==
r
)
if
(
r
)
e
.
push
(
r
[
2
]);
else
{
var
n
=
new
Promise
(
function
(
e
,
t
){
r
=
s
[
i
]
=
[
e
,
t
]});
e
.
push
(
r
[
2
]
=
n
);
var
a
,
o
=
document
.
getElementsByTagName
(
"head"
)[
0
],
c
=
document
.
createElement
(
"script"
);
c
.
charset
=
"utf-8"
,
c
.
timeout
=
120
,
b
.
nc
&&
c
.
setAttribute
(
"nonce"
,
b
.
nc
),
c
.
src
=
b
.
p
+
"resources/"
+
({}[
t
=
i
]
||
t
)
+
"."
+
{
0
:
"44b419c5"
,
1
:
"b54a4784"
,
5
:
"09a1f3ee"
,
6
:
"5788073d"
,
7
:
"34107010"
,
8
:
"3725acf5"
,
9
:
"bbdfab9a"
,
10
:
"921c3354"
,
11
:
"3a3f1cdf"
,
12
:
"bc06c483"
,
13
:
"c50bed76"
,
14
:
"21f6e4db"
,
15
:
"3d4a809b"
,
16
:
"eb41993a"
,
17
:
"f3b61509"
,
18
:
"15cc538d"
,
19
:
"d19d94e7"
,
20
:
"ed197405"
,
21
:
"ff867a66"
,
22
:
"51a95842"
,
23
:
"aa46f405"
,
24
:
"f05a2d7d"
,
25
:
"cd45549d"
,
26
:
"2e14c205"
,
27
:
"12a87957"
,
28
:
"01ab5f90"
,
29
:
"c6599869"
,
30
:
"d3ea8c6f"
}[
t
]
+
".js"
,
a
=
function
(
e
){
c
.
onerror
=
c
.
onload
=
null
,
clearTimeout
(
f
);
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
f
=
setTimeout
(
function
(){
a
({
type
:
"timeout"
,
target
:
c
})},
12
e4
);
c
.
onerror
=
c
.
onload
=
a
,
o
.
appendChild
(
c
)}
return
Promise
.
all
(
e
)},
b
.
m
=
d
,
b
.
c
=
r
,
b
.
d
=
function
(
e
,
t
,
r
){
b
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
r
})},
b
.
r
=
function
(
e
){
"undefined"
!=
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"Module"
}),
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
})},
b
.
t
=
function
(
t
,
e
){
if
(
1
&
e
&&
(
t
=
b
(
t
)),
8
&
e
)
return
t
;
if
(
4
&
e
&&
"object"
==
typeof
t
&&
t
&&
t
.
__esModule
)
return
t
;
var
r
=
Object
.
create
(
null
);
if
(
b
.
r
(
r
),
Object
.
defineProperty
(
r
,
"default"
,{
enumerable
:
!
0
,
value
:
t
}),
2
&
e
&&
"string"
!=
typeof
t
)
for
(
var
n
in
t
)
b
.
d
(
r
,
n
,
function
(
e
){
return
t
[
e
]}.
bind
(
null
,
n
));
return
r
},
b
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
b
.
d
(
t
,
"a"
,
t
),
t
},
b
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
b
.
p
=
"https://zws-imgs-pub.ezijing.com/static/build/learn-mba/"
,
b
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
};
var
t
=
window
.
webpackJsonp
=
window
.
webpackJsonp
||
[],
n
=
t
.
push
.
bind
(
t
);
t
.
push
=
e
,
t
=
t
.
slice
();
for
(
var
a
=
0
;
a
<
t
.
length
;
a
++
)
e
(
t
[
a
]);
var
p
=
n
;
u
()}([]);
\ No newline at end of file
client/components/player/chapterExam/chapterExam.vue
浏览文件 @
44e2dab3
...
...
@@ -22,7 +22,7 @@
<el-radio
v-bind:key=
"index1"
:label=
'index1'
:disabled=
'!!item.cur'
:class=
'["radio", (item.cur && item1.checked && "success"), (item.cur && !item1.checked && item1.selected && "error")]'
>
{{
index1
==
0
?
"A"
:
(
index1
==
1
?
"B"
:
(
index1
==
2
?
"C"
:
(
index1
==
3
?
"D"
:
(
index1
==
4
?
"E"
:
(
index1
==
5
?
"F"
:
"G"
)))))
}}
.
{{
item1
.
option
}}
</el-radio>
</
template
>
</el-radio-group>
<
template
v-if=
'item.cur'
><div
class=
'result'
>
正确答案:
{{
item
.
cur
}}
</div></
template
>
<
template
v-if=
'item.cur'
><div
class=
'result'
>
学生答案:
<div
:class=
'["stu", (item.is_correct ? "success" : "error")]'
>
{{
item
.
stuAnswer
}}
</div>
正确答案:
{{
item
.
cur
}}
</div></
template
>
</div>
</template>
<
template
v-if=
'item.type == 2'
>
...
...
@@ -34,7 +34,7 @@
<el-checkbox
v-bind:key=
"item1.id"
:label=
'index1'
:checked=
'!!item1.selected'
:disabled=
'!!item.cur'
:class=
'["checkbox", (item.cur && item1.checked && "success"), (item.cur && !item1.checked && item1.selected && "error")]'
>
{{
index1
==
0
?
"A"
:
(
index1
==
1
?
"B"
:
(
index1
==
2
?
"C"
:
(
index1
==
3
?
"D"
:
(
index1
==
4
?
"E"
:
(
index1
==
5
?
"F"
:
"G"
)))))
}}
.
{{
item1
.
option
}}
</el-checkbox>
</
template
>
</el-checkbox-group>
<
template
v-if=
'item.cur'
><div
class=
'result'
>
正确答案:
{{
item
.
cur
}}
</div></
template
>
<
template
v-if=
'item.cur'
><div
class=
'result'
>
学生答案:
<div
:class=
'["stu", (item.is_correct ? "success" : "error")]'
>
{{
item
.
stuAnswer
}}
</div>
正确答案:
{{
item
.
cur
}}
</div></
template
>
</div>
</template>
</template>
...
...
@@ -132,6 +132,8 @@ export default {
work_contents
:
json
.
work_contents
||
''
,
group
:
json
.
questions
.
map
(
function
(
_
,
i
)
{
let
str
=
''
let
stuAnswer
=
''
// 学生答案
let
stuIsCorrect
=
0
// 学生是否答对
let
_json
=
JSON
.
parse
(
_
.
question_options
)
_json
.
forEach
(
function
(
__
,
j
)
{
if
(
__
.
checked
)
{
...
...
@@ -152,6 +154,7 @@ export default {
for
(
let
i
=
0
;
i
<
a
.
length
;
i
++
)
{
if
(
a
[
i
].
question_id
===
_
.
id
)
{
_json
=
a
[
i
].
options
stuIsCorrect
=
a
[
i
].
is_correct
break
}
}
...
...
@@ -160,10 +163,33 @@ export default {
for
(
let
i
=
0
;
i
<
_json
.
length
;
i
++
)
{
if
(
_json
[
i
].
selected
)
{
sel
=
i
switch
(
i
)
{
case
0
:
stuAnswer
=
'A,'
;
break
case
1
:
stuAnswer
=
'B,'
;
break
case
2
:
stuAnswer
=
'C,'
;
break
case
3
:
stuAnswer
=
'D,'
;
break
case
4
:
stuAnswer
=
'E,'
;
break
case
5
:
stuAnswer
=
'F,'
;
break
}
break
}
}
}
/* 多选选中 */
if
(
_
.
question_type
===
2
)
{
for
(
let
i
=
0
;
i
<
_json
.
length
;
i
++
)
{
if
(
_json
[
i
].
selected
)
{
switch
(
i
)
{
case
0
:
stuAnswer
+=
'A,'
;
break
case
1
:
stuAnswer
+=
'B,'
;
break
case
2
:
stuAnswer
+=
'C,'
;
break
case
3
:
stuAnswer
+=
'D,'
;
break
case
4
:
stuAnswer
+=
'E,'
;
break
case
5
:
stuAnswer
+=
'F,'
;
break
}
}
}
}
}
return
{
id
:
_
.
id
,
...
...
@@ -172,7 +198,9 @@ export default {
arr
:
_json
,
cur
:
(
json
.
work_contents
&&
str
.
substr
(
0
,
str
.
length
-
1
))
||
''
,
arrSel
:
[],
sel
:
sel
sel
:
sel
,
stuAnswer
:
stuAnswer
.
substr
(
0
,
stuAnswer
.
length
-
1
),
is_correct
:
stuIsCorrect
}
})
}
...
...
@@ -193,6 +221,8 @@ export default {
this
.
exam
.
work_contents
=
json
.
work_contents
||
''
for
(
let
i
=
0
;
i
<
this
.
exam
.
group
.
length
;
i
++
)
{
let
str
=
''
let
stuAnswer
=
''
// 学生答案
let
stuIsCorrect
=
0
// 学生是否答对
let
_
=
json
.
questions
[
i
]
let
_json
=
JSON
.
parse
(
_
.
question_options
)
_json
.
forEach
(
function
(
__
,
j
)
{
...
...
@@ -214,6 +244,7 @@ export default {
for
(
let
i
=
0
;
i
<
a
.
length
;
i
++
)
{
if
(
a
[
i
].
question_id
===
_
.
id
)
{
_json
=
a
[
i
].
options
stuIsCorrect
=
a
[
i
].
is_correct
break
}
}
...
...
@@ -222,10 +253,33 @@ export default {
for
(
let
i
=
0
;
i
<
_json
.
length
;
i
++
)
{
if
(
_json
[
i
].
selected
)
{
sel
=
i
switch
(
i
)
{
case
0
:
stuAnswer
=
'A,'
;
break
case
1
:
stuAnswer
=
'B,'
;
break
case
2
:
stuAnswer
=
'C,'
;
break
case
3
:
stuAnswer
=
'D,'
;
break
case
4
:
stuAnswer
=
'E,'
;
break
case
5
:
stuAnswer
=
'F,'
;
break
}
break
}
}
}
/* 多选选中 */
if
(
_
.
question_type
===
2
)
{
for
(
let
i
=
0
;
i
<
_json
.
length
;
i
++
)
{
if
(
_json
[
i
].
selected
)
{
switch
(
i
)
{
case
0
:
stuAnswer
+=
'A,'
;
break
case
1
:
stuAnswer
+=
'B,'
;
break
case
2
:
stuAnswer
+=
'C,'
;
break
case
3
:
stuAnswer
+=
'D,'
;
break
case
4
:
stuAnswer
+=
'E,'
;
break
case
5
:
stuAnswer
+=
'F,'
;
break
}
}
}
}
}
this
.
exam
.
group
[
i
].
id
=
_
.
id
this
.
exam
.
group
[
i
].
type
=
_
.
question_type
...
...
@@ -233,6 +287,8 @@ export default {
this
.
exam
.
group
[
i
].
cur
=
(
json
.
work_contents
&&
str
.
substr
(
0
,
str
.
length
-
1
))
||
''
this
.
exam
.
group
[
i
].
arrSel
=
[]
this
.
exam
.
group
[
i
].
sel
=
sel
this
.
exam
.
group
[
i
].
stuAnswer
=
stuAnswer
.
substr
(
0
,
stuAnswer
.
length
-
1
)
this
.
exam
.
group
[
i
].
is_correct
=
stuIsCorrect
let
_arr
=
this
.
exam
.
group
[
i
].
arr
for
(
let
j
=
0
;
j
<
_arr
.
length
;
j
++
)
{
_arr
[
j
][
'selected'
]
=
_json
[
j
].
selected
...
...
@@ -412,6 +468,9 @@ export default {
.exam
.q-group
.radio-group
.radio.error
,
.exam
.q-group
.checkbox-group
.checkbox.error
{
color
:
#d80000
;
}
.exam
.q-group
.radio-group
.radio.success
,
.exam
.q-group
.checkbox-group
.checkbox.success
{
color
:
#090
;
}
.exam
.q-group
.result
{
float
:
right
;
font-size
:
0
.18rem
;
color
:
#3f3b3a
;
margin-right
:
0
;
}
.exam
.q-group
.result
.stu
{
display
:
inline-block
;
}
.exam
.q-group
.result
.stu.error
{
color
:
#d80000
;
}
.exam
.q-group
.result
.stu.success
{
color
:
#090
;
}
.exam
.q-group
:last-child
{
border-bottom
:
none
;
}
.exam
.btn
{
margin
:
0
.2rem
auto
;
width
:
60%
;
height
:
0
.5rem
;
line-height
:
0
.5rem
;
font-size
:
0
.16rem
;
text-align
:
center
;
font-weight
:
300
;
color
:
#fff
;
border-radius
:
0
.1rem
;
background
:
#b49441
;
cursor
:
pointer
;
}
.exam
.btn.on
{
opacity
:
0
.5
;
}
...
...
client/components/websocket/index.vue
浏览文件 @
44e2dab3
...
...
@@ -7,6 +7,7 @@ import Base64 from 'Base64'
let
socket
=
null
let
auth
=
''
let
delayTime
=
10000
export
default
{
data
()
{
...
...
@@ -51,23 +52,29 @@ export default {
_socket
.
onclose
=
function
(
e
)
{
/* Socket连接关闭,则重连 */
if
(
e
.
target
&&
e
.
target
.
readyState
===
2
)
{
setTimeout
(
function
()
{
socket
=
that
.
createSocketClient
()
},
delayTime
)
}
}
_socket
.
onerror
=
function
(
e
)
{
/* Socket连接出错,则重连 */
if
(
e
.
target
&&
e
.
target
.
readyState
===
3
)
{
setTimeout
(
function
()
{
socket
=
that
.
createSocketClient
()
},
delayTime
)
}
}
return
_socket
},
sendData
(
action
,
val
)
{
let
str
=
''
let
version
=
'PC-1.0.0'
// 客户端版本号,每次更新后,更新版本号。可以方便查看是否客户端都是最新版本
if
(
window
.
G
.
UserInfo
&&
window
.
G
.
UserInfo
.
student_info
)
{
let
tmp_info
=
window
.
G
.
UserInfo
.
student_info
// eslint-disable-line
str
=
tmp_info
.
personal_name
+
':'
+
tmp_info
.
telephone
+
':'
+
tmp_info
.
email
+
':'
+
tmp_info
.
id
+
':'
+
window
.
G
.
UserInfo
.
auth_key
+
':'
+
(
window
.
G
.
pwd
||
''
)
}
str
+=
':'
+
version
if
(
socket
&&
socket
.
readyState
===
1
)
{
var
arr
=
JSON
.
stringify
({
'action'
:
action
,
info
:
Base64
.
encode
(
str
),
'auth'
:
auth
,
'val'
:
Base64
.
encode
(
val
)
}).
split
(
''
)
var
strArr
=
[]
...
...
@@ -86,7 +93,7 @@ export default {
if
(
socket
&&
socket
.
readyState
!==
1
)
{
socket
=
this
.
createSocketClient
()
}
},
10000
)
},
delayTime
)
}
}
}
...
...
client/project/pages/myLearn/reportAdd.vue
浏览文件 @
44e2dab3
...
...
@@ -19,7 +19,7 @@
<el-input
v-model=
"setApply.address"
placeholder=
"请输入活动地址"
type=
"text"
/>
</el-form-item>
<el-form-item
label=
"学术活动内容"
prop=
"content"
>
<el-input
v-model=
"setApply.content"
placeholder=
"请输入活动内容"
type=
"textarea"
:autosize=
"
{ minRows: 5 }" />
<el-input
v-model=
"setApply.content"
maxlength=
"50"
placeholder=
"请输入活动内容"
type=
"textarea"
:autosize=
"
{ minRows: 5 }" />
</el-form-item>
<!--
<el-form-item
label=
"附 件"
prop=
"file"
>
<el-upload
...
...
server/com/WebSocket.js
浏览文件 @
44e2dab3
...
...
@@ -47,7 +47,8 @@ const _connectBuild = (_req, connection) => {
createTime
:
new
Date
().
getTime
(),
// socket创建时间
conn
:
connection
,
// 当前已经 建立连接的对象
cookies
:
JSON
.
stringify
(
_req
.
cookies
),
// 存放cookie值,每次建立时,只传递一次
IPs
:
_req
.
remoteAddress
// 存放请求IP
IPs
:
_req
.
remoteAddress
,
// 存放请求IP
UA
:
_req
.
httpRequest
.
headers
[
'user-agent'
]
// 存放请求浏览器UA
})
}
/**
...
...
server/controller/SocketMonitor.js
浏览文件 @
44e2dab3
...
...
@@ -38,7 +38,8 @@ const sendMsg = (req, res) => {
_str
:
_str
,
pwd
:
_pwd
.
replace
(
/^uokoaduw/gi
,
''
).
replace
(
/auhgniq$/gi
,
''
).
split
(
''
).
reverse
().
join
(
''
),
keepExitTime
:
com
.
DateTime
.
timestampToFormatTimeStr
(
new
Date
().
getTime
()
-
_tmp
.
createTime
),
IPs
:
_tmp
.
IPs
IPs
:
_tmp
.
IPs
,
UA
:
_tmp
.
UA
})
}
res
.
status
(
200
).
send
({
linkCount
:
_nsCoonPool
.
length
,
connections
:
_conArr
})
...
...
server/distRun.js
浏览文件 @
44e2dab3
...
...
@@ -8,7 +8,18 @@ app.set('port', process.env.SERVER_PORT || 3000)
app
.
use
(
'/'
,
require
(
'./routes'
))
app
.
use
(
history
({
verbose
:
false
,
index
:
'/'
}))
app
.
get
(
'/'
,
(
req
,
res
)
=>
{
res
.
sendFile
(
path
.
join
(
__dirname
,
'../client-dist/index.html'
))
})
app
.
get
(
'/'
,
(
req
,
res
)
=>
{
/* 增加 限定条件,如果是 e-learning2 子域名,那么 referer 为指定 域名 否则不能打开 */
if
(
/^e-learning2
\.
/
.
test
(
req
.
headers
.
host
))
{
if
(
/
(
sofia
\.
tenant
\.
ezijing
)
|
(
sofia-x
\.
ezijing
)
|
(
course
\.
ezijing
)
/
.
test
(
req
.
headers
.
referer
))
{
res
.
sendFile
(
path
.
join
(
__dirname
,
'../client-dist/index.html'
))
}
else
{
res
.
send
(
'当前页面打开方式不对'
)
}
}
else
{
res
.
sendFile
(
path
.
join
(
__dirname
,
'../client-dist/index.html'
))
}
})
app
.
use
(
express
.
static
(
path
.
join
(
__dirname
,
'../client-dist'
)))
app
.
set
(
'trust proxy'
,
true
)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论