dsy 2 месяцев назад
Родитель
Сommit
009bef8859

+ 0 - 8
src/views/book/courseware/preview/components/article/NormalModelChs.vue

@@ -187,7 +187,6 @@
                                   v-for="(wItem, wIndex) in pItem.leg"
                                   :key="'ci' + wIndex + pIndex + index"
                                   :class="[
-                                    isPlaying &&
                                     pItem.chstimeList &&
                                     pItem.chstimeList[wIndex] &&
                                     curTime >= pItem.chstimeList[wIndex].wordBg &&
@@ -197,7 +196,6 @@
                                   ]"
                                   :style="{
                                     color:
-                                      isPlaying &&
                                       pItem.chstimeList &&
                                       pItem.chstimeList[wIndex] &&
                                       curTime >= pItem.chstimeList[wIndex].wordBg &&
@@ -293,7 +291,6 @@
                               class="NNPE-chs"
                               style="text-align: left"
                               :class="[
-                                isPlaying &&
                                 item.timeList &&
                                 item.timeList[pItem.sentIndex] &&
                                 curTime >= item.timeList[pItem.sentIndex].bg &&
@@ -322,7 +319,6 @@
                                   attrib && attrib.font_size ? attrib.font_size.replace('pt', '') * 1.4 + 'pt' : '28px',
                                 width: item.wordsList[pIndex + 1].chs.trim() === '' ? '6px' : '',
                                 backgroundColor:
-                                  isPlaying &&
                                   item.timeList &&
                                   item.timeList[pItem.sentIndex] &&
                                   curTime >= item.timeList[pItem.sentIndex].bg &&
@@ -437,7 +433,6 @@
                               class="NNPE-chs"
                               style="text-align: left"
                               :class="[
-                                isPlaying &&
                                 item.timeList &&
                                 item.timeList[pItem.sentIndex] &&
                                 curTime >= item.timeList[pItem.sentIndex].bg &&
@@ -466,7 +461,6 @@
                                   attrib && attrib.font_size ? attrib.font_size.replace('pt', '') * 1.4 + 'pt' : '28px',
                                 width: item.wordsList[pIndex + 2].chs.trim() === '' ? '6px' : '',
                                 backgroundColor:
-                                  isPlaying &&
                                   item.timeList &&
                                   item.timeList[pItem.sentIndex] &&
                                   curTime >= item.timeList[pItem.sentIndex].bg &&
@@ -596,7 +590,6 @@
                               <span
                                 :key="'ci' + wIndex + pIndex + index"
                                 :class="[
-                                  isPlaying &&
                                   pItem.chstimeList &&
                                   pItem.chstimeList[wIndex] &&
                                   curTime >= pItem.chstimeList[wIndex].wordBg &&
@@ -620,7 +613,6 @@
                                       : '28px',
                                   width: pItem.chs[wIndex].trim() === '' ? '6px' : '',
                                   color:
-                                    isPlaying &&
                                     pItem.chstimeList &&
                                     pItem.chstimeList[wIndex] &&
                                     curTime >= pItem.chstimeList[wIndex].wordBg &&

+ 8 - 2
src/views/book/courseware/preview/components/character/CharacterPreview.vue

@@ -95,7 +95,10 @@
                       indexs != 0
                         ? 'NoborderRadius'
                         : '',
-                      !item.is_margin && item.content_list.length > 1 && indexs != item.content_list.length - 1
+                      !item.is_margin &&
+                      item.content_list.length > 1 &&
+                      indexs != item.content_list.length - 1 &&
+                      item.content_list[indexs + 1].type !== 'lian'
                         ? 'NoborderRight'
                         : '',
                     ]"
@@ -125,7 +128,10 @@
                       indexs != 0
                         ? 'NoborderRadius'
                         : '',
-                      !item.is_margin && item.content_list.length > 1 && indexs != item.content_list.length - 1
+                      !item.is_margin &&
+                      item.content_list.length > 1 &&
+                      indexs != item.content_list.length - 1 &&
+                      item.content_list[indexs + 1].type !== 'lian'
                         ? 'NoborderRight'
                         : '',
                     ]"

+ 4 - 2
src/views/book/courseware/preview/components/dialogue_article/PhraseModelChs.vue

@@ -236,7 +236,8 @@
                                       ? attrib.font_size.replace('pt', '') * 1.4 + 'pt'
                                       : '28px',
                                   color:
-                                    newWordList.indexOf(pItem.chs) > -1 || pItem.words
+                                    newWordList.indexOf(item.wordsList[pIndex + 1].chs) > -1 ||
+                                    item.wordsList[pIndex + 1].words
                                       ? attrib
                                         ? attrib.topic_color
                                         : item.wordsList[pIndex + 1].config.color
@@ -337,7 +338,8 @@
                                       ? attrib.font_size.replace('pt', '') * 1.4 + 'pt'
                                       : '28px',
                                   color:
-                                    newWordList.indexOf(pItem.chs) > -1 || pItem.words
+                                    newWordList.indexOf(item.wordsList[pIndex + 2].chs) > -1 ||
+                                    item.wordsList[pIndex + 2].words
                                       ? attrib
                                         ? attrib.topic_color
                                         : item.wordsList[pIndex + 2].config.color

+ 2 - 1
src/views/book/courseware/preview/components/image_text/ImageTextPreview.vue

@@ -104,6 +104,7 @@
         :font-size="fontSize"
         :sentence-theme="sentenceTheme"
         :data="data.word_time"
+        :text-list="data.text_list"
         :active-index="sentIndex"
         :mp3-url="mp3_url"
         :multilingual-text-list="showLang && multilingualTextList[getLang()] ? multilingualTextList[getLang()] : []"
@@ -252,7 +253,7 @@ export default {
     },
     // 切换画刊里面的卡片
     handleChangePosition(index) {
-      if (this.$refs.audioLine.audio.playing) {
+      if (this.$refs.audioLine && this.$refs.audioLine.audio.playing) {
         this.$refs.audioLine.PlayAudio();
       }
       this.sentIndex = index;

+ 28 - 6
src/views/book/courseware/preview/components/image_text/components/MagazineSentence.vue

@@ -1,13 +1,14 @@
 <template>
   <div class="sentence-box" :style="{ background: themeList[sentenceTheme].bg }">
     <div class="sentence-top">
-      <a class="play-btn" :style="{ background: themeList[sentenceTheme].playBtnBg }" @click="handlePlay">
+      <a class="play-btn" :style="{ background: themeList[sentenceTheme].playBtnBg }" @click="handlePlay" v-if="mp3Url">
         <svg-icon v-if="isPlay" icon-class="pause" size="24" />
         <svg-icon v-else icon-class="play" size="24" />
       </a>
+      <a v-else></a>
       <div class="sentence-right" :style="{ color: themeList[sentenceTheme].rightBtnColor }">
         <a class="btn" @click="handlePage('-')"><svg-icon icon-class="arrow-left-s-line" size="24" /></a>
-        <span>{{ sentenceActive + 1 + '/' + data.length }}</span>
+        <span>{{ sentenceActive + 1 + '/' + (data.length ? data.length : textList.length) }}</span>
         <a class="btn" @click="handlePage('+')"><svg-icon icon-class="arrow-right-s-line" size="24" /></a>
         <i class="el-icon-close" @click="closeWord"></i>
       </div>
@@ -210,10 +211,21 @@
             </template>
           </div>
         </template>
-        <div v-if="multilingualTextList[sentenceActive]" class="NPC-notes-note">
-          {{ multilingualTextList[sentenceActive] }}
-        </div>
       </template>
+      <template v-else-if="textList && textList[sentenceActive] && textList[sentenceActive].text">
+        <span
+          :class="['content-item']"
+          :style="{
+            color: themeList[sentenceTheme].sentenceColor,
+            fontSize: fontSize + 'px',
+            lineHeight: fontSize + 8 + 'px',
+          }"
+          >{{ textList[sentenceActive].text }}</span
+        >
+      </template>
+      <div v-if="multilingualTextList[sentenceActive]" class="NPC-notes-note">
+        {{ multilingualTextList[sentenceActive] }}
+      </div>
     </div>
     <div class="sentence-bottom">
       <div class="fontsize-box" :style="{ background: themeList[sentenceTheme].bottomBg }">
@@ -283,7 +295,17 @@
 export default {
   // import引入的组件需要注入到对象中才能使用
   components: {},
-  props: ['fontSize', 'sentenceTheme', 'data', 'activeIndex', 'mp3Url', 'multilingualTextList', 'property', 'attrib'],
+  props: [
+    'fontSize',
+    'sentenceTheme',
+    'data',
+    'activeIndex',
+    'mp3Url',
+    'multilingualTextList',
+    'property',
+    'attrib',
+    'textList',
+  ],
   data() {
     // 这里存放数据
     return {

+ 10 - 2
src/views/book/courseware/preview/components/newWord_template/NewWordTemplatePreview.vue

@@ -149,7 +149,11 @@
                     item.content_list.length > 1 && indexs != item.content_list.length - 1 && indexs != 0
                       ? 'NoborderRadius'
                       : '',
-                    item.content_list.length > 1 && indexs != item.content_list.length - 1 ? 'NoborderRight' : '',
+                    item.content_list.length > 1 &&
+                    indexs != item.content_list.length - 1 &&
+                    item.content_list[indexs + 1].type !== 'lian'
+                      ? 'NoborderRight'
+                      : '',
                   ]"
                   bg-type="tian"
                   :style="{
@@ -352,7 +356,11 @@
                       item.content_list.length > 1 && indexs != item.content_list.length - 1 && indexs != 0
                         ? 'NoborderRadius'
                         : '',
-                      item.content_list.length > 1 && indexs != item.content_list.length - 1 ? 'NoborderRight' : '',
+                      item.content_list.length > 1 &&
+                      indexs != item.content_list.length - 1 &&
+                      item.content_list[indexs + 1].type !== 'lian'
+                        ? 'NoborderRight'
+                        : '',
                     ]"
                     :style="{
                       borderColor:

+ 1 - 1
src/views/book/courseware/preview/components/newWord_template/components/Strockplayredline.vue

@@ -185,7 +185,7 @@ export default {
     position: absolute;
     top: -2px;
     right: -2px;
-    z-index: 1;
+    z-index: 2;
 
     // @include font_color("sub_color");
     display: flex;