提交 a6cadadb authored 作者: pengxiaohui's avatar pengxiaohui

优化批阅试卷接口

上级 a3edb6df
<template>
<el-card class="container">
<div slot="header" class="clearfix">
<span>{{options.question_item_title}}</span>
<span>{{questionItem.question_item_title}}</span>
</div>
<div class="content">
<template v-for="item in options.question_list">
<template v-for="item in questionItem.question_list">
<div class="sub-content" v-if="item.group_id" :key="item.id">
<div class="title" v-html="item.common_content"></div>
<div class="sub-container">
<question-item v-for="subItem in item.list" :key="subItem.id" :question="{item: subItem, question_item_id, questionType}" :question_item_id="question_item_id" />
<question-item v-for="subItem in item.list" :key="subItem.id" :question="{item: subItem, question_item_id, questionType, sheet_id}" :question_item_id="question_item_id" />
</div>
</div>
<question-item v-else :question="{item, question_item_id, questionType}" :question_item_id="question_item_id" :key="item.id" />
<question-item v-else :question="{item, question_item_id, questionType, sheet_id}" :question_item_id="question_item_id" :key="item.id" />
</template>
</div>
</el-card>
......@@ -35,8 +35,14 @@ export default {
return {}
},
computed: {
questionItem() {
return this.options.item
},
sheet_id() {
return this.options.sheet_id
},
questionType() {
return this.options.question_item_type
return this.options.item.question_item_type
},
// 选项类型
questionTypeText() {
......
......@@ -24,12 +24,12 @@
<div class="comment-top">
<p>本题{{questionData.score}}</p>
<div class="get-score">
学生得分:<el-input-number v-model="questionData.get_score" controls-position="right" :min="0" :max="questionData.score" size="mini"></el-input-number>
学生得分:<el-input-number :disabled="questionData.checked_flag" v-model="questionData.get_score" controls-position="right" :min="0" :max="questionData.score" size="mini"></el-input-number>
</div>
</div>
<el-input type="textarea" placeholder="请输入评语" v-model="comment" rows="3"/>
<el-input type="textarea" placeholder="请输入评语" v-model="questionData.comment" rows="3" :disabled="questionData.checked_flag" />
<div style="text-align:center;padding-top:10px;">
<el-button type="primary" size="mini" @click="handleComment">提交点评</el-button>
<el-button type="primary" size="mini" @click="fetchComment" :disabled="questionData.checked_flag" >提交点评</el-button>
</div>
</div>
</template>
......@@ -63,8 +63,8 @@ export default {
const type = this.questionData.type || this.question.questionType || 1
return parseInt(type)
},
eid() {
return this.$route.query.eid
sheet_id() {
return this.question.sheet_id
}
// // 选项类型
// questionTypeText() {
......@@ -74,24 +74,24 @@ export default {
},
created() {
this.questionData = JSON.parse(JSON.stringify(this.question.item))
console.log(this.question)
// if (this.questionType === 3) console.log(this.questionData)
},
methods: {
handleComment() {
console.log(this.question_item_id)
console.log(this.questionData)
// console.log(this.question_item_id)
// console.log(this.questionData)
this.fetchComment()
},
fetchComment() {
const params = {
sheet_id: this.eid,
sheet_id: this.sheet_id,
question_item_id: this.question_item_id,
question_id: this.questionData.id,
score: this.questionData.get_score,
comment: this.comment
comment: this.questionData.comment
}
submitPaper(params).then(res => {
if (res.code === 0) {
if (res.success) {
this.$message.success('提交点评成功')
} else {
this.$message.success('提交点评失败')
......
<template>
<div>
<template v-for="item in questionList">
<paper-question :options="item" :question_item_id="item.question_item_id" :key="item.question_item_id" />
<paper-question :options="{ item, sheet_id: questionData.sheet_id, question_item_id: item.question_item_id }" :question_item_id="item.question_item_id" :key="item.question_item_id" />
</template>
</div>
</template>
......@@ -319,7 +319,7 @@ export default {
getDetail() {
getPaperDetails({ exam_id: this.eid, student_id: this.sid }).then(res => {
if (res.code === 0) {
console.log(res.data)
// console.log(res.data)
this.questionData = res.data.sheet
this.assembleData()
}
......@@ -333,16 +333,18 @@ export default {
if (subItem.group_id) {
subItem.list.forEach(it => {
const obj = score[it.id]
it.get_score = 0
it.get_score = obj.score
if (it.answer) it.answer = JSON.parse(it.answer)
it.get_score = obj.score || 0
it.checked_flag = obj.checked_flag || false
if (obj.comment) it.comment = obj.comment
// if (it.answer) it.answer = JSON.parse(it.answer)
if (it.options) it.options = JSON.parse(it.options)
})
} else {
const obj = score[subItem.id]
subItem.get_score = 0
subItem.get_score = obj.score
if (subItem.answer) subItem.answer = JSON.parse(subItem.answer)
subItem.get_score = obj.score || 0
subItem.checked_flag = obj.checked_flag || false
if (obj.comment) subItem.comment = obj.comment
// if (subItem.answer) subItem.answer = JSON.parse(subItem.answer)
if (subItem.options) subItem.options = JSON.parse(subItem.options)
}
})
......
......@@ -53,6 +53,10 @@ httpRequest.interceptors.response.use(
if (data.code === 0 || data.type === 'application/vnd.ms-excel') {
return data
}
// 批阅试卷接口
if (data.success && data.message === 'ok') {
return data
}
// 未登录
if (data.code === 4001) {
window.location.href = `${import.meta.env.VITE_LOGIN_URL}?rd=${encodeURIComponent(window.location.href)}`
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论