Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
educationStu
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
向伟
educationStu
Commits
6a337486
Commit
6a337486
authored
Sep 16, 2021
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
6f41651b
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
392 additions
and
533 deletions
+392
-533
ListenTopic.vue
src/components/subject/ListenTopic.vue
+1
-1
SortingProblem.vue
src/components/subject/SortingProblem.vue
+3
-3
answer.vue
src/components/subject/answer.vue
+0
-14
examPaper.vue
src/pages/exam/examPaper.vue
+388
-515
No files found.
src/components/subject/ListenTopic.vue
View file @
6a337486
...
@@ -55,7 +55,7 @@
...
@@ -55,7 +55,7 @@
<view
class=
"flex flex_start_center item3"
v-if=
"item2.QuestionKey === 'multiple'"
>
<view
class=
"flex flex_start_center item3"
v-if=
"item2.QuestionKey === 'multiple'"
>
<
template
v-if=
"isOperate"
>
<
template
v-if=
"isOperate"
>
<view
class=
"chooseNum"
:class=
"
{ myAnswer: item3.IsAnswer }"
<view
class=
"chooseNum"
:class=
"
{ myAnswer: item3.IsAnswer }"
@click="multipleChange(item3)">
{{
item3
.
Name
}}
@click="multipleChange(item
2,item
3)">
{{
item3
.
Name
}}
</view>
</view>
<view
class=
"chooseName"
@
click=
"multipleChange(item2, item3)"
<view
class=
"chooseName"
@
click=
"multipleChange(item2, item3)"
v-html=
"item3.Content"
></view>
v-html=
"item3.Content"
></view>
...
...
src/components/subject/SortingProblem.vue
View file @
6a337486
<
template
>
<
template
>
<!-- 计算题 -->
<!-- 计算题 -->
<view>
<view>
<view
class=
"item"
style=
"padding: 0 20px"
>
<view
class=
"item"
>
<view
class=
"name"
>
<view
class=
"name"
style=
"padding: 0 20px"
>
<view>
<view>
{{
changeNumToHan
(
sortIndex
)
}}
、
{{
data
.
GroupName
}}
{{
changeNumToHan
(
sortIndex
)
}}
、
{{
data
.
GroupName
}}
<text
style=
"color: #999999"
<text
style=
"color: #999999"
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
>
>
<swiper-item
v-if=
"sortIndex != 1"
></swiper-item>
<swiper-item
v-if=
"sortIndex != 1"
></swiper-item>
<swiper-item
v-for=
"(item1, index1) in data.DetailsList"
:key=
"index1"
>
<swiper-item
v-for=
"(item1, index1) in data.DetailsList"
:key=
"index1"
>
<view
class=
"item1"
>
<view
class=
"item1"
style=
"padding: 0 20px"
>
<view
class=
"flex"
>
<view
class=
"flex"
>
<view>
{{
index1
+
1
}}
、
</view>
<view>
{{
index1
+
1
}}
、
</view>
<view
class=
"num"
v-html=
"item1.Title"
></view>
(
{{
item1
.
Score
}}
)
<view
class=
"num"
v-html=
"item1.Title"
></view>
(
{{
item1
.
Score
}}
)
...
...
src/components/subject/answer.vue
View file @
6a337486
...
@@ -97,21 +97,12 @@ export default {
...
@@ -97,21 +97,12 @@ export default {
ExamStuId
:
Number
,
ExamStuId
:
Number
,
SubmitTimes
:
Number
,
SubmitTimes
:
Number
,
StartTime
:
String
,
StartTime
:
String
,
isExamOver
:
Boolean
},
},
setup
(
props
,
ctx
)
{
setup
(
props
,
ctx
)
{
let
Gid
=
uni
.
getStorageSync
(
"userInfo"
).
Id
;
let
Gid
=
uni
.
getStorageSync
(
"userInfo"
).
Id
;
let
data
=
reactive
({
let
data
=
reactive
({
msg
:
{
GuestId
:
Gid
,
PaperId
:
5
,
PublishId
:
1
},
msg
:
{
GuestId
:
Gid
,
PaperId
:
5
,
PublishId
:
1
},
questionList
:
props
.
paperData
.
Paper
.
GroupList
,
questionList
:
props
.
paperData
.
Paper
.
GroupList
,
isExamOver
:
props
.
isExamOver
});
watch
(()
=>
props
.
isExamOver
,
(
newVal
,
oldVal
)
=>
{
console
.
log
(
oldVal
,
'oldValoldVal'
);
console
.
log
(
newVal
,
'newVal'
);
if
(
newVal
){
methods
.
savePaper
();
}
});
});
let
methods
=
{
let
methods
=
{
changeNumToHan
,
changeNumToHan
,
...
@@ -148,8 +139,6 @@ export default {
...
@@ -148,8 +139,6 @@ export default {
obj
.
Exam_Student_Id
=
props
.
ExamStuId
;
obj
.
Exam_Student_Id
=
props
.
ExamStuId
;
let
time1
=
props
.
StartTime
;
let
time1
=
props
.
StartTime
;
let
time2
=
methods
.
getNowTime
();
let
time2
=
methods
.
getNowTime
();
console
.
log
(
time1
,
'time1'
);
console
.
log
(
time2
,
'time2'
);
var
d1
=
new
Date
(
time1
);
var
d1
=
new
Date
(
time1
);
var
d2
=
new
Date
(
time2
);
var
d2
=
new
Date
(
time2
);
let
TimeDis
=
parseInt
(
d2
-
d1
)
/
1000
/
60
;
let
TimeDis
=
parseInt
(
d2
-
d1
)
/
1000
/
60
;
...
@@ -160,11 +149,8 @@ export default {
...
@@ -160,11 +149,8 @@ export default {
});
});
return
return
}
}
console
.
log
(
'自动交卷了'
);
return
;
let
res
=
await
submitPaper
(
obj
);
let
res
=
await
submitPaper
(
obj
);
if
(
res
)
{
if
(
res
)
{
console
.
log
(
119
,
res
);
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
uni
.
showToast
({
uni
.
showToast
({
title
:
res
.
Message
,
title
:
res
.
Message
,
...
...
src/pages/exam/examPaper.vue
View file @
6a337486
...
@@ -7,340 +7,158 @@
...
@@ -7,340 +7,158 @@
</
template
>
</
template
>
<
template
#
title
>
<
template
#
title
>
<view
class=
"flex"
style=
"justify-content: center"
@
click=
"start"
>
<view
class=
"flex"
style=
"justify-content: center"
@
click=
"start"
>
<van-image
<van-image
width=
"30rpx"
height=
"30rpx"
fit=
"cover"
width=
"30rpx"
height=
"30rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/clock.png"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/clock.png"
style=
"margin-right: 10rpx"
style=
"margin-right: 10rpx"
/>
/>
<van-count-down
:time=
"time"
:auto-start=
"autoTimeStart"
class=
"flex flex_center_center"
<van-count-down
ref=
"countdown"
@
finish=
"examFinish"
/>
:time=
"time"
:auto-start=
"autoTimeStart"
class=
"flex flex_center_center"
ref=
"countdown"
@
finish=
"examFinish"
/>
</view>
</view>
</
template
>
</
template
>
</van-nav-bar>
</van-nav-bar>
<view
class=
"exam-con"
v-if=
"!isShowAnswer"
>
<view
class=
"exam-con"
v-if=
"!isShowAnswer"
>
<i
<i
class=
"iconfont icon-caidanzu answerSheet"
style=
"
class=
"iconfont icon-caidanzu answerSheet"
style=
"
position: absolute;
position: absolute;
right: 30rpx;
right: 30rpx;
z-index: 999;
z-index: 999;
margin-top: 26rpx;
margin-top: 26rpx;
"
"
:style=
"{ top: `calc(${statusBarHeight}px + 105rpx)` }"
@
click=
"showAnswerSheet"
></i>
:style=
"{ top: `calc(${statusBarHeight}px + 105rpx)` }"
@
click=
"showAnswerSheet"
></i>
<view
v-for=
"(item, index) in peaperDetail.Paper.GroupList"
:key=
"index"
>
<view
v-for=
"(item, index) in peaperDetail.Paper.GroupList"
:key=
"index"
>
<!-- 数字单选题 -->
<!-- 数字单选题 -->
<SingleChoiceNumber
<SingleChoiceNumber
:startIndex=
"item.startIndex"
:paperData=
"item"
@
getBeforeTopic=
"getBeforeTopic()"
:startIndex=
"item.startIndex"
@
getAfterTopic=
"getAfterTopic()"
@
answerChange=
"getAnswerChange($event, index)"
:sort=
"index"
:paperData=
"item"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isLast=
"isLast"
:isOperate=
"isOperate"
@
getBeforeTopic=
"getBeforeTopic()"
:ExamStatus=
"ExamStatus"
v-if=
"
@
getAfterTopic=
"getAfterTopic()"
@
answerChange=
"getAnswerChange($event, index)"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isLast=
"isLast"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
v-if=
"
item.QuestionTypeKey === 'single-number' && index === changeIndex
item.QuestionTypeKey === 'single-number' && index === changeIndex
"
"
/>
/>
<!-- 多选题 -->
<!-- 多选题 -->
<MultipleChoice
<MultipleChoice
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'multiple' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'multiple' && index === changeIndex"
/>
/>
<!-- 单选题 -->
<!-- 单选题 -->
<SingleChoice
<SingleChoice
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'single' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'single' && index === changeIndex"
/>
/>
<!-- 听力题 -->
<!-- 听力题 -->
<ListenTopic
<ListenTopic
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'listening' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'listening' && index === changeIndex"
/>
/>
<!-- 填空题 -->
<!-- 填空题 -->
<FillInTheBlanks
<FillInTheBlanks
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getBeforeTopic=
"getBeforeTopic()"
@
getAfterTopic=
"getAfterTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'fill-in' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'fill-in' && index === changeIndex"
/>
/>
<!-- 阅读理解 -->
<!-- 阅读理解 -->
<readingCompre
<readingCompre
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'reading-comprehensio' &&
item.QuestionTypeKey === 'reading-comprehensio' &&
index === changeIndex
index === changeIndex
"
"
/>
/>
<!-- 判断题 -->
<!-- 判断题 -->
<Judge
<Judge
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'judge' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'judge' && index === changeIndex"
/>
/>
<!-- 简答题 -->
<!-- 简答题 -->
<shortAnswer
<shortAnswer
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'short-answer' && index === changeIndex
item.QuestionTypeKey === 'short-answer' && index === changeIndex
"
"
/>
/>
<!-- 名词解释 -->
<!-- 名词解释 -->
<nounExplanation
<nounExplanation
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'noun-explanation' && index === changeIndex
item.QuestionTypeKey === 'noun-explanation' && index === changeIndex
"
"
/>
/>
<!-- 论述题 -->
<!-- 论述题 -->
<easyQuestion
<easyQuestion
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'essay-question' && index === changeIndex
item.QuestionTypeKey === 'essay-question' && index === changeIndex
"
"
/>
/>
<!-- 计算题 -->
<!-- 计算题 -->
<Calculation
<Calculation
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'calculation' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'calculation' && index === changeIndex"
/>
/>
<!-- 分录题 -->
<!-- 分录题 -->
<EntryProblem
<EntryProblem
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'entry-problem' && index === changeIndex
item.QuestionTypeKey === 'entry-problem' && index === changeIndex
"
"
/>
/>
<!-- 口语题 -->
<!-- 口语题 -->
<Spoken
<Spoken
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'spoken' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'spoken' && index === changeIndex"
/>
/>
<!-- 其他 -->
<!-- 其他 -->
<Other
<Other
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'other' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'other' && index === changeIndex"
/>
/>
<!-- 完型填空 -->
<!-- 完型填空 -->
<Cloze
<Cloze
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'cloze' && index === changeIndex"
v-if=
"item.QuestionTypeKey === 'cloze' && index === changeIndex"
/>
/>
<!-- 资料题 -->
<!-- 资料题 -->
<Dataquestion
<Dataquestion
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'data-question' && index === changeIndex
item.QuestionTypeKey === 'data-question' && index === changeIndex
"
"
/>
/>
<!-- 公用选择题 -->
<!-- 公用选择题 -->
<SharingChoose
<SharingChoose
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'sharing-choose' && index === changeIndex
item.QuestionTypeKey === 'sharing-choose' && index === changeIndex
"
"
/>
/>
<!-- 排序题 -->
<!-- 排序题 -->
<SortingProblem
<SortingProblem
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
:paperData=
"item"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
:isLast=
"isLast"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
:isOperate=
"isOperate"
:ExamStatus=
"ExamStatus"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"
item.QuestionTypeKey === 'sorting-problem' && index === changeIndex
item.QuestionTypeKey === 'sorting-problem' && index === changeIndex
"
"
/>
/>
<!-- 连线题待完善 -->
<!-- 连线题待完善 -->
<Connect
<Connect
:startIndex=
"item.startIndex"
:paperData=
"item"
:isLast=
"isLast"
:sort=
"index"
:startIndex=
"item.startIndex"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
@
getAfterTopic=
"getAfterTopic()"
:paperData=
"item"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
:isLast=
"isLast"
v-if=
"item.QuestionTypeKey === 'matching' && index === changeIndex"
/>
:sort=
"index"
:sortTotal=
"peaperDetail.Paper.GroupList.length"
@
getAfterTopic=
"getAfterTopic()"
@
getBeforeTopic=
"getBeforeTopic()"
@
answerChange=
"getAnswerChange($event, index)"
v-if=
"item.QuestionTypeKey === 'matching' && index === changeIndex"
/>
</view>
</view>
</view>
</view>
<view
class=
"answer-con"
v-if=
"isShowAnswer"
>
<view
class=
"answer-con"
v-if=
"isShowAnswer"
>
<answer
<answer
:paperData=
"peaperDetail"
:ExamStuId=
"Exam_Student_Id"
:StartTime=
"StartTime"
:paperData=
"peaperDetail"
:SubmitTimes=
"SubmitTimes"
@
hideAnswer=
"hideAnswerSheet"
@
chooseTopic=
"jumpTopic"
ref=
"answer"
/>
:ExamStuId=
"Exam_Student_Id"
:StartTime=
"StartTime"
:SubmitTimes=
"SubmitTimes"
:isExamOver=
"isExamOver"
@
hideAnswer=
"hideAnswerSheet"
@
chooseTopic=
"jumpTopic"
ref=
"answer"
/>
</view>
</view>
<van-toast
id=
"van-toast"
/>
<van-toast
id=
"van-toast"
/>
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
{
import
{
ref
,
ref
,
reactive
,
reactive
,
toRefs
,
toRefs
,
...
@@ -349,31 +167,39 @@ import {
...
@@ -349,31 +167,39 @@ import {
watch
,
watch
,
computed
,
computed
,
onMounted
,
onMounted
,
}
from
"vue"
;
}
from
"vue"
;
import
{
getPaperDetail
}
from
"../../api/exam"
;
import
{
import
{
changeNumToHan
}
from
"../../utils/index"
;
getPaperDetail
}
from
"../../api/exam"
;
import
{
changeNumToHan
}
from
"../../utils/index"
;
import
{
submitPaper
}
from
"../../api/exam"
;
import
SingleChoiceNumber
from
"../../components/subject/SingleChoiceNumber.vue"
;
import
SingleChoice
from
"../../components/subject/SingleChoice.vue"
;
import
SingleChoiceNumber
from
"../../components/subject/SingleChoiceNumber.vue"
;
import
MultipleChoice
from
"../../components/subject/MultipleChoice.vue"
;
import
SingleChoice
from
"../../components/subject/SingleChoice.vue"
;
import
ListenTopic
from
"../../components/subject/ListenTopic.vue"
;
import
MultipleChoice
from
"../../components/subject/MultipleChoice.vue"
;
import
FillInTheBlanks
from
"../../components/subject/FillInTheBlanks"
;
import
ListenTopic
from
"../../components/subject/ListenTopic.vue"
;
import
readingCompre
from
"../../components/subject/readingCompre"
;
import
FillInTheBlanks
from
"../../components/subject/FillInTheBlanks"
;
import
Judge
from
"../../components/subject/judge.vue"
;
import
readingCompre
from
"../../components/subject/readingCompre"
;
import
ShortAnswer
from
"../../components/subject/shortAnswer.vue"
;
import
Judge
from
"../../components/subject/judge.vue"
;
import
nounExplanation
from
"../../components/subject/nounExplanation.vue"
;
import
ShortAnswer
from
"../../components/subject/shortAnswer.vue"
;
import
easyQuestion
from
"../../components/subject/easyQuestion.vue"
;
import
nounExplanation
from
"../../components/subject/nounExplanation.vue"
;
import
Calculation
from
"../../components/subject/Calculation.vue"
;
import
easyQuestion
from
"../../components/subject/easyQuestion.vue"
;
import
EntryProblem
from
"../../components/subject/EntryProblem.vue"
;
import
Calculation
from
"../../components/subject/Calculation.vue"
;
import
Spoken
from
"../../components/subject/Spoken.vue"
;
import
EntryProblem
from
"../../components/subject/EntryProblem.vue"
;
import
Other
from
"../../components/subject/Other.vue"
;
import
Spoken
from
"../../components/subject/Spoken.vue"
;
import
Cloze
from
"../../components/subject/Cloze.vue"
;
import
Other
from
"../../components/subject/Other.vue"
;
import
Dataquestion
from
"../../components/subject/Dataquestion.vue"
;
import
Cloze
from
"../../components/subject/Cloze.vue"
;
import
SortingProblem
from
"../../components/subject/SortingProblem.vue"
;
import
Dataquestion
from
"../../components/subject/Dataquestion.vue"
;
import
Connect
from
"../../components/subject/Connect.vue"
;
//"连线题"
import
SortingProblem
from
"../../components/subject/SortingProblem.vue"
;
import
SharingChoose
from
"../../components/subject/SharingChoose.vue"
;
import
Connect
from
"../../components/subject/Connect.vue"
;
//"连线题"
import
answer
from
"../../components/subject/answer.vue"
;
//答题卡
import
SharingChoose
from
"../../components/subject/SharingChoose.vue"
;
export
default
{
import
answer
from
"../../components/subject/answer.vue"
;
//答题卡
export
default
{
components
:
{
components
:
{
SingleChoiceNumber
,
SingleChoiceNumber
,
SingleChoice
,
SingleChoice
,
...
@@ -397,12 +223,18 @@ export default {
...
@@ -397,12 +223,18 @@ export default {
answer
,
answer
,
},
},
setup
(
props
,
context
)
{
setup
(
props
,
context
)
{
let
{
refs
}
=
getCurrentInstance
();
let
{
refs
}
=
getCurrentInstance
();
console
.
log
(
refs
);
console
.
log
(
refs
);
let
data
=
reactive
({
let
data
=
reactive
({
time
:
999
,
time
:
999
,
statusBarHeight
:
0
,
statusBarHeight
:
0
,
msg
:
{
GuestId
:
0
,
PaperId
:
0
,
PublishId
:
0
},
msg
:
{
GuestId
:
0
,
PaperId
:
0
,
PublishId
:
0
},
peaperDetail
:
{},
peaperDetail
:
{},
changeIndex
:
0
,
//大题序号
changeIndex
:
0
,
//大题序号
...
@@ -412,10 +244,9 @@ export default {
...
@@ -412,10 +244,9 @@ export default {
autoTimeStart
:
false
,
autoTimeStart
:
false
,
isOperate
:
false
,
//考试状态 判断是考试还是查看答案
isOperate
:
false
,
//考试状态 判断是考试还是查看答案
isAutoTime
:
false
,
isAutoTime
:
false
,
ExamStatus
:
-
2
,
ExamStatus
:
-
2
,
StartTime
:
''
,
//页面加载后的时间
StartTime
:
''
,
//页面加载后的时间
SubmitTimes
:
0
,
//后台设置几分钟后可提交
SubmitTimes
:
0
,
//后台设置几分钟后可提交
isExamOver
:
false
});
});
let
methods
=
{
let
methods
=
{
changeNumToHan
,
changeNumToHan
,
...
@@ -439,11 +270,10 @@ export default {
...
@@ -439,11 +270,10 @@ export default {
this
.
ExamStatus
=
res
.
Data
.
ExamStatusTemp
;
this
.
ExamStatus
=
res
.
Data
.
ExamStatusTemp
;
this
.
SubmitTimes
=
res
.
Data
.
Publish
.
SubmitTimes
;
this
.
SubmitTimes
=
res
.
Data
.
Publish
.
SubmitTimes
;
//判断是答卷
//判断是答卷
if
(
res
.
Data
.
ExamStatusTemp
==
1
)
{
if
(
res
.
Data
.
ExamStatusTemp
==
1
)
{
this
.
isOperate
=
true
;
this
.
isOperate
=
true
;
data
.
autoTimeStart
=
true
;
data
.
autoTimeStart
=
true
;
// data.time = res.Data.Publish.ExamTimes * 60 * 1000;
data
.
time
=
res
.
Data
.
Publish
.
ExamTimes
*
60
*
1000
;
data
.
time
=
5000
}
}
}
}
}
}
...
@@ -484,8 +314,52 @@ export default {
...
@@ -484,8 +314,52 @@ export default {
title
:
'考试时间已到,系统将自动保存'
,
title
:
'考试时间已到,系统将自动保存'
,
icon
:
"none"
,
icon
:
"none"
,
});
});
data
.
isShowAnswer
=
true
;
methods
.
savePaper
();
data
.
isExamOver
=
true
;
},
getNowTime
()
{
let
dateTime
let
yy
=
new
Date
().
getFullYear
()
let
mm
=
new
Date
().
getMonth
()
+
1
let
dd
=
new
Date
().
getDate
()
let
hh
=
new
Date
().
getHours
()
let
mf
=
new
Date
().
getMinutes
()
<
10
?
'0'
+
new
Date
().
getMinutes
()
:
new
Date
().
getMinutes
()
let
ss
=
new
Date
().
getSeconds
()
<
10
?
'0'
+
new
Date
().
getSeconds
()
:
new
Date
().
getSeconds
()
dateTime
=
yy
+
'-'
+
mm
+
'-'
+
dd
+
' '
+
hh
+
':'
+
mf
+
':'
+
ss
;
return
dateTime
},
//交卷
async
savePaper
()
{
let
obj
=
JSON
.
parse
(
JSON
.
stringify
(
data
.
peaperDetail
.
Paper
));
delete
obj
.
Group_Id
;
obj
.
Exam_Student_Id
=
parseInt
(
data
.
Exam_Student_Id
);
let
time1
=
data
.
StartTime
;
let
time2
=
methods
.
getNowTime
();
var
d1
=
new
Date
(
time1
);
var
d2
=
new
Date
(
time2
);
let
TimeDis
=
parseInt
(
d2
-
d1
)
/
1000
/
60
;
if
(
TimeDis
<
data
.
SubmitTimes
)
{
uni
.
showToast
({
title
:
`开场不足
${
data
.
SubmitTimes
}
分钟禁止交卷哦~`
,
icon
:
"none"
,
});
return
}
let
res
=
await
submitPaper
(
obj
);
if
(
res
)
{
if
(
res
.
Code
==
1
)
{
uni
.
showToast
({
title
:
res
.
Message
,
icon
:
"none"
,
});
setTimeout
(()
=>
{
uni
.
navigateTo
({
url
:
"/pages/index/index"
,
});
},
1000
);
}
}
},
},
};
};
onMounted
(()
=>
{
onMounted
(()
=>
{
...
@@ -494,14 +368,12 @@ export default {
...
@@ -494,14 +368,12 @@ export default {
let
mm
=
new
Date
().
getMonth
()
+
1
let
mm
=
new
Date
().
getMonth
()
+
1
let
dd
=
new
Date
().
getDate
()
let
dd
=
new
Date
().
getDate
()
let
hh
=
new
Date
().
getHours
()
let
hh
=
new
Date
().
getHours
()
let
mf
=
new
Date
().
getMinutes
()
<
10
?
'0'
+
new
Date
().
getMinutes
()
let
mf
=
new
Date
().
getMinutes
()
<
10
?
'0'
+
new
Date
().
getMinutes
()
:
:
new
Date
().
getMinutes
()
new
Date
().
getMinutes
()
let
ss
=
new
Date
().
getSeconds
()
<
10
?
'0'
+
new
Date
().
getSeconds
()
let
ss
=
new
Date
().
getSeconds
()
<
10
?
'0'
+
new
Date
().
getSeconds
()
:
:
new
Date
().
getSeconds
()
new
Date
().
getSeconds
()
data
.
StartTime
=
yy
+
'-'
+
mm
+
'-'
+
dd
+
' '
+
hh
+
':'
+
mf
+
':'
+
ss
;
data
.
StartTime
=
yy
+
'-'
+
mm
+
'-'
+
dd
+
' '
+
hh
+
':'
+
mf
+
':'
+
ss
;
console
.
log
(
data
.
StartTime
,
'11111111111111'
);
console
.
log
(
data
.
StartTime
,
'11111111111111'
);
});
});
return
{
return
{
...
toRefs
(
data
),
...
toRefs
(
data
),
...
@@ -521,21 +393,22 @@ export default {
...
@@ -521,21 +393,22 @@ export default {
if
(
options
.
Exam_Student_Id
)
{
if
(
options
.
Exam_Student_Id
)
{
this
.
Exam_Student_Id
=
options
.
Exam_Student_Id
;
this
.
Exam_Student_Id
=
options
.
Exam_Student_Id
;
}
}
if
(
options
.
ExamStatus
&&
(
options
.
ExamStatus
==
1
||
options
.
ExamStatus
==
3
))
{
if
(
options
.
ExamStatus
&&
(
options
.
ExamStatus
==
1
||
options
.
ExamStatus
==
3
))
{
this
.
msg
.
isShowAnswer
=
true
;
this
.
msg
.
isShowAnswer
=
true
;
}
}
this
.
getPaperDetail
();
this
.
getPaperDetail
();
},
},
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.exam-con
{
.exam-con
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
}
.answerSheet
{
.answerSheet
{
font-size
:
30
rpx
;
font-size
:
30
rpx
;
margin-left
:
20
rpx
;
margin-left
:
20
rpx
;
color
:
#000
;
color
:
#000
;
}
}
</
style
>
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment