Ver Fonte

预览优化

dsy há 1 semana atrás
pai
commit
cff0bdafb6

+ 5 - 1
src/views/book/courseware/preview/common/PreviewOperation.vue

@@ -3,7 +3,11 @@
     <!-- 重做 -->
     <div v-show="permissionControl.can_answer" class="button retry" @click="retry()"></div>
     <!-- 判断对错 -->
-    <div v-show="permissionControl.can_judge_correct" class="button correct" @click="judgeCorrect"></div>
+    <div
+      v-show="permissionControl.can_judge_correct && isShowAnswer"
+      class="button correct"
+      @click="judgeCorrect"
+    ></div>
     <!-- 查看答案 -->
     <div
       v-show="permissionControl.can_show_answer && isShowAnswer"

+ 19 - 1
src/views/book/courseware/preview/components/fill/FillPreview.vue

@@ -20,6 +20,7 @@
                 :paragraph-list="li.paragraph_list"
                 :rich-text-list="li.rich_text_list"
                 :pinyin-position="data.property.pinyin_position"
+                :body-styles="getBodyStyles()"
                 :is-preview="true"
               />
               <span v-else :key="`text-${i}`" class="html-content" v-html="renderTextBlockContent(li)"></span>
@@ -109,10 +110,10 @@
       <div v-if="showLang" class="lang">
         {{ data.multilingual.find((item) => item.type === getLang())?.translation }}
       </div>
+      <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     </div>
 
     <WriteDialog :visible.sync="writeVisible" @confirm="handleWriteConfirm" />
-    <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     <AnswerCorrect
       :visible.sync="visibleAnswerCorrect"
       :is-check-correct="isCheckCorrect"
@@ -477,6 +478,23 @@ export default {
 
       this.$set(this.inputWidthMap, mark, nextWidth);
     },
+    getBodyStyles() {
+      const styles = {};
+      const unifiedAttrib = this.data?.unified_attrib || {};
+
+      // 从统一属性中获取样式
+      if (unifiedAttrib.font) {
+        styles['font-family'] = unifiedAttrib.font;
+      }
+      if (unifiedAttrib.font_size) {
+        styles['font-size'] = unifiedAttrib.font_size;
+      }
+      if (unifiedAttrib.text_color) {
+        styles['color'] = unifiedAttrib.text_color;
+      }
+
+      return styles;
+    },
   },
 };
 </script>

+ 7 - 1
src/views/book/courseware/preview/components/input/InputPreview.vue

@@ -28,7 +28,13 @@
       </div>
     </div>
 
-    <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
+    <div></div>
+    <PreviewOperation
+      :is-show-answer="false"
+      @showAnswerAnalysis="showAnswerAnalysis"
+      @judgeCorrect="judgeCorrect"
+      @retry="retry"
+    />
     <AnswerCorrect
       :answer-correct="data?.answer_correct"
       :visible.sync="visibleAnswerCorrect"

+ 1 - 1
src/views/book/courseware/preview/components/judge/JudgePreview.vue

@@ -60,9 +60,9 @@
           </div>
         </li>
       </ul>
+      <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     </div>
 
-    <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     <AnswerCorrect
       :answer-correct="data?.answer_correct"
       :visible.sync="visibleAnswerCorrect"

+ 1 - 1
src/views/book/courseware/preview/components/matching/MatchingPreview.vue

@@ -38,9 +38,9 @@
           </template>
         </li>
       </ul>
+      <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     </div>
 
-    <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     <AnswerCorrect
       :answer-correct="data?.answer_correct"
       :visible.sync="visibleAnswerCorrect"

+ 1 - 0
src/views/book/courseware/preview/components/rich_text/RichTextPreview.vue

@@ -59,6 +59,7 @@ import PreviewMixin from '../common/PreviewMixin';
 import { isEnable } from '@/views/book/courseware/data/common';
 import PinyinText from '@/components/PinyinText.vue';
 import AudioPlay from '../character_base/components/AudioPlay.vue';
+import { getRandomNumber } from '@/utils';
 
 export default {
   name: 'RichTextPreview',

+ 1 - 1
src/views/book/courseware/preview/components/voice_matrix/VoiceMatrixPreview.vue

@@ -206,9 +206,9 @@
           @playing="playChange"
         />
       </div>
+      <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     </div>
 
-    <PreviewOperation @showAnswerAnalysis="showAnswerAnalysis" @judgeCorrect="judgeCorrect" @retry="retry" />
     <AnswerCorrect
       :answer-correct="data?.answer_correct"
       :visible.sync="visibleAnswerCorrect"