Przeglądaj źródła

知识点练习作答答案回显

liurongli 15 godzin temu
rodzic
commit
2a9fa6427b
1 zmienionych plików z 35 dodań i 19 usunięć
  1. 35 19
      src/views/targetImprove/practice/practiceAnswer.vue

+ 35 - 19
src/views/targetImprove/practice/practiceAnswer.vue

@@ -65,7 +65,7 @@
                   <el-radio-group
                   <el-radio-group
                     class="radio_group"
                     class="radio_group"
                     v-if="Number(item.isJudge) === 1"
                     v-if="Number(item.isJudge) === 1"
-                    v-model="item.answer"
+                    v-model="item.studentAnswer"
                     @input="HandleJudgeChange(item)"
                     @input="HandleJudgeChange(item)"
                   >
                   >
                     <el-radio label="√">√</el-radio>
                     <el-radio label="√">√</el-radio>
@@ -75,7 +75,7 @@
                   <el-checkbox-group
                   <el-checkbox-group
                     class="checkbox_group"
                     class="checkbox_group"
                     v-else
                     v-else
-                    v-model="item.answer"
+                    v-model="item.studentAnswer"
                     @change="HandleCheckChange(item)"
                     @change="HandleCheckChange(item)"
                   >
                   >
                     <el-checkbox
                     <el-checkbox
@@ -104,13 +104,13 @@
                   </el-upload>
                   </el-upload>
                   <div
                   <div
                     class="upload_list_item"
                     class="upload_list_item"
-                    v-for="(url, index) in item.answer"
+                    v-for="(url, index) in item.studentAnswer"
                     :key="index"
                     :key="index"
                     @click="HandlePictureCardPreview(url)"
                     @click="HandlePictureCardPreview(url)"
                   >
                   >
                     <img :src="url" />
                     <img :src="url" />
                     <i
                     <i
-                      @click.stop="HandleRemove(item.answer,index)"
+                      @click.stop="HandleRemove(item.studentAnswer,index)"
                       class="el-icon-error upload_list_item_delete"
                       class="el-icon-error upload_list_item_delete"
                     ></i>
                     ></i>
                   </div>
                   </div>
@@ -271,17 +271,17 @@ export default {
             questionList.forEach((item) => {
             questionList.forEach((item) => {
               if (Number(item.isObjective) === 1) {
               if (Number(item.isObjective) === 1) {
                 //客观题
                 //客观题
-                let answer = "";
+                let studentAnswer = "";
                 if (Number(item.isJudge) === 1) {
                 if (Number(item.isJudge) === 1) {
                   //判断题
                   //判断题
-                  answer = item.answer || "";
+                  studentAnswer = item.studentAnswer || "";
                 } else {
                 } else {
                   //选择题
                   //选择题
-                  answer = Array.isArray(item.answer) ? item.answer : [];
+                  studentAnswer = item.studentAnswer ? (item?.studentAnswer?.split('') || []) : [];
                 }
                 }
-                item.answer = answer;
+                item.studentAnswer = studentAnswer;
               } else {
               } else {
-                item.answer = Array.isArray(item.answer) ? item.answer : [];
+                item.studentAnswer = item.studentAnswer ? (item?.studentAnswer?.split(',') || []) : [];
               }
               }
             });
             });
             this.questionList = questionList;
             this.questionList = questionList;
@@ -301,14 +301,14 @@ export default {
     },
     },
     //判断题改变
     //判断题改变
     HandleJudgeChange(item) {
     HandleJudgeChange(item) {
-      item.answer = item.answer || "";
-      this.SubmitQuestionAnswering(item.exerciseQueId,item.answer);
+      item.studentAnswer = item.studentAnswer || "";
+      this.SubmitQuestionAnswering(item.exerciseQueId,item.studentAnswer);
     },
     },
     //选择题改变
     //选择题改变
     HandleCheckChange(item) {
     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) {
     HandleExceed(files, fileList) {
@@ -318,14 +318,14 @@ export default {
     HandleUploadSuccess(res, file, fileList,item){
     HandleUploadSuccess(res, file, fileList,item){
       if(res.code == 200){
       if(res.code == 200){
         const url = res?.data?.url || '';
         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) {
     SubmitQuestionAnswering(exerciseQueId,stuAnswer) {
@@ -340,6 +340,22 @@ export default {
     },
     },
     //提交作答
     //提交作答
     SubmitAnswer(){
     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({
       this.$api.target.studentTargeSubmitExercise({
         exerciseId: this.exerciseId, // 练习id
         exerciseId: this.exerciseId, // 练习id
       }).then((res) => {
       }).then((res) => {