|
|
|
@ -63,7 +63,7 @@ |
|
|
|
|
<div v-else class="score-wrap"> |
|
|
|
|
<em>{{ info.score }}</em> |
|
|
|
|
<img src="@/assets/img/point.png" alt=""> |
|
|
|
|
<p v-if="essayExist" class="exist">(部分试题待判分,成绩待定)</p> |
|
|
|
|
<p v-if="notReview" class="exist">(部分试题待判分,成绩待定)</p> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
<li> |
|
|
|
@ -95,14 +95,16 @@ |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="userTotalScore" label="得分" align="center"> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<p v-if="scope.row.questionType === 'essay'" class="text-red">待评分</p> |
|
|
|
|
<p v-else-if="essayExist && !scope.row.paperId" class="text-red">{{ scope.row.userTotalScore |
|
|
|
|
<p v-if="scope.row.questionType === 'essay' && scope.row.scoringStatus === '未判分'" class="text-red">待评分 |
|
|
|
|
</p> |
|
|
|
|
<p v-else-if="notReview && !scope.row.paperId" class="text-red">{{ scope.row.userTotalScore |
|
|
|
|
}}分(部分试题待判分,成绩待定)</p> |
|
|
|
|
<p v-else>{{ scope.row.userTotalScore }}分</p> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="scoreRatePercentage" label="得分率" align="center"> |
|
|
|
|
<template slot-scope="scope">{{ scope.row.questionType === 'essay' ? '-' : scope.row.scoreRatePercentage |
|
|
|
|
<template slot-scope="scope">{{ scope.row.questionType === 'essay' && scope.row.scoringStatus === '未判分' |
|
|
|
|
? '-' : scope.row.scoreRatePercentage |
|
|
|
|
}}</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
@ -155,19 +157,19 @@ |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<div v-if="ques.knowledgePointList && ques.knowledgePointList.length" class="m-b-10"> |
|
|
|
|
<span>【知识点】</span> |
|
|
|
|
<span class="line-label">【知识点】</span> |
|
|
|
|
<el-tag v-for="(kp, k) in ques.knowledgePointList" :key="k" class="m-r-5" type="info">{{ kp.name |
|
|
|
|
}}</el-tag> |
|
|
|
|
</div> |
|
|
|
|
<div class="flex m-b-10"> |
|
|
|
|
<span>【解析】</span> |
|
|
|
|
<span class="line-label">【解析】</span> |
|
|
|
|
<div |
|
|
|
|
v-if="ques.questionAnswerVersionsList.length && ques.questionAnswerVersionsList[0].answerAnalysis" |
|
|
|
|
v-html="ques.questionAnswerVersionsList[0].answerAnalysis" class="html-parse"></div> |
|
|
|
|
<div v-else>暂无解析</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div :class="['ques-info', { essay: item.questionType === 'essay' }]"> |
|
|
|
|
<div :class="['ques-info', { essay: item.questionType === 'essay' && ques.scoringStatus === '未判分' }]"> |
|
|
|
|
<template v-if="item.questionType === 'essay'"> |
|
|
|
|
<div class="line"> |
|
|
|
|
<span class="line-label">参考答案:</span> |
|
|
|
@ -205,6 +207,11 @@ |
|
|
|
|
<div class="line">考生得分:<el-input class="score-input" size="small" :value="ques.userScore" |
|
|
|
|
disabled />分 |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div v-for="(coment, k) in ques.comment" :key="k" class="line"> |
|
|
|
|
<span class="line-label">评语{{ k + 1 }}:</span> |
|
|
|
|
<div v-html="coment" class="html-parse"></div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
@ -287,6 +294,7 @@ export default { |
|
|
|
|
outlines: [], |
|
|
|
|
paper: [], |
|
|
|
|
essayExist: 0, |
|
|
|
|
notReview: 0, |
|
|
|
|
previewImgVisible: false, |
|
|
|
|
previewImg: '', |
|
|
|
|
pdfVisible: false, |
|
|
|
@ -308,8 +316,12 @@ export default { |
|
|
|
|
const { questionTypes: types, difficults } = QuesConst |
|
|
|
|
const { numToLetter } = Util |
|
|
|
|
let essayExist = 0 |
|
|
|
|
let notReview = 0 |
|
|
|
|
outline.map(e => { |
|
|
|
|
if (e.questionType === 'essay') essayExist = 1 |
|
|
|
|
if (e.questionType === 'essay') { |
|
|
|
|
essayExist = 1 |
|
|
|
|
if (e.scoringStatus === '未判分') notReview = 1 |
|
|
|
|
} |
|
|
|
|
e.shrink = false |
|
|
|
|
const type = e.questionType |
|
|
|
|
e.questionTypeName = types.find(n => n.id === type).name |
|
|
|
@ -325,7 +337,7 @@ export default { |
|
|
|
|
const opts = n.questionAnswerVersionsList |
|
|
|
|
if (type !== 'fill_blank' && type !== 'essay') { // 选择题 |
|
|
|
|
if (!n.userScore) n.userScore = 0 |
|
|
|
|
n.isCorrect = n.userScore && n.userScore === n.questionScore ? 1 : 2 |
|
|
|
|
this.handleIsCorrect(n) |
|
|
|
|
|
|
|
|
|
// 用户选择结果 |
|
|
|
|
let { userAnswer } = n |
|
|
|
@ -372,12 +384,13 @@ export default { |
|
|
|
|
if (n.userAnswerFill) rightLen = n.userAnswerFill.filter(m => m.correct).length // 正确的空的数量 |
|
|
|
|
n.isCorrect = n.userScore && n.questionScore === n.userScore ? 1 : (rightLen ? 3 : 2) |
|
|
|
|
} else if (type === 'essay') { // 简答题 |
|
|
|
|
n.isCorrect = 4 // 简答题显示待判分 |
|
|
|
|
this.handleIsCorrect(n) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
this.essayExist = essayExist // 是否存在简答题 |
|
|
|
|
this.notReview = notReview // 是否存在未判分的简答题 |
|
|
|
|
this.paper = outline |
|
|
|
|
this.outlines = [ |
|
|
|
|
...outline, |
|
|
|
@ -430,6 +443,10 @@ export default { |
|
|
|
|
this.loading = false |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
// 判断试题的对错 |
|
|
|
|
handleIsCorrect (n) { |
|
|
|
|
n.isCorrect = n.userScore === undefined ? 4 : (n.userScore === n.questionScore ? 1 : n.userScore ? 3 : 2) // 简答题没有reviewScore则显示待判分, 有则判断是否跟题目分数相同,完全相同是正确,小于则部分正确,0则错误 |
|
|
|
|
}, |
|
|
|
|
scrollToSmooth (position, duration) { |
|
|
|
|
let startTime = Date.now() |
|
|
|
|
|
|
|
|
@ -705,7 +722,7 @@ samp { |
|
|
|
|
|
|
|
|
|
li { |
|
|
|
|
position: relative; |
|
|
|
|
width: 30px; |
|
|
|
|
min-width: 30px; |
|
|
|
|
margin: 7px 9px; |
|
|
|
|
font-size: 13px; |
|
|
|
|
text-align: center; |
|
|
|
@ -748,6 +765,7 @@ samp { |
|
|
|
|
|
|
|
|
|
.score { |
|
|
|
|
height: 22px; |
|
|
|
|
padding: 0 2px; |
|
|
|
|
border: 1px solid #d3d3d3; |
|
|
|
|
border-top: 0; |
|
|
|
|
line-height: 22px; |
|
|
|
|