Browse Source

标注声调答案回显

natasha 1 year ago
parent
commit
4f6d43b0c0
1 changed files with 44 additions and 25 deletions
  1. 44 25
      src/views/exercise_questions/preview/ChooseTonePreview.vue

+ 44 - 25
src/views/exercise_questions/preview/ChooseTonePreview.vue

@@ -205,7 +205,6 @@ export default {
         this.con_preview.push(obj);
       });
       this.show_preview = true;
-      console.log(this.con_preview);
     },
     handleReplaceTone(e, arr, index, resArr) {
       this.$nextTick(() => {
@@ -235,24 +234,26 @@ export default {
                   }
                 });
               });
-              arr[index] = str.trim();
-            }
-            this.resArr.forEach((item) => {
-              str += ' ';
-              item.forEach((sItem) => {
-                if (sItem.number && sItem.con) {
-                  let number = Number(sItem.number);
-                  let con = sItem.con;
-                  let word = this.addTone(number, con);
-                  str += word;
-                } else if (sItem.number) {
-                  str += sItem.number;
-                } else if (sItem.con) {
-                  str += ` ${sItem.con} `;
-                }
+              let number_index = e.search(/0|1|2|3|4/) + 1;
+              arr[index] = str.trim() + e.substring(number_index);
+            } else {
+              this.resArr.forEach((item) => {
+                str += ' ';
+                item.forEach((sItem) => {
+                  if (sItem.number && sItem.con) {
+                    let number = Number(sItem.number);
+                    let con = sItem.con;
+                    let word = this.addTone(number, con);
+                    str += word;
+                  } else if (sItem.number) {
+                    str += sItem.number;
+                  } else if (sItem.con) {
+                    str += ` ${sItem.con} `;
+                  }
+                });
               });
-            });
-            this.final_con = str.trim();
+              this.final_con = str.trim();
+            }
           }, 10);
         }
       });
@@ -353,13 +354,31 @@ export default {
           });
           user_res_arr.push([]);
           user_select.push('');
-
-          this.handleReplaceTone(
-            items + this.answer.answer_list[index].value[indexs],
-            user_select,
-            indexs,
-            user_res_arr[indexs],
-          );
+          if (this.data.property.answer_mode === 'label') {
+            this.handleReplaceTone(
+              this.answer.answer_list[index].value[indexs],
+              user_select,
+              indexs,
+              user_res_arr[indexs],
+            );
+            if (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;
+              user_answer[indexs].select_letter = this.answer.answer_list[index].value[indexs].substring(
+                letter_index,
+                letter_index + 1,
+              );
+              user_answer[indexs].select_index = letter_index;
+            }
+          } else {
+            this.handleReplaceTone(
+              items + this.answer.answer_list[index].value[indexs],
+              user_select,
+              indexs,
+              user_res_arr[indexs],
+            );
+          }
         });
         let obj = {
           item_con: user_select,