Browse Source

选择声调 答案回显

natasha 1 năm trước cách đây
mục cha
commit
d580299f11
1 tập tin đã thay đổi với 49 bổ sung16 xóa
  1. 49 16
      src/views/exercise_questions/preview/ChooseTonePreview.vue

+ 49 - 16
src/views/exercise_questions/preview/ChooseTonePreview.vue

@@ -37,7 +37,20 @@
               <span
                 v-for="(itemi, indexi) in itemc"
                 :key="indexi"
-                :class="['items-con', active_index_str === i + '-' + indexc + '-' + indexi ? 'active' : '']"
+                :class="[
+                  'items-con',
+                  active_index_str === i + '-' + indexc + '-' + indexi ? 'active' : '',
+                  isJudgingRightWrong &&
+                  !con_preview[i].user_answer[indexc].is_right &&
+                  con_preview[i].user_answer[indexc].select_index_submit === indexi
+                    ? 'error'
+                    : '',
+                  isJudgingRightWrong &&
+                  !con_preview[i].user_answer[indexc].is_right &&
+                  con_preview[i].user_answer[indexc].right_index === indexi
+                    ? 'right'
+                    : '',
+                ]"
                 @click="handleSelectItemTone(i, indexc, indexi, con_preview[i].item_con_yuan[indexc][indexi])"
                 >{{ itemi }}</span
               >
@@ -60,9 +73,16 @@
                   select_item_index === i
                 ? 'active'
                 : '',
-            con_preview[i].user_answer[con_preview[i].item_active_index].right_answer === value &&
-            con_preview[i].user_answer[con_preview[i].item_active_index].select_tone !==
-              con_preview[i].user_answer[con_preview[i].item_active_index].right_answer
+            (isJudgingRightWrong &&
+              con_preview[i].user_answer[con_preview[i].item_active_index].right_answer === value &&
+              con_preview[i].user_answer[con_preview[i].item_active_index].select_index_submit !==
+                con_preview[i].user_answer[con_preview[i].item_active_index].right_answer &&
+              data.property.answer_mode === 'select') ||
+            (data.property.answer_mode === 'label' &&
+              con_preview[i].user_answer[con_preview[i].item_active_index].right_answer === value &&
+              con_preview[i].user_answer[con_preview[i].item_active_index].right_index ===
+                con_preview[i].user_answer[con_preview[i].item_active_index].select_index &&
+              select_item_index === i)
               ? 'right'
               : '',
           ]"
@@ -234,8 +254,12 @@ export default {
                   }
                 });
               });
-              let number_index = e.search(/0|1|2|3|4/) + 1;
-              arr[index] = str.trim() + e.substring(number_index);
+              if (this.data.property.answer_mode === 'label') {
+                let number_index = e.search(/0|1|2|3|4/) + 1;
+                arr[index] = str.trim() + e.substring(number_index);
+              } else {
+                arr[index] = str.trim();
+              }
             } else {
               this.resArr.forEach((item) => {
                 str += ' ';
@@ -361,7 +385,10 @@ export default {
               indexs,
               user_res_arr[indexs],
             );
-            if (this.answer.answer_list[index].value[indexs].match(/\d+/g).length > 0) {
+            if (
+              this.answer.answer_list[index].value[indexs].match(/\d+/g) &&
+              this.answer.answer_list[index].value[indexs].match(/\d+/g).length > 0
+            ) {
               user_answer[indexs].select_tone = this.answer.answer_list[index].value[indexs].match(/\d+/g)[0];
               let letter_number = this.answer.answer_list[index].value[indexs].match(/\d+/g)[0];
               let letter_index = this.answer.answer_list[index].value[indexs].indexOf(letter_number) - 1;
@@ -369,8 +396,12 @@ export default {
                 letter_index,
                 letter_index + 1,
               );
-              user_answer[indexs].select_index = letter_index;
+              user_answer[indexs].select_index_submit = letter_index;
+            } else {
+              user_select[indexs] = items;
             }
+            user_answer[indexs].right_answer = this.data.answer.answer_list[index].value[indexs].match(/0|1|2|3|4/)[0];
+            user_answer[indexs].right_index = this.data.answer.answer_list[index].value[indexs].search(/0|1|2|3|4/) - 1;
           } else {
             this.handleReplaceTone(
               items + this.answer.answer_list[index].value[indexs],
@@ -397,8 +428,6 @@ export default {
       setTimeout(() => {
         this.show_preview = true;
       }, 100);
-
-      console.log(this.con_preview);
     },
   },
 };
@@ -448,6 +477,10 @@ export default {
         color: #000;
         cursor: pointer;
 
+        &.right {
+          color: $right-color;
+        }
+
         &.error {
           color: $error-color;
         }
@@ -470,17 +503,17 @@ export default {
         text-align: center;
         cursor: pointer;
 
-        &.active {
-          color: #2f6fec;
-          background: #dfe9fd;
-          border-radius: 16px;
-        }
-
         &.right {
           color: $right-color;
           background-color: $right-bc-color;
           border-radius: 16px;
         }
+
+        &.active {
+          color: #2f6fec;
+          background: #dfe9fd;
+          border-radius: 16px;
+        }
       }
     }
   }