Jelajahi Sumber

课文多语言不显示空行

natasha 1 Minggu lalu
induk
melakukan
f25bf31a4a

+ 2 - 1
src/views/book/courseware/preview/common/SoundRecord.vue

@@ -519,7 +519,8 @@ export default {
     width: 24px;
     height: 24px;
     margin-left: 8px;
-    color: #000;
+    color: rgba(0, 0, 0, 30%);
+    cursor: pointer;
 
     // background: url('@/assets/voice_matrix/luyin-delete.png') center no-repeat;
     // background-size: 100%;

+ 17 - 10
src/views/book/courseware/preview/components/article/NormalModelChs.vue

@@ -1106,19 +1106,26 @@
         </div>
       </template>
     </template>
-    <div v-for="(items, indexs) in curQue.detail" :key="indexs" class="multilingual">
+    <template v-for="(items, indexs) in curQue.detail">
       <div
-        v-if="curQue.property.multilingual_position === 'all'"
-        class="multilingual-para"
-        :class="[items.isTitle ? 'multilingual-para-center' : '']"
+        v-if="
+          curQue.property.multilingual_position === 'all' &&
+          items.multilingualTextList &&
+          items.multilingualTextList[multilingual] &&
+          items.multilingualTextList[multilingual].length > 0
+        "
+        :key="indexs"
+        class="multilingual"
       >
-        {{
-          items.multilingualTextList && items.multilingualTextList[multilingual]
-            ? items.multilingualTextList[multilingual].join(' ')
-            : ''
-        }}
+        <div class="multilingual-para" :class="[items.isTitle ? 'multilingual-para-center' : '']">
+          {{
+            items.multilingualTextList && items.multilingualTextList[multilingual]
+              ? items.multilingualTextList[multilingual].join(' ')
+              : ''
+          }}
+        </div>
       </div>
-    </div>
+    </template>
     <div
       v-if="
         ((curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].url) ||

+ 18 - 11
src/views/book/courseware/preview/components/article/PhraseModelChs.vue

@@ -731,19 +731,26 @@
         </div>
       </template>
     </template>
-    <div v-for="(items, indexs) in curQue.detail" :key="indexs" class="multilingual">
+    <template v-for="(items, indexs) in curQue.detail">
       <div
-        v-if="curQue.property.multilingual_position === 'all'"
-        class="multilingual-para"
-        :class="[items.isTitle ? 'multilingual-para-center' : '']"
+        v-if="
+          curQue.property.multilingual_position === 'all' &&
+          items.multilingualTextList &&
+          items.multilingualTextList[multilingual] &&
+          items.multilingualTextList[multilingual].length > 0
+        "
+        :key="indexs"
+        class="multilingual"
       >
-        {{
-          items.multilingualTextList && items.multilingualTextList[multilingual]
-            ? items.multilingualTextList[multilingual].join(' ')
-            : ''
-        }}
+        <div class="multilingual-para" :class="[items.isTitle ? 'multilingual-para-center' : '']">
+          {{
+            items.multilingualTextList && items.multilingualTextList[multilingual]
+              ? items.multilingualTextList[multilingual].join(' ')
+              : ''
+          }}
+        </div>
       </div>
-    </div>
+    </template>
     <div
       v-if="
         ((curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].url) ||
@@ -1342,7 +1349,7 @@ export default {
       if (answer) {
         let writeModel = this.curQue.Bookanswer.writeModel;
         let hz = answer.hz;
-        if (writeModel.hasOwn(hz)) {
+        if (writeModel.hasOwnProperty(hz)) {
           writeModel[hz].push(answer);
         } else {
           writeModel[hz] = [answer];

+ 17 - 10
src/views/book/courseware/preview/components/article/Practicechs.vue

@@ -515,19 +515,26 @@
         </div> -->
       </div>
     </template>
-    <div v-for="(items, indexs) in curQue.detail" :key="indexs" class="multilingual">
+    <template v-for="(items, indexs) in curQue.detail">
       <div
-        v-if="curQue.property.multilingual_position === 'all'"
-        class="multilingual-para"
-        :class="[items.isTitle ? 'multilingual-para-center' : '']"
+        v-if="
+          curQue.property.multilingual_position === 'all' &&
+          items.multilingualTextList &&
+          items.multilingualTextList[multilingual] &&
+          items.multilingualTextList[multilingual].length > 0
+        "
+        :key="indexs"
+        class="multilingual"
       >
-        {{
-          items.multilingualTextList && items.multilingualTextList[multilingual]
-            ? items.multilingualTextList[multilingual].join(' ')
-            : ''
-        }}
+        <div class="multilingual-para" :class="[items.isTitle ? 'multilingual-para-center' : '']">
+          {{
+            items.multilingualTextList && items.multilingualTextList[multilingual]
+              ? items.multilingualTextList[multilingual].join(' ')
+              : ''
+          }}
+        </div>
       </div>
-    </div>
+    </template>
     <div
       v-if="
         ((curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].url) ||

+ 18 - 11
src/views/book/courseware/preview/components/article/WordModelChs.vue

@@ -727,19 +727,26 @@
         </div>
       </template>
     </template>
-    <div v-for="(items, indexs) in curQue.detail" :key="indexs" class="multilingual">
+    <template v-for="(items, indexs) in curQue.detail">
       <div
-        v-if="curQue.property.multilingual_position === 'all'"
-        class="multilingual-para"
-        :class="[items.isTitle ? 'multilingual-para-center' : '']"
+        v-if="
+          curQue.property.multilingual_position === 'all' &&
+          items.multilingualTextList &&
+          items.multilingualTextList[multilingual] &&
+          items.multilingualTextList[multilingual].length > 0
+        "
+        :key="indexs"
+        class="multilingual"
       >
-        {{
-          items.multilingualTextList && items.multilingualTextList[multilingual]
-            ? items.multilingualTextList[multilingual].join(' ')
-            : ''
-        }}
+        <div class="multilingual-para" :class="[items.isTitle ? 'multilingual-para-center' : '']">
+          {{
+            items.multilingualTextList && items.multilingualTextList[multilingual]
+              ? items.multilingualTextList[multilingual].join(' ')
+              : ''
+          }}
+        </div>
       </div>
-    </div>
+    </template>
     <div
       v-if="
         ((curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].url) ||
@@ -1215,7 +1222,7 @@ export default {
       if (answer) {
         let writeModel = this.curQue.Bookanswer.writeModel;
         let hz = answer.hz;
-        if (writeModel.hasOwn(hz)) {
+        if (writeModel.hasOwnProperty(hz)) {
           writeModel[hz].push(answer);
         } else {
           writeModel[hz] = [answer];

+ 28 - 16
src/views/book/courseware/preview/components/article/index.vue

@@ -77,8 +77,8 @@
                     ? data.unified_attrib.topic_color
                     : '',
               }"
-              ><svg-icon icon-class="icon-article-ci" size="24" />本课生词</a
-            >
+              ><svg-icon icon-class="icon-article-ci" size="24"
+            /></a>
             <a
               v-if="data.property.is_enable_read === 'true'"
               @click="handleSwitchChange('showPhrases', 'showWord', 'showPractice')"
@@ -88,8 +88,8 @@
                     ? data.unified_attrib.topic_color
                     : '',
               }"
-              ><svg-icon icon-class="icon-article-practice" size="24" />语音练习</a
-            >
+              ><svg-icon icon-class="icon-article-practice" size="24"
+            /></a>
             <a
               v-if="data.property.is_enable_word === 'true'"
               @click="handleSwitchChange('showPhrases', 'showPractice', 'showWord')"
@@ -99,8 +99,8 @@
                     ? data.unified_attrib.topic_color
                     : '',
               }"
-              ><svg-icon icon-class="icon-article-phrase" size="24" />取词</a
-            >
+              ><svg-icon icon-class="icon-article-phrase" size="24"
+            /></a>
           </div>
           <!-- <div class="setting-fontsize">
         <a @click="handleFontsize('-')"
@@ -209,13 +209,19 @@
           />
         </div>
       </div>
-      <template v-if="data.new_word_list.new_word_list.length > 0">
+      <template
+        v-if="data.new_word_list && data.new_word_list.new_word_list && data.new_word_list.new_word_list.length > 0"
+      >
         <NewWordPreview :new-data="data.new_word_list" />
       </template>
-      <template v-if="data.other_word_list.new_word_list.length > 0">
+      <template
+        v-if="
+          data.other_word_list && data.other_word_list.new_word_list && data.other_word_list.new_word_list.length > 0
+        "
+      >
         <NewWordPreview :new-data="data.other_word_list" />
       </template>
-      <template v-if="data.notes_list.option.length > 0">
+      <template v-if="data.notes_list && data.notes_list.option && data.notes_list.option.length > 0">
         <NotesPreview :notes-data="data.notes_list" />
       </template>
     </div>
@@ -299,10 +305,10 @@ export default {
       handler(val) {
         if (val) {
           this.data.multilingual.forEach((item) => {
-            let trans_arr = item.translation.split('\n');
+            let trans_arr = item.translation ? item.translation.split('\n') : [];
             this.data.detail.forEach((items) => {
               let items_trans_arr = [];
-              if (!items.hasOwn('multilingualTextList')) {
+              if (!items.hasOwnProperty('multilingualTextList')) {
                 this.$set(items, 'multilingualTextList', {});
               }
               if (items.para) {
@@ -479,10 +485,10 @@ export default {
 
       if (this.showLang) {
         this.data.multilingual.forEach((item) => {
-          let trans_arr = item.translation.split('\n');
+          let trans_arr = item.translation ? item.translation.split('\n') : [];
           this.data.detail.forEach((items) => {
             let items_trans_arr = [];
-            if (!items.hasOwn('multilingualTextList')) {
+            if (!items.hasOwnProperty('multilingualTextList')) {
               this.$set(items, 'multilingualTextList', {});
             }
             if (items.para) {
@@ -500,9 +506,15 @@ export default {
       this.NNPENewWordList = (
         this.data.new_word_list_other_component_input ? this.data.new_word_list_other_component_input : []
       )
-        .concat(this.data.new_word_list.new_word_list)
-        .concat(this.data.other_word_list.new_word_list);
-      this.NNPEAnnotationList = this.data.notes_list.option;
+        .concat(
+          this.data.new_word_list && this.data.new_word_list.new_word_list ? this.data.new_word_list.new_word_list : [],
+        )
+        .concat(
+          this.data.other_word_list && this.data.other_word_list.new_word_list
+            ? this.data.other_word_list.new_word_list
+            : [],
+        );
+      this.NNPEAnnotationList = this.data.notes_list && this.data.notes_list.option ? this.data.notes_list.option : [];
       let resArr = [];
       let sentArrTotal = [];
       let timeArr = [];

+ 6 - 2
src/views/book/courseware/preview/components/dialogue_article/NormalModelChs.vue

@@ -591,10 +591,14 @@
           <div :class="['empty-left', isHasRemark ? 'hasRemark' : '']"></div>
           <div class="empty-right"></div>
         </div>
-
         <template v-for="(items, indexs) in curQue.detail">
           <div
-            v-if="curQue.property.multilingual_position === 'all' && items.multilingualTextList[multilingual]"
+            v-if="
+              curQue.property.multilingual_position === 'all' &&
+              items.multilingualTextList &&
+              items.multilingualTextList[multilingual] &&
+              items.multilingualTextList[multilingual].length > 0
+            "
             :key="indexs"
             class="multilingual"
           >

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

@@ -411,7 +411,12 @@
         </div>
         <template v-for="(items, indexs) in curQue.detail">
           <div
-            v-if="curQue.property.multilingual_position === 'all' && items.multilingualTextList[multilingual]"
+            v-if="
+              curQue.property.multilingual_position === 'all' &&
+              items.multilingualTextList &&
+              items.multilingualTextList[multilingual] &&
+              items.multilingualTextList[multilingual].length > 0
+            "
             :key="indexs"
             class="multilingual"
           >
@@ -1052,7 +1057,7 @@ export default {
       if (answer) {
         let writeModel = this.curQue.Bookanswer.writeModel;
         let hz = answer.hz;
-        if (writeModel.hasOwn(hz)) {
+        if (writeModel.hasOwnProperty(hz)) {
           writeModel[hz].push(answer);
         } else {
           writeModel[hz] = [answer];

+ 6 - 1
src/views/book/courseware/preview/components/dialogue_article/Practicechs.vue

@@ -648,7 +648,12 @@
     </template>
     <template v-for="(items, indexs) in curQue.detail">
       <div
-        v-if="curQue.property.multilingual_position === 'all' && items.multilingualTextList[multilingual]"
+        v-if="
+          curQue.property.multilingual_position === 'all' &&
+          items.multilingualTextList &&
+          items.multilingualTextList[multilingual] &&
+          items.multilingualTextList[multilingual].length > 0
+        "
         :key="indexs"
         class="multilingual"
       >

+ 7 - 2
src/views/book/courseware/preview/components/dialogue_article/WordModelChs.vue

@@ -389,7 +389,12 @@
         </div>
         <template v-for="(items, indexs) in curQue.detail">
           <div
-            v-if="curQue.property.multilingual_position === 'all' && items.multilingualTextList[multilingual]"
+            v-if="
+              curQue.property.multilingual_position === 'all' &&
+              items.multilingualTextList &&
+              items.multilingualTextList[multilingual] &&
+              items.multilingualTextList[multilingual].length > 0
+            "
             :key="indexs"
             class="multilingual"
           >
@@ -947,7 +952,7 @@ export default {
       if (answer) {
         let writeModel = this.curQue.Bookanswer.writeModel;
         let hz = answer.hz;
-        if (writeModel.hasOwn(hz)) {
+        if (writeModel.hasOwnProperty(hz)) {
           writeModel[hz].push(answer);
         } else {
           writeModel[hz] = [answer];

+ 28 - 16
src/views/book/courseware/preview/components/dialogue_article/index.vue

@@ -79,8 +79,8 @@
                     ? data.unified_attrib.topic_color
                     : '',
               }"
-              ><svg-icon icon-class="icon-article-ci" size="24" />本课生词</a
-            >
+              ><svg-icon icon-class="icon-article-ci" size="24"
+            /></a>
             <a
               v-if="data.property.is_enable_read === 'true'"
               @click="handleSwitchChange('showPhrases', 'showWord', 'showPractice')"
@@ -90,8 +90,8 @@
                     ? data.unified_attrib.topic_color
                     : '',
               }"
-              ><svg-icon icon-class="icon-article-practice" size="24" />语音练习</a
-            >
+              ><svg-icon icon-class="icon-article-practice" size="24"
+            /></a>
             <a
               v-if="data.property.is_enable_word === 'true'"
               @click="handleSwitchChange('showPhrases', 'showPractice', 'showWord')"
@@ -101,8 +101,8 @@
                     ? data.unified_attrib.topic_color
                     : '',
               }"
-              ><svg-icon icon-class="icon-article-phrase" size="24" />取词</a
-            >
+              ><svg-icon icon-class="icon-article-phrase" size="24"
+            /></a>
           </div>
         </div>
         <div ref="ArticleViewbody" class="ArticleView-body">
@@ -194,13 +194,19 @@
           />
         </div>
       </div>
-      <template v-if="data.new_word_list.new_word_list.length > 0">
+      <template
+        v-if="data.new_word_list && data.new_word_list.new_word_list && data.new_word_list.new_word_list.length > 0"
+      >
         <NewWordPreview :new-data="data.new_word_list" />
       </template>
-      <template v-if="data.other_word_list.new_word_list.length > 0">
+      <template
+        v-if="
+          data.other_word_list && data.other_word_list.new_word_list && data.other_word_list.new_word_list.length > 0
+        "
+      >
         <NewWordPreview :new-data="data.other_word_list" />
       </template>
-      <template v-if="data.notes_list.option.length > 0">
+      <template v-if="data.notes_list && data.notes_list.option && data.notes_list.option.length > 0">
         <NotesPreview :notes-data="data.notes_list" />
       </template>
     </div>
@@ -286,10 +292,10 @@ export default {
       handler(val) {
         if (val) {
           this.data.multilingual.forEach((item) => {
-            let trans_arr = item.translation.split('\n');
+            let trans_arr = item.translation ? item.translation.split('\n') : [];
             this.data.detail.forEach((items) => {
               let items_trans_arr = [];
-              if (!items.hasOwn('multilingualTextList')) {
+              if (items && !items.hasOwnProperty('multilingualTextList')) {
                 this.$set(items, 'multilingualTextList', {});
               }
               if (items.para) {
@@ -465,10 +471,10 @@ export default {
       }
       if (this.showLang) {
         this.data.multilingual.forEach((item) => {
-          let trans_arr = item.translation.split('\n');
+          let trans_arr = item.translation ? item.translation.split('\n') : [];
           this.data.detail.forEach((items) => {
             let items_trans_arr = [];
-            if (!items.hasOwn('multilingualTextList')) {
+            if (!items.hasOwnProperty('multilingualTextList')) {
               this.$set(items, 'multilingualTextList', {});
             }
             if (items.para) {
@@ -488,9 +494,15 @@ export default {
       this.NNPENewWordList = (
         this.data.new_word_list_other_component_input ? this.data.new_word_list_other_component_input : []
       )
-        .concat(this.data.new_word_list.new_word_list)
-        .concat(this.data.other_word_list.new_word_list);
-      this.NNPEAnnotationList = this.data.notes_list.option;
+        .concat(
+          this.data.new_word_list && this.data.new_word_list.new_word_list ? this.data.new_word_list.new_word_list : [],
+        )
+        .concat(
+          this.data.other_word_list && this.data.other_word_list.new_word_list
+            ? this.data.other_word_list.new_word_list
+            : [],
+        );
+      this.NNPEAnnotationList = this.data.notes_list && this.data.notes_list.option ? this.data.notes_list.option : [];
       let resArr = [];
       let sentArrTotal = [];
       let timeArr = [];