|
|
@@ -65,7 +65,7 @@
|
|
|
<el-radio-group
|
|
|
class="radio_group"
|
|
|
v-if="Number(item.isJudge) === 1"
|
|
|
- v-model="item.answer"
|
|
|
+ v-model="item.studentAnswer"
|
|
|
@input="HandleJudgeChange(item)"
|
|
|
>
|
|
|
<el-radio label="√">√</el-radio>
|
|
|
@@ -75,7 +75,7 @@
|
|
|
<el-checkbox-group
|
|
|
class="checkbox_group"
|
|
|
v-else
|
|
|
- v-model="item.answer"
|
|
|
+ v-model="item.studentAnswer"
|
|
|
@change="HandleCheckChange(item)"
|
|
|
>
|
|
|
<el-checkbox
|
|
|
@@ -104,13 +104,13 @@
|
|
|
</el-upload>
|
|
|
<div
|
|
|
class="upload_list_item"
|
|
|
- v-for="(url, index) in item.answer"
|
|
|
+ v-for="(url, index) in item.studentAnswer"
|
|
|
:key="index"
|
|
|
@click="HandlePictureCardPreview(url)"
|
|
|
>
|
|
|
<img :src="url" />
|
|
|
<i
|
|
|
- @click.stop="HandleRemove(item.answer,index)"
|
|
|
+ @click.stop="HandleRemove(item.studentAnswer,index)"
|
|
|
class="el-icon-error upload_list_item_delete"
|
|
|
></i>
|
|
|
</div>
|
|
|
@@ -271,17 +271,17 @@ export default {
|
|
|
questionList.forEach((item) => {
|
|
|
if (Number(item.isObjective) === 1) {
|
|
|
//客观题
|
|
|
- let answer = "";
|
|
|
+ let studentAnswer = "";
|
|
|
if (Number(item.isJudge) === 1) {
|
|
|
//判断题
|
|
|
- answer = item.answer || "";
|
|
|
+ studentAnswer = item.studentAnswer || "";
|
|
|
} else {
|
|
|
//选择题
|
|
|
- answer = Array.isArray(item.answer) ? item.answer : [];
|
|
|
+ studentAnswer = item.studentAnswer ? (item?.studentAnswer?.split('') || []) : [];
|
|
|
}
|
|
|
- item.answer = answer;
|
|
|
+ item.studentAnswer = studentAnswer;
|
|
|
} else {
|
|
|
- item.answer = Array.isArray(item.answer) ? item.answer : [];
|
|
|
+ item.studentAnswer = item.studentAnswer ? (item?.studentAnswer?.split(',') || []) : [];
|
|
|
}
|
|
|
});
|
|
|
this.questionList = questionList;
|
|
|
@@ -301,14 +301,14 @@ export default {
|
|
|
},
|
|
|
//判断题改变
|
|
|
HandleJudgeChange(item) {
|
|
|
- item.answer = item.answer || "";
|
|
|
- this.SubmitQuestionAnswering(item.exerciseQueId,item.answer);
|
|
|
+ item.studentAnswer = item.studentAnswer || "";
|
|
|
+ this.SubmitQuestionAnswering(item.exerciseQueId,item.studentAnswer);
|
|
|
},
|
|
|
//选择题改变
|
|
|
HandleCheckChange(item) {
|
|
|
- item.answer = item.answer || [];
|
|
|
- const answer = item?.answer?.join('') || '';
|
|
|
- this.SubmitQuestionAnswering(item.exerciseQueId,answer);
|
|
|
+ item.studentAnswer = item.studentAnswer || [];
|
|
|
+ const studentAnswer = item?.studentAnswer?.join('') || '';
|
|
|
+ this.SubmitQuestionAnswering(item.exerciseQueId,studentAnswer);
|
|
|
},
|
|
|
// 超出最大数量触发
|
|
|
HandleExceed(files, fileList) {
|
|
|
@@ -318,14 +318,14 @@ export default {
|
|
|
HandleUploadSuccess(res, file, fileList,item){
|
|
|
if(res.code == 200){
|
|
|
const url = res?.data?.url || '';
|
|
|
- item.answer.push(url);
|
|
|
- const answer = item?.answer?.join(',') || '';
|
|
|
- this.SubmitQuestionAnswering(item.exerciseQueId,answer);
|
|
|
+ item.studentAnswer.push(url);
|
|
|
+ const studentAnswer = item?.studentAnswer?.join(',') || '';
|
|
|
+ this.SubmitQuestionAnswering(item.exerciseQueId,studentAnswer);
|
|
|
}
|
|
|
},
|
|
|
//删除图片
|
|
|
- HandleRemove(answer,index) {
|
|
|
- answer.splice(index, 1);
|
|
|
+ HandleRemove(studentAnswer,index) {
|
|
|
+ studentAnswer.splice(index, 1);
|
|
|
},
|
|
|
//提交答案
|
|
|
SubmitQuestionAnswering(exerciseQueId,stuAnswer) {
|
|
|
@@ -340,6 +340,22 @@ export default {
|
|
|
},
|
|
|
//提交作答
|
|
|
SubmitAnswer(){
|
|
|
+ console.log(this.questionList)
|
|
|
+ const studentAnswers = this.questionList.map(item=>item.studentAnswer);
|
|
|
+ console.log(studentAnswers)
|
|
|
+ const hasInvalid = studentAnswers.some(item => {
|
|
|
+ // 判断 null 或 undefined
|
|
|
+ if (item == null) return true;
|
|
|
+ // 判断空字符串
|
|
|
+ if (item === '') return true;
|
|
|
+ // 判断空数组
|
|
|
+ if (Array.isArray(item) && item.length === 0) return true;
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+ if (hasInvalid) {
|
|
|
+ this.$message.warning('不能提交空答案');
|
|
|
+ return;
|
|
|
+ }
|
|
|
this.$api.target.studentTargeSubmitExercise({
|
|
|
exerciseId: this.exerciseId, // 练习id
|
|
|
}).then((res) => {
|