Parcourir la source

Merge branch 'master' of http://60.205.254.193:3000/GCLS/GCLS_Page_Exercise

dusenyao il y a 1 an
Parent
commit
82ae1490cd

+ 1 - 5
src/views/exercise_questions/preview/AnswerQuestionPreview.vue

@@ -8,11 +8,7 @@
 
     <AudioPlay v-if="data.file_id_list.length > 0" :file-id="data.file_id_list[0]" />
 
-    <SoundRecordPreview
-      :wav-blob.sync="answer.answer_list[0].audio_file_id"
-      :disabled="isJudgingRightWrong"
-      position="center"
-    />
+    <SoundRecordPreview :wav-blob.sync="answer.answer_list[0].audio_file_id" :disabled="disabled" position="center" />
     <div v-if="isEnable(data.property.is_enable_reference_answer) && isShowRightAnswer" class="reference-box">
       <h5 class="reference-title">参考答案</h5>
       <span class="reference-answer" v-html="sanitizeHTML(data.reference_answer)"></span>

+ 1 - 1
src/views/exercise_questions/preview/ChinesePreview.vue

@@ -123,7 +123,7 @@
         :curren-hz-data="current_hz_data"
         :row-index="active_index"
         :col-index="active_col_index"
-        :disabled="isJudgingRightWrong"
+        :disabled="disabled"
         @closeIfFreeShow="closeIfFreeShow"
         @changePraShow="changePraShow"
         @changeCurQue="changeCurQue"

+ 50 - 18
src/views/exercise_questions/preview/ChooseTonePreview.vue

@@ -6,7 +6,6 @@
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
     <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
-
     <div class="option-list">
       <li v-for="(item, i) in data.option_list" :key="i" :class="['option-item']">
         <span>{{ computeOptionMethods[data.option_number_show_mode](i) }} </span>
@@ -37,7 +36,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 +72,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'
               : '',
           ]"
@@ -144,7 +163,7 @@ export default {
   },
   methods: {
     chooseTone(item, value, i) {
-      if (this.isJudgingRightWrong) return;
+      if (this.disabled) return;
       if ((!this.active_letter || this.select_item_index !== i) && this.data.property.answer_mode === 'label') return;
       item.user_answer[item.item_active_index].select_tone = value;
       if (this.data.property.answer_mode === 'label') {
@@ -234,8 +253,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 +384,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 +395,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 +427,6 @@ export default {
       setTimeout(() => {
         this.show_preview = true;
       }, 100);
-
-      console.log(this.con_preview);
     },
   },
 };
@@ -448,6 +476,10 @@ export default {
         color: #000;
         cursor: pointer;
 
+        &.right {
+          color: $right-color;
+        }
+
         &.error {
           color: $error-color;
         }
@@ -470,17 +502,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;
+        }
       }
     }
   }

+ 3 - 7
src/views/exercise_questions/preview/EssayQuestionPreview.vue

@@ -15,21 +15,17 @@
       placeholder="请输入"
       :maxlength="1000"
       show-word-limit
-      :readonly="isJudgingRightWrong"
+      :readonly="disabled"
       @input="handleInput"
     />
-    <SoundRecordPreview
-      :disabled="isJudgingRightWrong"
-      :wav-blob.sync="answer.answer_list[0].audio_file_id"
-      position="center"
-    />
+    <SoundRecordPreview :disabled="disabled" :wav-blob.sync="answer.answer_list[0].audio_file_id" position="center" />
     <UploadFiles
       :fille-number="999"
       file-type-name="文件"
       :upload-type="'*'"
       :file-id-list="answer.answer_list[0].accessory_file_id_list"
       upload-title="上传附件:"
-      :disabled="isJudgingRightWrong"
+      :disabled="disabled"
       @upload="handleUpload"
       @deleteFile="handleDelete"
     />

+ 1 - 1
src/views/exercise_questions/preview/RepeatPreview.vue

@@ -16,7 +16,7 @@
           v-html="sanitizeHTML(data.option_list[i].content)"
         ></div>
         <div class="sound-box">
-          <SoundRecordPreview :wav-blob.sync="item.audio_file_id" :disabled="isJudgingRightWrong" :type="'small'" />
+          <SoundRecordPreview :wav-blob.sync="item.audio_file_id" :disabled="disabled" :type="'small'" />
         </div>
       </li>
     </div>

+ 3 - 7
src/views/exercise_questions/preview/ReplaceAnswerPreview.vue

@@ -13,7 +13,7 @@
           <ul
             :ref="'ui' + i"
             class="replace-ul"
-            :style="{ overflow: isJudgingRightWrong ? 'hidden' : 'scroll' }"
+            :style="{ overflow: disabled ? 'hidden' : 'scroll' }"
             @scroll="handleScroll($event, i)"
           >
             <li
@@ -28,11 +28,7 @@
         </template>
         <span v-else class="select-item replace-ul">{{ item[0].content }}</span>
       </div>
-      <SoundRecordPreview
-        :wav-blob.sync="answer.answer_list[0].audio_file_id"
-        :disabled="isJudgingRightWrong"
-        position="center"
-      />
+      <SoundRecordPreview :wav-blob.sync="answer.answer_list[0].audio_file_id" :disabled="disabled" position="center" />
     </div>
   </div>
 </template>
@@ -128,7 +124,7 @@ export default {
       this.$forceUpdate();
     },
     handleClickItem(i, indexs) {
-      if (this.isJudgingRightWrong) return;
+      if (this.disabled) return;
       this.$refs[`ui${i}`][0].scrollTop = indexs * 48;
       this.active_content[i] = this.option_list[i][indexs].content;
       this.answer.answer_list[0].mark_list[i] = this.option_list[i][indexs].mark;

+ 3 - 3
src/views/exercise_questions/preview/SortPreview.vue

@@ -12,7 +12,7 @@
       :options="{
         group: { name: 'itxst', pull: 'clone' },
       }"
-      :sort="!isJudgingRightWrong"
+      :sort="!disabled"
       :class="['content-box', 'content-box-' + data.property.layout_type]"
       @start="onStart($event)"
       @end="onEnd($event)"
@@ -44,7 +44,7 @@
         </div>
       </transition-group>
     </draggable>
-    <template v-if="isJudgingRightWrong && !is_all_right">
+    <template v-if="isShowRightAnswer && !is_all_right">
       <h4 class="right-title">正确答案:</h4>
       <draggable
         v-model="move_list"
@@ -161,7 +161,7 @@ export default {
     // 点击item
     handleClickItem(indexNode) {
       // 查看答案模式下需要禁用
-      if (this.isJudgingRightWrong) return;
+      if (this.disabled) return;
       this.click_index_list.push(indexNode);
     },
     // 点击交换

+ 1 - 1
src/views/exercise_questions/preview/TalkPictruePreview.vue

@@ -19,7 +19,7 @@
         <!-- 语音作答 -->
         <div v-if="isEnable(data.property.is_enable_voice_answer) && answer.answer_list[index]" class="sound-box">
           <SoundRecordPreview
-            :disabled="isJudgingRightWrong"
+            :disabled="disabled"
             :wav-blob.sync="answer.answer_list[index].audio_file_id"
             type="small"
           />

+ 1 - 1
src/views/exercise_questions/preview/WordCardPreview.vue

@@ -78,7 +78,7 @@
           <SoundRecordPreview
             :wav-blob.sync="answer.answer_list[active_index].audio_file_id"
             :type="'small'"
-            :disabled="isJudgingRightWrong"
+            :disabled="disabled"
           />
         </div>
       </div>

+ 2 - 2
src/views/exercise_questions/preview/WritePictruePreview.vue

@@ -35,7 +35,7 @@
         placeholder="请输入"
         :maxlength="data.property.word_num"
         show-word-limit
-        :readonly="isJudgingRightWrong"
+        :readonly="disabled"
         @input="handleInput"
       />
     </div>
@@ -43,7 +43,7 @@
       <!-- 上传附件 -->
       <UploadFiles
         v-if="answer.answer_list[active_index]"
-        :disabled="isJudgingRightWrong"
+        :disabled="disabled"
         :fille-number="999"
         file-type-name="文件"
         :upload-type="'*'"

+ 2 - 2
src/views/exercise_questions/preview/WritePreview.vue

@@ -19,7 +19,7 @@
       :maxlength="data.property.word_num"
       show-word-limit
       @input="handleInput"
-      :readonly="isJudgingRightWrong"
+      :readonly="disabled"
     />
 
     <template v-if="isEnable(data.property.is_enable_upload_accessory)">
@@ -32,7 +32,7 @@
         upload-title="上传附件:"
         @upload="handleUpload"
         @deleteFile="handleDelete"
-        :disabled="isJudgingRightWrong"
+        :disabled="disabled"
       />
     </template>
     <template v-if="isEnable(data.property.is_enable_sample_text) && isShowRightAnswer">