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
f1a8b15d
Commit
f1a8b15d
authored
Nov 28, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
。。
parent
c8cb8124
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
580 additions
and
802 deletions
+580
-802
answer.vue
src/components/question/subject/answer.vue
+1
-1
singlenumber.vue
src/components/question/subject/singlenumber.vue
+1
-0
FillInTheBlanks.vue
src/components/subject/FillInTheBlanks.vue
+88
-100
MultipleChoice.vue
src/components/subject/MultipleChoice.vue
+91
-117
SingleChoice.vue
src/components/subject/SingleChoice.vue
+252
-237
answer.vue
src/components/subject/answer.vue
+28
-50
pages.json
src/pages.json
+3
-1
examGongu.vue
src/pages/exam/examGongu.vue
+1
-0
examPaper.vue
src/pages/exam/examPaper.vue
+101
-286
login.vue
src/pages/login/login.vue
+2
-1
index.vue
src/wxcomponents/vant/icon/index.vue
+9
-6
notify.js
src/wxcomponents/vant/notify/notify.js
+3
-3
No files found.
src/components/question/subject/answer.vue
View file @
f1a8b15d
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
props
:
{
props
:
{
paperData
:
Array
,
paperData
:
Array
,
saveId
:
Number
,
saveId
:
Number
,
isShowJx
:
Boolean
isShowJx
:
Boolean
,
},
},
setup
(
props
,
ctx
)
{
setup
(
props
,
ctx
)
{
let
data
=
reactive
({
let
data
=
reactive
({
...
...
src/components/question/subject/singlenumber.vue
View file @
f1a8b15d
...
@@ -157,6 +157,7 @@
...
@@ -157,6 +157,7 @@
}
}
.chooseNum
{
.chooseNum
{
/* background: yellow; */
width
:
50
rpx
;
width
:
50
rpx
;
height
:
50
rpx
;
height
:
50
rpx
;
text-align
:
center
;
text-align
:
center
;
...
...
src/components/subject/FillInTheBlanks.vue
View file @
f1a8b15d
...
@@ -5,82 +5,60 @@
...
@@ -5,82 +5,60 @@
<view
class=
"name"
>
<view
class=
"name"
>
<view>
{{
changeNumToHan
(
sortIndex
)
}}
、
{{
data
.
GroupName
}}
</view>
<view>
{{
changeNumToHan
(
sortIndex
)
}}
、
{{
data
.
GroupName
}}
</view>
<view
class=
"ExamIndex_Box"
>
<view
class=
"ExamIndex_Box"
>
<text
class=
"Single_Before"
>
{{
ExamIndex
}}
</text
<text
class=
"Single_Before"
>
{{
ExamIndex
}}
</text
>
/
<text
class=
"Exam_Total"
>
{{
data
.
DetailsList
.
length
>
/
<text
class=
"Exam_Total"
>
{{
data
.
DetailsList
.
length
}}
</text>
}}
</text>
</view>
</view>
</view>
</view>
<swiper
<swiper
class=
"swiper-box"
:style=
"
{
class=
"swiper-box"
height: `calc(100vh - 300rpx - ${statusBarHeight}px)`,
:style=
"
{
}" :autoplay="autoplay" :current="current" @change="onchange">
height: `calc(100vh - 300rpx - ${statusBarHeight}px)`,
}"
:autoplay="autoplay"
:current="current"
@change="onchange"
>
<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"
:style=
"
{
height: `calc(100vh - 390rpx - ${statusBarHeight}px)`
}">
<view
class=
"item1"
:style=
"
{
height: `calc(100vh - 390rpx - ${statusBarHeight}px)`
}">
<view
class=
"flex"
>
<view
class=
"flex"
>
<view>
{{
index1
+
1
}}
、
</view>
<view>
{{
index1
+
1
}}
、
</view>
<view
class=
"num"
v-html=
"item1.Title"
></view><text
class=
"Exam_Score"
>
(
{{
item1
.
Score
}}
)
</text>
<view
class=
"num"
v-html=
"item1.Title"
></view><text
class=
"Exam_Score"
>
(
{{
item1
.
Score
}}
)
</text>
</view>
</view>
<view
<view
v-for=
"(item2, index2) in item1.QuestionContentObj"
:key=
"index2"
class=
"flex item2"
v-for=
"(item2, index2) in item1.QuestionContentObj"
style=
"align-items: center;"
>
:key=
"index2"
class=
"flex item2"
style=
"align-items: center;"
>
<view
class=
"chooseNum"
>
{{
index2
+
1
}}
</view>
<view
class=
"chooseNum"
>
{{
index2
+
1
}}
</view>
<template
v-if=
"isOperate"
>
<template
v-if=
"isOperate"
>
<view
class=
"chooseName"
>
<view
class=
"chooseName"
>
<input
<input
type=
"text"
v-model=
"item2.Content"
@
input=
"getIsRes(item1)"
type=
"text"
:placeholder=
"'请填写第 ' + (index2 + 1) + ' 空答案'"
class=
"input"
/>
v-model=
"item2.Content"
@
input=
"getIsRes(item1)"
:placeholder=
"'请填写第 ' + (index2 + 1) + ' 空答案'"
class=
"input"
/>
</view>
</view>
</
template
>
</
template
>
<
template
v-else
>
<
template
v-else
>
<view
class=
"viewAnswerContent"
v-html=
"item2.Content"
></view>
<view
class=
"viewAnswerContent"
v-html=
"item2.Content"
></view>
</
template
>
</
template
>
</view>
</view>
<view
class=
"AnswerContent"
v-if=
"!isOperate"
>
<view
class=
"AnswerContent"
v-if=
"!isOperate"
>
<view>
<view>
您的答案:
您的答案:
<
template
v-if=
"item1.AnswerList && item1.AnswerList.length > 0"
>
<
template
v-if=
"item1.AnswerList && item1.AnswerList.length > 0"
>
<view
<view
v-for=
"(cItem, cIndex) in item1.AnswerList"
class=
"flex"
style=
"margin-top: 20rpx"
>
v-for=
"(cItem, cIndex) in item1.AnswerList"
<view
class=
"chooseNum"
>
{{
cIndex
+
1
}}
</view>
class=
"flex"
<view
class=
"viewAnswerContent"
>
style=
"margin-top: 20rpx"
{{
cItem
==
""
?
"未作答"
:
cItem
}}
>
</view>
<view
class=
"chooseNum"
>
{{
cIndex
+
1
}}
</view>
</view>
<view
class=
"viewAnswerContent"
>
</
template
>
{{
cItem
==
""
?
"未作答"
:
cItem
}}
</view>
</view>
<view
style=
"margin:25rpx 0;"
v-if=
"item1.StudentScore != '' || item1.StudentScore === 0"
>
</view>
<text
style=
"color:#8c8a94"
>
您的得分:
</text>
</
template
>
<text
class=
"isTrueAnswer"
v-if=
"item1.StudentScore > 0"
>
{{ item1.StudentScore }}
</text>
</view>
<text
class=
"isNotAnswer"
v-else
>
{{ item1.StudentScore }}
</text>
<view
style=
"margin:25rpx 0;"
v-if=
"item1.StudentScore!=''||item1.StudentScore===0"
>
</view>
<text
style=
"color:#8c8a94"
>
您的得分:
</text>
<view
style=
"word-wrap: break-word"
v-if=
"item1.AnswerParse"
>
<text
class=
"isTrueAnswer"
v-if=
"item1.StudentScore>0"
>
{{item1.StudentScore}}
</text>
<text
style=
"color: #8c8a94"
>
解析:
</text>
<text
class=
"isNotAnswer"
v-else
>
{{item1.StudentScore}}
</text>
<view
style=
"color: #000; display: inline-block"
v-html=
"item1.AnswerParse"
></view>
</view>
</view>
<view
style=
"word-wrap: break-word"
v-if=
"item1.AnswerParse"
>
</view>
<text
style=
"color: #8c8a94"
>
解析:
</text>
</view>
<view
<view
class=
"AnswerBtn clear"
>
style=
"color: #000; display: inline-block"
<view
class=
"AnswerBtnFirst"
@
click=
"getBeforeExam()"
v-if=
"ExamIndex != 1 || sortIndex != 1"
>
上一题
</view>
v-html=
"item1.AnswerParse"
<view
class=
"AnswerBtnSecond"
v-if=
"sortIndex != sortTotal"
@
click=
"getNextExam()"
>
下一题
</view>
></view>
</view>
</view>
</view>
</view>
<view
class=
"AnswerBtn clear"
>
<view
class=
"AnswerBtnFirst"
@
click=
"getBeforeExam()"
v-if=
"ExamIndex!=1||sortIndex!=1"
>
上一题
</view>
<view
class=
"AnswerBtnSecond"
v-if=
"sortIndex != sortTotal"
@
click=
"getNextExam()"
>
下一题
</view>
</view>
</swiper-item>
</swiper-item>
<swiper-item
v-if=
"sortIndex != sortTotal"
></swiper-item>
<swiper-item
v-if=
"sortIndex != sortTotal"
></swiper-item>
</swiper>
</swiper>
...
@@ -109,7 +87,7 @@ export default {
...
@@ -109,7 +87,7 @@ export default {
sortTotal
:
Number
,
sortTotal
:
Number
,
startIndex
:
Number
,
startIndex
:
Number
,
isOperate
:
Boolean
,
isOperate
:
Boolean
,
ExamStatus
:
Number
ExamStatus
:
Number
},
},
setup
(
props
,
context
)
{
setup
(
props
,
context
)
{
let
{
ctx
}
=
getCurrentInstance
();
let
{
ctx
}
=
getCurrentInstance
();
...
@@ -124,7 +102,7 @@ export default {
...
@@ -124,7 +102,7 @@ export default {
ExamIndex
:
1
,
//第几题
ExamIndex
:
1
,
//第几题
isOperate
:
props
.
isOperate
,
isOperate
:
props
.
isOperate
,
statusBarHeight
:
0
,
statusBarHeight
:
0
,
ExamStatus
:
props
.
ExamStatus
ExamStatus
:
props
.
ExamStatus
});
});
//判断是否是第一大题
//判断是否是第一大题
if
(
data
.
sortIndex
===
1
)
{
if
(
data
.
sortIndex
===
1
)
{
...
@@ -150,9 +128,9 @@ export default {
...
@@ -150,9 +128,9 @@ export default {
onchange
(
e
)
{
onchange
(
e
)
{
context
.
emit
(
"answerChange"
,
data
.
data
);
context
.
emit
(
"answerChange"
,
data
.
data
);
data
.
ExamIndex
=
e
.
detail
.
current
;
data
.
ExamIndex
=
e
.
detail
.
current
;
if
(
data
.
sortIndex
==
1
)
{
if
(
data
.
sortIndex
==
1
)
{
data
.
ExamIndex
=
e
.
detail
.
current
+
1
;
data
.
ExamIndex
=
e
.
detail
.
current
+
1
;
}
}
if
(
data
.
ExamIndex
===
data
.
data
.
DetailsList
.
length
+
1
)
{
if
(
data
.
ExamIndex
===
data
.
data
.
DetailsList
.
length
+
1
)
{
console
.
log
(
"进入"
);
console
.
log
(
"进入"
);
this
.
$emit
(
"getAfterTopic"
);
this
.
$emit
(
"getAfterTopic"
);
...
@@ -166,14 +144,14 @@ export default {
...
@@ -166,14 +144,14 @@ export default {
return
e
.
Content
!=
""
&&
e
.
Content
;
return
e
.
Content
!=
""
&&
e
.
Content
;
});
});
},
},
//点击上一题
//点击上一题
getBeforeExam
()
{
getBeforeExam
()
{
data
.
current
=
data
.
current
-
1
;
data
.
current
=
data
.
current
-
1
;
},
},
//点击下一题
//点击下一题
getNextExam
()
{
getNextExam
()
{
data
.
current
=
data
.
current
+
1
;
data
.
current
=
data
.
current
+
1
;
}
}
};
};
onMounted
(()
=>
{
onMounted
(()
=>
{
if
(
props
.
isLast
)
{
if
(
props
.
isLast
)
{
...
@@ -193,30 +171,36 @@ export default {
...
@@ -193,30 +171,36 @@ export default {
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.AnswerBtn
{
.AnswerBtn
{
margin-top
:
20
rpx
;
margin-top
:
20
rpx
;
}
}
.clear
{
clear
:
both
}
.AnswerBtnFirst
{
.clear
{
width
:
250
rpx
;
clear
:
both
height
:
60
rpx
;
}
text-align
:
center
;
line-height
:
60
rpx
;
.AnswerBtnFirst
{
border-radius
:
10
rpx
;
width
:
250
rpx
;
border
:
1px
solid
#00ACF9
;
height
:
60
rpx
;
color
:
#00ACF9
;
text-align
:
center
;
float
:
left
;
line-height
:
60
rpx
;
border-radius
:
10
rpx
;
border
:
1px
solid
#00ACF9
;
color
:
#00ACF9
;
float
:
left
;
}
}
.AnswerBtnSecond
{
width
:
250
rpx
;
.AnswerBtnSecond
{
height
:
60
rpx
;
width
:
250
rpx
;
text-align
:
center
;
height
:
60
rpx
;
line-height
:
60
rpx
;
text-align
:
center
;
border-radius
:
10
rpx
;
line-height
:
60
rpx
;
background-color
:
#00ACF9
;
border-radius
:
10
rpx
;
color
:
#fff
;
background-color
:
#00ACF9
;
float
:
right
;
color
:
#fff
;
float
:
right
;
}
}
.name
{
.name
{
height
:
90
rpx
;
height
:
90
rpx
;
font-size
:
30
rpx
;
font-size
:
30
rpx
;
...
@@ -227,6 +211,7 @@ export default {
...
@@ -227,6 +211,7 @@ export default {
align-items
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
justify-content
:
space-between
;
}
}
.isTrueAnswer
{
.isTrueAnswer
{
color
:
green
!important
;
color
:
green
!important
;
}
}
...
@@ -234,12 +219,14 @@ export default {
...
@@ -234,12 +219,14 @@ export default {
.isNotAnswer
{
.isNotAnswer
{
color
:
red
!important
;
color
:
red
!important
;
}
}
.AnswerContent
{
.AnswerContent
{
font-size
:
30
rpx
;
font-size
:
30
rpx
;
padding
:
25
rpx
;
padding
:
25
rpx
;
background-color
:
#f4f4f4
;
background-color
:
#f4f4f4
;
border-radius
:
5px
;
border-radius
:
5px
;
}
}
.ExamIndex_Box
{
.ExamIndex_Box
{
margin-right
:
40
rpx
;
margin-right
:
40
rpx
;
}
}
...
@@ -254,7 +241,7 @@ export default {
...
@@ -254,7 +241,7 @@ export default {
width
:
100%
;
width
:
100%
;
border-bottom
:
1px
solid
#d1d1d1
;
border-bottom
:
1px
solid
#d1d1d1
;
padding-bottom
:
5px
;
padding-bottom
:
5px
;
font-size
:
30
rpx
;
font-size
:
30
rpx
;
}
}
.Exam_Total
{
.Exam_Total
{
...
@@ -307,17 +294,18 @@ export default {
...
@@ -307,17 +294,18 @@ export default {
font-family
:
PingFang
SC
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-weight
:
500
;
color
:
#111111
;
color
:
#111111
;
width
:
100%
;
width
:
100%
;
}
}
.input
{
.input
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
border-bottom
:
2
rpx
solid
#000
;
border-bottom
:
2
rpx
solid
#000
;
height
:
70
rpx
;
height
:
70
rpx
;
font-size
:
26
rpx
;
font-size
:
26
rpx
;
}
}
.Exam_Score
{
color
:
#999999
;
.Exam_Score
{
font-size
:
28
rpx
;
color
:
#999999
;
font-size
:
28
rpx
;
}
}
</
style
>
</
style
>
src/components/subject/MultipleChoice.vue
View file @
f1a8b15d
...
@@ -5,105 +5,72 @@
...
@@ -5,105 +5,72 @@
<view
class=
"name"
>
<view
class=
"name"
>
<view>
<view>
{{
changeNumToHan
(
sortIndex
)
}}
、
{{
data
.
GroupName
}}
{{
changeNumToHan
(
sortIndex
)
}}
、
{{
data
.
GroupName
}}
<text
class=
"Exam_Score"
<text
class=
"Exam_Score"
>
(
{{
data
.
DetailsList
.
length
}}
道,
{{
data
.
GScore
}}
分)
</text>
>
(共
{{
data
.
DetailsList
.
length
}}
道,
{{
data
.
GScore
}}
分)
</text
>
</view>
</view>
<view
class=
"ExamIndex_Box"
>
<view
class=
"ExamIndex_Box"
>
<text
class=
"Single_Before"
>
{{
ExamIndex
}}
</text
<text
class=
"Single_Before"
>
{{
ExamIndex
}}
</text
>
/
<text
class=
"Exam_Total"
>
{{
data
.
DetailsList
.
length
>
/
<text
class=
"Exam_Total"
>
{{
data
.
DetailsList
.
length
}}
</text>
}}
</text>
</view>
</view>
</view>
</view>
<swiper
<swiper
class=
"swiper-box"
:style=
"
{
class=
"swiper-box"
height: `calc(100vh - 300rpx - ${statusBarHeight}px)`,
:style=
"
{
}" :autoplay="autoplay" :current="current" @change="onchange">
height: `calc(100vh - 300rpx - ${statusBarHeight}px)`,
}"
:autoplay="autoplay"
:current="current"
@change="onchange"
>
<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"
:style=
"
{
height: `calc(100vh - 390rpx - ${statusBarHeight}px)`
}">
<view
class=
"item1"
:style=
"
{
height: `calc(100vh - 390rpx - ${statusBarHeight}px)`
}">
<view
class=
"flex"
>
<view
class=
"flex"
>
<view
class=
"num"
v-html=
"item1.Title"
></view><text
class=
"Exam_Score"
>
(
{{
item1
.
Score
}}
)
</text>
<view
class=
"num"
v-html=
"item1.Title"
></view><text
class=
"Exam_Score"
>
(
{{
item1
.
Score
}}
)
</text>
</view>
</view>
<view
<view
v-for=
"(item2, index2) in item1.QuestionContentObj"
:key=
"index2"
v-for=
"(item2, index2) in item1.QuestionContentObj"
class=
"item2 flex flex_start_center"
>
:key=
"index2"
class=
"item2 flex flex_start_center"
>
<template
v-if=
"isOperate"
>
<template
v-if=
"isOperate"
>
<view
<view
class=
"chooseNum"
:class=
"
{ myAnswer: item2.IsAnswer }" @click="change(item1, item2)">
{{
class=
"chooseNum"
item2
.
ShowName
:class=
"
{ myAnswer: item2.IsAnswer }"
}}
@click="change(item1, item2)"
>
{{
item2
.
ShowName
}}
</view>
</view>
<view
<view
class=
"chooseName"
@
click=
"change(item1, item2)"
v-html=
"item2.Content"
></view>
class=
"chooseName"
@
click=
"change(item1, item2)"
v-html=
"item2.Content"
></view>
</
template
>
</
template
>
<
template
v-else
>
<
template
v-else
>
<view
<view
class=
"chooseNum"
:class=
"
{ isTrueAnswer: item2.IsAnswer }">
{{
item2
.
Name
}}
class=
"chooseNum"
:class=
"
{ isTrueAnswer: item2.IsAnswer }"
>
{{
item2
.
Name
}}
</view>
</view>
<view
<view
class=
"chooseName"
:class=
"
{ isTrueAnswer: item2.IsAnswer }" v-html="item2.Content">
class=
"chooseName"
:class=
"
{ isTrueAnswer: item2.IsAnswer }"
v-html="item2.Content"
>
</view>
</view>
</
template
>
</
template
>
</view>
</view>
<view
class=
"AnswerContent"
v-if=
"!isOperate"
>
<view
class=
"AnswerContent"
v-if=
"!isOperate"
>
<view>
<view>
<text
style=
"color: #8c8a94"
>
正确答案:
</text>
<text
style=
"color: #8c8a94"
>
正确答案:
</text>
<text
class=
"isTrueAnswer"
>
{{ item1.Answer }}
</text
<text
class=
"isTrueAnswer"
>
{{ item1.Answer }}
</text>
,
>
,
<text>
<text>
您的答案:
您的答案:
<
template
v-if=
"item1.StundetAnswer != ''"
>
<
template
v-if=
"item1.StundetAnswer != ''"
>
<text
v-if=
"item1.Answer == item1.StundetAnswer"
class=
"isTrueAnswer"
>
<text
{{
item1
.
StundetAnswer
}}
,回答正确
v-if=
"item1.Answer == item1.StundetAnswer"
</text>
class=
"isTrueAnswer"
<text
v-else
class=
"isNotAnswer"
>
{{
item1
.
StundetAnswer
}}
,回答错误
</text>
>
</
template
>
{{
item1
.
StundetAnswer
}}
,回答正确
<
template
v-else
>
</text>
<text>
未作答
</text>
<text
v-else
class=
"isNotAnswer"
</
template
>
>
{{
item1
.
StundetAnswer
}}
,回答错误
</text
</text>
>
</view>
</
template
>
<view
style=
"margin: 20rpx 0"
v-if=
"item1.StudentScore != '' || item1.StudentScore === 0"
>
<
template
v-else
>
<text
style=
"color: #8c8a94"
>
您的得分:
</text>
<text>
未作答
</text>
<text
class=
"isTrueAnswer"
v-if=
"item1.StudentScore > 0"
>
{{
</
template
>
item1.StudentScore
</text>
}}
</text>
</view>
<text
class=
"isNotAnswer"
v-else
>
{{ item1.StudentScore }}
</text>
<view
style=
"margin: 20rpx 0"
v-if=
"item1.StudentScore!=''||item1.StudentScore===0"
>
</view>
<text
style=
"color: #8c8a94"
>
您的得分:
</text>
<view
style=
"word-wrap: break-word"
v-if=
"item1.AnswerParse"
>
<text
class=
"isTrueAnswer"
v-if=
"item1.StudentScore > 0"
>
{{
<text
style=
"color: #8c8a94"
>
解析:
</text>
item1.StudentScore
<view
style=
"color: #000; display: inline-block"
v-html=
"item1.AnswerParse"
></view>
}}
</text>
</view>
<text
class=
"isNotAnswer"
v-else
>
{{ item1.StudentScore }}
</text>
</view>
</view>
</view>
<view
style=
"word-wrap: break-word"
v-if=
"item1.AnswerParse"
>
<view
class=
"AnswerBtn clear"
>
<text
style=
"color: #8c8a94"
>
解析:
</text>
<view
class=
"AnswerBtnFirst"
@
click=
"getBeforeExam()"
v-if=
"ExamIndex != 1 || sortIndex != 1"
>
上一题
</view>
<view
<view
class=
"AnswerBtnSecond"
v-if=
"sortIndex != sortTotal"
@
click=
"getNextExam()"
>
下一题
</view>
style=
"color: #000; display: inline-block"
v-html=
"item1.AnswerParse"
></view>
</view>
</view>
</view>
</view>
<view
class=
"AnswerBtn clear"
>
<view
class=
"AnswerBtnFirst"
@
click=
"getBeforeExam()"
v-if=
"ExamIndex!=1||sortIndex!=1"
>
上一题
</view>
<view
class=
"AnswerBtnSecond"
v-if=
"sortIndex != sortTotal"
@
click=
"getNextExam()"
>
下一题
</view>
</view>
</swiper-item>
</swiper-item>
<swiper-item
v-if=
"sortIndex != sortTotal"
></swiper-item>
<swiper-item
v-if=
"sortIndex != sortTotal"
></swiper-item>
</swiper>
</swiper>
...
@@ -132,7 +99,7 @@ export default {
...
@@ -132,7 +99,7 @@ export default {
sortTotal
:
Number
,
sortTotal
:
Number
,
startIndex
:
Number
,
startIndex
:
Number
,
isOperate
:
Boolean
,
isOperate
:
Boolean
,
ExamStatus
:
Number
ExamStatus
:
Number
},
},
setup
(
props
,
context
)
{
setup
(
props
,
context
)
{
let
data
=
reactive
({
let
data
=
reactive
({
...
@@ -144,7 +111,7 @@ export default {
...
@@ -144,7 +111,7 @@ export default {
ExamIndex
:
1
,
//第几题
ExamIndex
:
1
,
//第几题
isOperate
:
props
.
isOperate
,
isOperate
:
props
.
isOperate
,
statusBarHeight
:
0
,
statusBarHeight
:
0
,
ExamStatus
:
props
.
ExamStatus
ExamStatus
:
props
.
ExamStatus
});
});
//判断是否是第一大题
//判断是否是第一大题
if
(
data
.
sortIndex
===
1
)
{
if
(
data
.
sortIndex
===
1
)
{
...
@@ -192,14 +159,14 @@ export default {
...
@@ -192,14 +159,14 @@ export default {
this
.
$emit
(
"getBeforeTopic"
);
this
.
$emit
(
"getBeforeTopic"
);
}
}
},
},
//点击上一题
//点击上一题
getBeforeExam
()
{
getBeforeExam
()
{
data
.
current
=
data
.
current
-
1
;
data
.
current
=
data
.
current
-
1
;
},
},
//点击下一题
//点击下一题
getNextExam
()
{
getNextExam
()
{
data
.
current
=
data
.
current
+
1
;
data
.
current
=
data
.
current
+
1
;
}
}
};
};
onMounted
(()
=>
{
onMounted
(()
=>
{
if
(
props
.
isLast
)
{
if
(
props
.
isLast
)
{
...
@@ -217,34 +184,40 @@ export default {
...
@@ -217,34 +184,40 @@ export default {
...
methods
,
...
methods
,
};
};
},
},
onLoad
()
{},
onLoad
()
{
},
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.AnswerBtn
{
.AnswerBtn
{
margin-top
:
20
rpx
;
margin-top
:
20
rpx
;
}
.clear
{
clear
:
both
}
}
.clear
{
clear
:
both
}
.AnswerBtnFirst
{
.AnswerBtnFirst
{
width
:
250
rpx
;
width
:
250
rpx
;
height
:
60
rpx
;
height
:
60
rpx
;
text-align
:
center
;
text-align
:
center
;
line-height
:
60
rpx
;
line-height
:
60
rpx
;
border-radius
:
10
rpx
;
border-radius
:
10
rpx
;
border
:
1px
solid
#00ACF9
;
border
:
1px
solid
#00ACF9
;
color
:
#00ACF9
;
color
:
#00ACF9
;
float
:
left
;
float
:
left
;
}
}
.AnswerBtnSecond
{
width
:
250
rpx
;
.AnswerBtnSecond
{
height
:
60
rpx
;
width
:
250
rpx
;
text-align
:
center
;
height
:
60
rpx
;
line-height
:
60
rpx
;
text-align
:
center
;
border-radius
:
10
rpx
;
line-height
:
60
rpx
;
background-color
:
#00ACF9
;
border-radius
:
10
rpx
;
color
:
#fff
;
background-color
:
#00ACF9
;
float
:
right
;
color
:
#fff
;
float
:
right
;
}
}
.name
{
.name
{
height
:
90
rpx
;
height
:
90
rpx
;
font-size
:
30
rpx
;
font-size
:
30
rpx
;
...
@@ -336,8 +309,9 @@ export default {
...
@@ -336,8 +309,9 @@ export default {
font-weight
:
500
;
font-weight
:
500
;
color
:
#111111
;
color
:
#111111
;
}
}
.Exam_Score
{
color
:
#999999
;
.Exam_Score
{
font-size
:
28
rpx
;
color
:
#999999
;
font-size
:
28
rpx
;
}
}
</
style
>
</
style
>
src/components/subject/SingleChoice.vue
View file @
f1a8b15d
This diff is collapsed.
Click to expand it.
src/components/subject/answer.vue
View file @
f1a8b15d
...
@@ -2,69 +2,37 @@
...
@@ -2,69 +2,37 @@
<view>
<view>
<van-nav-bar
fixed
>
<van-nav-bar
fixed
>
<template
#
left
>
<template
#
left
>
<van-icon
<van-icon
name=
"cross"
style=
"font-size: 32rpx; color: #111"
@
click=
"back"
/>
name=
"cross"
style=
"font-size: 32rpx; color: #111"
@
click=
"back"
/>
</
template
>
</
template
>
<
template
#
title
>
<
template
#
title
>
<view
<view
style=
"
style=
"
font-size: 32rpx;
font-size: 32rpx;
color: #111;
color: #111;
font-family: PingFang SC;
font-family: PingFang SC;
font-weight: 800;
font-weight: 800;
"
"
>
答题卡
</view>
>
答题卡
</view
>
</
template
>
</
template
>
</van-nav-bar>
</van-nav-bar>
<view
class=
"answer-sheets"
>
<view
class=
"answer-sheets"
>
<view
v-for=
"(item, index) in questionList"
:key=
"index"
class=
"item"
>
<view
v-for=
"(item, index) in questionList"
:key=
"index"
class=
"item"
>
<view
class=
"name"
>
<view
class=
"name"
>
{{ changeNumToHan(index + 1) }}、{{ item.GroupName }}
</view
{{ changeNumToHan(index + 1) }}、{{ item.GroupName }}
</view>
>
<view
class=
"flex flex_wrap"
>
<view
class=
"flex flex_wrap"
>
<view
<view
v-for=
"(item1, index1) in item.DetailsList"
:key=
"index1"
class=
"flex flex_wrap"
>
v-for=
"(item1, index1) in item.DetailsList"
<view
class=
"item1-1"
v-if=
"
:key=
"index1"
item1.QuestionTypeKey === 'reading-comprehensio' ||
class=
"flex flex_wrap"
item1.QuestionTypeKey === 'listening'
>
"
@
click=
"chooseTopic(index, index1)"
>
{{ index1 + 1 }}.
</view>
<view
<view
class=
"item1"
:class=
"{ isRes: item1.IsRes }"
v-else
@
click=
"chooseTopic(index, index1)"
>
{{ index1 + 1
class=
"item1-1"
}}
</view>
v-if=
"
item1.QuestionTypeKey === 'reading-comprehensio' ||
item1.QuestionTypeKey === 'listening'
"
@
click=
"chooseTopic(index, index1)"
>
{{ index1 + 1 }}.
</view
>
<view
class=
"item1"
:class=
"{ isRes: item1.IsRes }"
v-else
@
click=
"chooseTopic(index, index1)"
>
{{ index1 + 1 }}
</view
>
<view
<view
v-if=
"
v-if=
"
item1.QuestionTypeKey === 'reading-comprehensio' ||
item1.QuestionTypeKey === 'reading-comprehensio' ||
item1.QuestionTypeKey === 'listening'
item1.QuestionTypeKey === 'listening'
"
class=
"flex flex_wrap"
>
"
<view
v-for=
"(item2, index2) in item1.QuestionContentObj"
:key=
"index2"
>
class=
"flex flex_wrap"
<view
class=
"item1"
:class=
"{ isRes: item2.IsRes }"
@
click=
"chooseTopic(index, index1)"
>
{{ index2 + 1 }}
>
</view>
<view
v-for=
"(item2, index2) in item1.QuestionContentObj"
:key=
"index2"
>
<view
class=
"item1"
:class=
"{ isRes: item2.IsRes }"
@
click=
"chooseTopic(index, index1)"
>
{{ index2 + 1 }}
</view
>
</view>
</view>
</view>
</view>
</view>
</view>
...
@@ -182,6 +150,7 @@ export default {
...
@@ -182,6 +150,7 @@ export default {
height
:
calc
(
100vh
-
300
rpx
);
height
:
calc
(
100vh
-
300
rpx
);
overflow-y
:
auto
;
overflow-y
:
auto
;
}
}
.name
,
.name
,
.num
{
.num
{
font-size
:
28
rpx
;
font-size
:
28
rpx
;
...
@@ -189,13 +158,16 @@ export default {
...
@@ -189,13 +158,16 @@ export default {
font-weight
:
800
;
font-weight
:
800
;
color
:
#111111
;
color
:
#111111
;
}
}
.num
{
.num
{
width
:
100
rpx
;
width
:
100
rpx
;
text-align
:
center
;
text-align
:
center
;
}
}
.item
{
.item
{
margin-bottom
:
20
rpx
;
margin-bottom
:
20
rpx
;
}
}
.item1-1
{
.item1-1
{
width
:
690
rpx
;
width
:
690
rpx
;
margin
:
22
rpx
0
0
0
;
margin
:
22
rpx
0
0
0
;
...
@@ -204,6 +176,7 @@ export default {
...
@@ -204,6 +176,7 @@ export default {
font-weight
:
600
;
font-weight
:
600
;
color
:
#111111
;
color
:
#111111
;
}
}
.item1
{
.item1
{
width
:
55
rpx
;
width
:
55
rpx
;
height
:
55
rpx
;
height
:
55
rpx
;
...
@@ -219,6 +192,7 @@ export default {
...
@@ -219,6 +192,7 @@ export default {
align-items
:
center
;
align-items
:
center
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
}
.item2
{
.item2
{
width
:
44
rpx
;
width
:
44
rpx
;
height
:
44
rpx
;
height
:
44
rpx
;
...
@@ -232,10 +206,12 @@ export default {
...
@@ -232,10 +206,12 @@ export default {
font-weight
:
bold
;
font-weight
:
bold
;
color
:
#111111
;
color
:
#111111
;
}
}
.choose
{
.choose
{
background-color
:
#00acf9
!important
;
background-color
:
#00acf9
!important
;
color
:
#ffffff
!important
;
color
:
#ffffff
!important
;
}
}
.submitBox
{
.submitBox
{
width
:
750
rpx
;
width
:
750
rpx
;
height
:
150
rpx
;
height
:
150
rpx
;
...
@@ -246,6 +222,7 @@ export default {
...
@@ -246,6 +222,7 @@ export default {
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding-top
:
40
rpx
;
padding-top
:
40
rpx
;
}
}
.submit
{
.submit
{
width
:
600
rpx
;
width
:
600
rpx
;
height
:
70
rpx
;
height
:
70
rpx
;
...
@@ -260,6 +237,7 @@ export default {
...
@@ -260,6 +237,7 @@ export default {
color
:
#fff
;
color
:
#fff
;
margin
:
0
auto
;
margin
:
0
auto
;
}
}
.isRes
{
.isRes
{
background-color
:
#00acf9
!important
;
background-color
:
#00acf9
!important
;
color
:
#ffffff
!important
;
color
:
#ffffff
!important
;
...
...
src/pages.json
View file @
f1a8b15d
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
},
},
"pages"
:
[{
"pages"
:
[{
"path"
:
"pages/index/index"
,
"path"
:
"pages/index/index"
,
//
"path"
:
"pages/index/index2"
,
//查看考试
"style"
:
{
"style"
:
{
"navigationStyle"
:
"custom"
"navigationStyle"
:
"custom"
}
}
...
@@ -198,7 +199,8 @@
...
@@ -198,7 +199,8 @@
"borderStyle"
:
"black"
,
"borderStyle"
:
"black"
,
"backgroundColor"
:
"#ffffff"
,
"backgroundColor"
:
"#ffffff"
,
"list"
:
[{
"list"
:
[{
"pagePath"
:
"pages/index/index"
,
//
"pagePath"
:
"pages/index/index2"
,
//查看考试
"pagePath"
:
"pages/index/index"
,
"iconPath"
:
"static/image/index.png"
,
"iconPath"
:
"static/image/index.png"
,
"selectedIconPath"
:
"static/image/index_a.png"
,
"selectedIconPath"
:
"static/image/index_a.png"
,
"text"
:
"首页"
"text"
:
"首页"
...
...
src/pages/exam/examGongu.vue
View file @
f1a8b15d
...
@@ -166,6 +166,7 @@
...
@@ -166,6 +166,7 @@
//获取答案改变后的数据
//获取答案改变后的数据
getAnswerChange
(
val
,
index
)
{
getAnswerChange
(
val
,
index
)
{
data
.
dataList
[
index
]
=
val
;
data
.
dataList
[
index
]
=
val
;
// console.log('kkkkkkkkkkkkk',val)
},
},
//获取单词错题
//获取单词错题
getWrongWord
(){
getWrongWord
(){
...
...
src/pages/exam/examPaper.vue
View file @
f1a8b15d
This diff is collapsed.
Click to expand it.
src/pages/login/login.vue
View file @
f1a8b15d
...
@@ -94,7 +94,8 @@
...
@@ -94,7 +94,8 @@
},
},
jumpPage
()
{
jumpPage
()
{
uni
.
reLaunch
({
uni
.
reLaunch
({
url
:
"/pages/index/index"
,
url
:
"/pages/index/index"
,
// url: "/pages/index/index2",//跳转查看考试
});
});
clearTimeout
();
clearTimeout
();
},
},
...
...
src/wxcomponents/vant/icon/index.vue
View file @
f1a8b15d
<
template
>
<
template
>
<uni-shadow-root
class=
"vant-icon-index"
><view
:class=
"computed.rootClass(
{ classPrefix, name })" :style="computed.rootStyle({ customStyle, color, size })" @click="onClick">
<uni-shadow-root
class=
"vant-icon-index"
>
<van-info
v-if=
"info !== null || dot"
:dot=
"dot"
:info=
"info"
custom-class=
"van-icon__info"
></van-info>
<view
:class=
"computed.rootClass(
{ classPrefix, name })" :style="computed.rootStyle({ customStyle, color, size })"
<image
v-if=
"computed.isImage(name)"
:src=
"name"
mode=
"aspectFit"
class=
"van-icon__image"
></image>
@click="onClick">
</view></uni-shadow-root>
<van-info
v-if=
"info !== null || dot"
:dot=
"dot"
:info=
"info"
custom-class=
"van-icon__info"
></van-info>
<image
v-if=
"computed.isImage(name)"
:src=
"name"
mode=
"aspectFit"
class=
"van-icon__image"
></image>
</view>
</uni-shadow-root>
</
template
>
</
template
>
<wxs
src=
"./index.wxs"
module=
"computed"
></wxs>
<wxs
src=
"./index.wxs"
module=
"computed"
></wxs>
<
script
>
<
script
>
import
VanInfo
from
'../info/index.vue'
import
VanInfo
from
'../info/index.vue'
global
[
'__wxVueOptions'
]
=
{
components
:{
'van-info'
:
VanInfo
}
}
global
[
'__wxVueOptions'
]
=
{
components
:
{
'van-info'
:
VanInfo
}
}
global
[
'__wxRoute'
]
=
'vant/icon/index'
global
[
'__wxRoute'
]
=
'vant/icon/index'
import
{
VantComponent
}
from
'../common/component'
;
import
{
VantComponent
}
from
'../common/component'
;
...
@@ -1005,7 +1008,7 @@ export default global['__wxComponents']['vant/icon/index']
...
@@ -1005,7 +1008,7 @@ export default global['__wxComponents']['vant/icon/index']
font-style
:
normal
;
font-style
:
normal
;
font-display
:
auto
;
font-display
:
auto
;
font-family
:
vant-icon
;
font-family
:
vant-icon
;
src
:
url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.woff2?t=1621320123079)
format
(
"woff2"
),
url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.woff?t=1621320123079)
format
(
"woff"
),
url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.ttf?t=1621320123079)
format
(
"truetype"
);
src
:
url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.woff2?t=1621320123079)
format
(
"woff2"
),
url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.woff?t=1621320123079)
format
(
"woff"
),
url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.ttf?t=1621320123079)
format
(
"truetype"
);
}
}
.vant-icon-index
{
.vant-icon-index
{
...
...
src/wxcomponents/vant/notify/notify.js
View file @
f1a8b15d
...
@@ -9,9 +9,9 @@ const defaultOptions = {
...
@@ -9,9 +9,9 @@ const defaultOptions = {
top
:
0
,
top
:
0
,
color
:
WHITE
,
color
:
WHITE
,
safeAreaInsetTop
:
false
,
safeAreaInsetTop
:
false
,
onClick
:
()
=>
{},
onClick
:
()
=>
{
},
onOpened
:
()
=>
{},
onOpened
:
()
=>
{
},
onClose
:
()
=>
{},
onClose
:
()
=>
{
},
};
};
function
parseOptions
(
message
)
{
function
parseOptions
(
message
)
{
if
(
message
==
null
)
{
if
(
message
==
null
)
{
...
...
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