|
@@ -7,13 +7,15 @@
|
|
|
<span style="color: red;font-size: 18px;">{{ examInfo.examName }}</span>
|
|
<span style="color: red;font-size: 18px;">{{ examInfo.examName }}</span>
|
|
|
<span class="examTitle">考试时间:</span>
|
|
<span class="examTitle">考试时间:</span>
|
|
|
<span style="color: red;font-size: 18px;">{{ examInfo.examTime }}</span>
|
|
<span style="color: red;font-size: 18px;">{{ examInfo.examTime }}</span>
|
|
|
- <el-button
|
|
|
|
|
- type="warning"
|
|
|
|
|
- round
|
|
|
|
|
- style="background-color: #ffd550;float: right;color: black;font-weight: 800"
|
|
|
|
|
- @click="uploadExamToAdmin"
|
|
|
|
|
- >提交阅卷
|
|
|
|
|
- </el-button>
|
|
|
|
|
|
|
+ <div v-if="paperStatus === 3">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="warning"
|
|
|
|
|
+ round
|
|
|
|
|
+ style="background-color: #ffd550;float: right;color: black;font-weight: 800"
|
|
|
|
|
+ @click="uploadExamToAdmin"
|
|
|
|
|
+ >提交阅卷
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </div>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-header>
|
|
</el-header>
|
|
@@ -44,9 +46,19 @@
|
|
|
<span v-if="item.questionInfo.questionType !== 8" style="color: green">
|
|
<span v-if="item.questionInfo.questionType !== 8" style="color: green">
|
|
|
(得分: {{ item.questionInfo.score }} 分)
|
|
(得分: {{ item.questionInfo.score }} 分)
|
|
|
</span>
|
|
</span>
|
|
|
|
|
+ <div v-if="item.questionInfo.questionType !== 8">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="warning"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ icon="el-icon-info"
|
|
|
|
|
+ @click="questionAnalysisDialog = true"
|
|
|
|
|
+ >试题解析</el-button>
|
|
|
|
|
+ </div>
|
|
|
<div v-if="item.questionInfo.questionType === 8">
|
|
<div v-if="item.questionInfo.questionType === 8">
|
|
|
<div v-for="(child, childIndex) in item.children" :key="childIndex">
|
|
<div v-for="(child, childIndex) in item.children" :key="childIndex">
|
|
|
- <div>
|
|
|
|
|
|
|
+ <div
|
|
|
|
|
+ style="margin-top: 40px"
|
|
|
|
|
+ >
|
|
|
<span style="color: red">
|
|
<span style="color: red">
|
|
|
({{ child.questionInfo.score }} 分)
|
|
({{ child.questionInfo.score }} 分)
|
|
|
</span>
|
|
</span>
|
|
@@ -54,6 +66,12 @@
|
|
|
<span style="color: green">
|
|
<span style="color: green">
|
|
|
(得分: {{ child.questionInfo.score }} 分)
|
|
(得分: {{ child.questionInfo.score }} 分)
|
|
|
</span>
|
|
</span>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="warning"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ icon="el-icon-info"
|
|
|
|
|
+ @click="questionAnalysisDialog = true"
|
|
|
|
|
+ >试题解析</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 单选和判断题候选答案列表 -->
|
|
<!-- 单选和判断题候选答案列表 -->
|
|
|
<div
|
|
<div
|
|
@@ -77,6 +95,10 @@
|
|
|
</span>
|
|
</span>
|
|
|
</el-radio-button>
|
|
</el-radio-button>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
|
|
+ <div style="margin-top: 25px">
|
|
|
|
|
+ <el-divider />
|
|
|
|
|
+ <span>答案解析</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 多选和不定项选择题的候选答案列表 -->
|
|
<!-- 多选和不定项选择题的候选答案列表 -->
|
|
@@ -98,6 +120,9 @@
|
|
|
</span>
|
|
</span>
|
|
|
</el-checkbox>
|
|
</el-checkbox>
|
|
|
</el-checkbox-group>
|
|
</el-checkbox-group>
|
|
|
|
|
+ <div style="margin-top: 25px">
|
|
|
|
|
+ <span>答案解析</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 填空题和问答题的回答区 -->
|
|
<!-- 填空题和问答题的回答区 -->
|
|
@@ -138,6 +163,9 @@
|
|
|
</span>
|
|
</span>
|
|
|
</el-radio-button>
|
|
</el-radio-button>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
|
|
+ <div style="margin-top: 25px">
|
|
|
|
|
+ <span>答案解析</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 多选和不定项选择题的候选答案列表 -->
|
|
<!-- 多选和不定项选择题的候选答案列表 -->
|
|
@@ -164,6 +192,10 @@
|
|
|
</span>
|
|
</span>
|
|
|
</el-checkbox-button>
|
|
</el-checkbox-button>
|
|
|
</el-checkbox-group>
|
|
</el-checkbox-group>
|
|
|
|
|
+ <div style="margin-top: 25px">
|
|
|
|
|
+ <el-divider />
|
|
|
|
|
+ <span>答案解析</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 填空题的回答区 -->
|
|
<!-- 填空题的回答区 -->
|
|
@@ -187,7 +219,7 @@
|
|
|
<span style="color: orangered" v-html="item.correctAnswer" />
|
|
<span style="color: orangered" v-html="item.correctAnswer" />
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</div>
|
|
</div>
|
|
|
- <div style="margin-top: 25px">
|
|
|
|
|
|
|
+ <div v-if="paperStatus === 3" style="margin-top: 25px">
|
|
|
<span>评分:</span>
|
|
<span>评分:</span>
|
|
|
<el-input-number
|
|
<el-input-number
|
|
|
v-model="questionMarks[item.questionInfo.pos].score"
|
|
v-model="questionMarks[item.questionInfo.pos].score"
|
|
@@ -203,6 +235,20 @@
|
|
|
@blur="onInputBlur(item.questionInfo)"
|
|
@blur="onInputBlur(item.questionInfo)"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div v-if="paperStatus === 4" style="margin-top: 25px">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 得分: <span style="color: green">{{ questionMarks[item.questionInfo.pos].score }}</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <br/>
|
|
|
|
|
+ <br/>
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 评语: <span style="color: green">{{ questionMarks[item.questionInfo.pos].review }}</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="margin-top: 25px">
|
|
|
|
|
+ <el-divider />
|
|
|
|
|
+ <span>答案解析</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 问答题的回答区 -->
|
|
<!-- 问答题的回答区 -->
|
|
|
<div
|
|
<div
|
|
@@ -225,7 +271,7 @@
|
|
|
<span style="color: orangered" v-html="item.correctAnswer" />
|
|
<span style="color: orangered" v-html="item.correctAnswer" />
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</div>
|
|
</div>
|
|
|
- <div style="margin-top: 25px">
|
|
|
|
|
|
|
+ <div v-if="paperStatus === 3" style="margin-top: 25px">
|
|
|
<span>评分:</span>
|
|
<span>评分:</span>
|
|
|
<el-input-number
|
|
<el-input-number
|
|
|
v-model="questionMarks[item.questionInfo.pos].score"
|
|
v-model="questionMarks[item.questionInfo.pos].score"
|
|
@@ -241,6 +287,20 @@
|
|
|
@blur="onInputBlur(item.questionInfo)"
|
|
@blur="onInputBlur(item.questionInfo)"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div v-if="paperStatus === 4" style="margin-top: 25px">
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 得分: <span style="color: green">{{ questionMarks[item.questionInfo.pos].score }}</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <br/>
|
|
|
|
|
+ <br/>
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 评语: <span style="color: green">{{ questionMarks[item.questionInfo.pos].review }}</span>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="margin-top: 25px">
|
|
|
|
|
+ <el-divider />
|
|
|
|
|
+ <span>答案解析</span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -408,6 +468,10 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-main>
|
|
</el-main>
|
|
|
|
|
+
|
|
|
|
|
+ <el-dialog :visible.sync="questionAnalysisDialog" @close="questionAnalysisDialog = false">
|
|
|
|
|
+ <span>试题解析</span>
|
|
|
|
|
+ </el-dialog>
|
|
|
</el-container>
|
|
</el-container>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -415,10 +479,11 @@
|
|
|
import { getExamResult, getPaperQuestions, submitExamMark } from '@/api/exam'
|
|
import { getExamResult, getPaperQuestions, submitExamMark } from '@/api/exam'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
- name: 'ExamPaperPreview',
|
|
|
|
|
|
|
+ name: 'ExamPaperResult',
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
paperStatus: 1,
|
|
paperStatus: 1,
|
|
|
|
|
+ questionAnalysisDialog: false,
|
|
|
// 当前考试的信息
|
|
// 当前考试的信息
|
|
|
examInfo: {},
|
|
examInfo: {},
|
|
|
// 当前的考试题目
|
|
// 当前的考试题目
|
|
@@ -483,13 +548,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
|
const path = this.$route.path
|
|
const path = this.$route.path
|
|
|
- if (path.startsWith('/exam/preview')) {
|
|
|
|
|
- document.title = '试卷预览'
|
|
|
|
|
- this.paperStatus = 1
|
|
|
|
|
- } else if (path.startsWith('/exam/start')) {
|
|
|
|
|
- document.title = '试卷考试'
|
|
|
|
|
- this.paperStatus = 2
|
|
|
|
|
- } else if (path.startsWith('/exam/mark')) {
|
|
|
|
|
|
|
+ if (path.startsWith('/exam/mark')) {
|
|
|
document.title = '试卷评判'
|
|
document.title = '试卷评判'
|
|
|
this.paperStatus = 3
|
|
this.paperStatus = 3
|
|
|
const resultId = this.$route.params.resultId
|
|
const resultId = this.$route.params.resultId
|