|
|
@ -6,7 +6,7 @@ |
|
|
|
<div class="actions"> |
|
|
|
<div class="actions"> |
|
|
|
<el-button v-if="showPrev" class="btn" @click="switchRecord(0)">上一个</el-button> |
|
|
|
<el-button v-if="showPrev" class="btn" @click="switchRecord(0)">上一个</el-button> |
|
|
|
<el-button v-if="showNext" class="btn" @click="switchRecord(1)">下一个</el-button> |
|
|
|
<el-button v-if="showNext" class="btn" @click="switchRecord(1)">下一个</el-button> |
|
|
|
<el-button class="btn" @click="saveAll">一键保存分数</el-button> |
|
|
|
<el-button v-if="!readonly" class="btn" @click="saveAll">一键保存分数</el-button> |
|
|
|
<img class="exit" src="@/assets/images/exit.svg" alt="" @click="close"> |
|
|
|
<img class="exit" src="@/assets/images/exit.svg" alt="" @click="close"> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -44,8 +44,8 @@ |
|
|
|
@click="filterStatus(item.id)">{{ item.name }}</li> |
|
|
|
@click="filterStatus(item.id)">{{ item.name }}</li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div :class="['middle', { none: !paper || !paper.length }]"> |
|
|
|
<div :class="['middle', { none: !paper || !paper.length }]" id="middle"> |
|
|
|
<ul v-if="paper && paper.length" class="ques-wrap" id="quesWrap"> |
|
|
|
<ul v-if="paper && paper.length" class="ques-wrap"> |
|
|
|
<li v-for="(item, i) in paper" :key="i"> |
|
|
|
<li v-for="(item, i) in paper" :key="i"> |
|
|
|
<div class="outline"> |
|
|
|
<div class="outline"> |
|
|
|
{{ arabicToChinese(i + 1) }}、{{ item.outlineName }}(本题共{{ item.questionNum }}小题,共{{ |
|
|
|
{{ arabicToChinese(i + 1) }}、{{ item.outlineName }}(本题共{{ item.questionNum }}小题,共{{ |
|
|
@ -141,13 +141,13 @@ |
|
|
|
<div class="line">题目分值:{{ ques.questionScore }}分</div> |
|
|
|
<div class="line">题目分值:{{ ques.questionScore }}分</div> |
|
|
|
<div class="line"> |
|
|
|
<div class="line"> |
|
|
|
考生得分:<el-input class="score-input hide-spin" type="number" placeholder="请输入分数" size="small" |
|
|
|
考生得分:<el-input class="score-input hide-spin" type="number" placeholder="请输入分数" size="small" |
|
|
|
:disabled="item.questionType === 'fill_blank'" v-model.number="ques.reviewScore" /> |
|
|
|
:disabled="item.questionType === 'fill_blank' || readonly" v-model.number="ques.reviewScore" /> |
|
|
|
<span class="m-r-10">分</span> |
|
|
|
<span class="m-r-10">分</span> |
|
|
|
<span v-if="item.questionType === 'fill_blank'">(如需修改填空题的得分请直接修改考生答案的对错)</span> |
|
|
|
<span v-if="item.questionType === 'fill_blank'">(如需修改填空题的得分请直接修改考生答案的对错)</span> |
|
|
|
|
|
|
|
|
|
|
|
<el-button v-if="ques.originUserScore !== ques.reviewScore" class="m-l-10" type="primary" |
|
|
|
<el-button v-if="ques.originUserScore !== ques.reviewScore && !readonly" class="m-l-10" |
|
|
|
size="mini" @click="saveScore(ques)">保存分数</el-button> |
|
|
|
type="primary" size="mini" @click="saveScore(ques)">保存分数</el-button> |
|
|
|
<el-popover class="m-l-20" placement="bottom" width="400" trigger="click"> |
|
|
|
<el-popover v-if="!readonly" class="m-l-20" placement="bottom" width="400" trigger="click"> |
|
|
|
<el-input type="textarea" :rows="3" :autosize="{ minRows: 3 }" resize="none" placeholder="请输入" |
|
|
|
<el-input type="textarea" :rows="3" :autosize="{ minRows: 3 }" resize="none" placeholder="请输入" |
|
|
|
v-model="ques.newComments" /> |
|
|
|
v-model="ques.newComments" /> |
|
|
|
<div class="m-t-10 text-right"> |
|
|
|
<div class="m-t-10 text-right"> |
|
|
@ -162,7 +162,7 @@ |
|
|
|
<span class="line-label">评语:</span> |
|
|
|
<span class="line-label">评语:</span> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<span>{{ ques.commentSetTime }}</span> |
|
|
|
<span>{{ ques.commentSetTime }}</span> |
|
|
|
<i class="el-icon-delete-solid del-comment" @click="delComment(ques)"></i> |
|
|
|
<i v-if="!readonly" class="el-icon-delete-solid del-comment" @click="delComment(ques)"></i> |
|
|
|
|
|
|
|
|
|
|
|
<div class="comment" v-html="ques.comments"></div> |
|
|
|
<div class="comment" v-html="ques.comments"></div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -221,6 +221,7 @@ export default { |
|
|
|
stageId: this.$route.query.s, |
|
|
|
stageId: this.$route.query.s, |
|
|
|
showUserInfo: +this.$route.query.u, // 是否展示学生信息 |
|
|
|
showUserInfo: +this.$route.query.u, // 是否展示学生信息 |
|
|
|
hasManualScoreType: +this.$route.query.m, // 是否有主观题 |
|
|
|
hasManualScoreType: +this.$route.query.m, // 是否有主观题 |
|
|
|
|
|
|
|
readonly: !!(+this.$route.query.r), // 仅查看 |
|
|
|
curIndex: 0, |
|
|
|
curIndex: 0, |
|
|
|
paperName: '', |
|
|
|
paperName: '', |
|
|
|
outline: [], |
|
|
|
outline: [], |
|
|
@ -385,7 +386,7 @@ export default { |
|
|
|
function scroll () { |
|
|
|
function scroll () { |
|
|
|
let now = Date.now() |
|
|
|
let now = Date.now() |
|
|
|
let progress = Math.min(1, (now - startTime) / duration) |
|
|
|
let progress = Math.min(1, (now - startTime) / duration) |
|
|
|
document.querySelector('#quesWrap').scrollTo(0, position * progress) |
|
|
|
document.querySelector('#middle').scrollTo(0, position * progress) |
|
|
|
|
|
|
|
|
|
|
|
if (progress < 1) { |
|
|
|
if (progress < 1) { |
|
|
|
window.requestAnimationFrame(scroll) |
|
|
|
window.requestAnimationFrame(scroll) |
|
|
@ -399,7 +400,7 @@ export default { |
|
|
|
item.shrink = false |
|
|
|
item.shrink = false |
|
|
|
const el = document.querySelector('#ques' + e.id) |
|
|
|
const el = document.querySelector('#ques' + e.id) |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$nextTick(() => { |
|
|
|
el && this.scrollToSmooth(el.offsetTop - document.querySelector('#quesWrap').offsetTop, 200) |
|
|
|
el && this.scrollToSmooth(el.offsetTop - document.querySelector('#middle').offsetTop, 200) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 左侧评阅切换 |
|
|
|
// 左侧评阅切换 |
|
|
@ -520,7 +521,7 @@ export default { |
|
|
|
const id = res[isNext ? 'nextReportId' : 'previousReportId'] |
|
|
|
const id = res[isNext ? 'nextReportId' : 'previousReportId'] |
|
|
|
if (id) { |
|
|
|
if (id) { |
|
|
|
this.reportId = id |
|
|
|
this.reportId = id |
|
|
|
this.$router.push(`/theoryReview?id=${id}&u=${this.showUserInfo}&m=${this.hasManualScoreType}&c=${this.competitionId}&s=${this.stageId}`) |
|
|
|
this.$router.push(`/theoryReview?id=${id}&u=${this.showUserInfo}&m=${this.hasManualScoreType}&c=${this.competitionId}&s=${this.stageId}&r=${this.readonly ? 1 : 0}`) |
|
|
|
this.getData() |
|
|
|
this.getData() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|