|  | @@ -1,9 +1,14 @@
 | 
	
		
			
				|  |  |  <!--  -->
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="NNPE-ArticleView" v-if="curQue">
 | 
	
		
			
				|  |  | -    <div class="aduioLine-box">
 | 
	
		
			
				|  |  | +    <div
 | 
	
		
			
				|  |  | +      class="aduioLine-box"
 | 
	
		
			
				|  |  | +      v-if="
 | 
	
		
			
				|  |  | +        curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
 | 
	
		
			
				|  |  | +      "
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  |        <AudioLine
 | 
	
		
			
				|  |  | -        :mp3="curQue.mp3_list[0].url"
 | 
	
		
			
				|  |  | +        :mp3="curQue.mp3_list[0].id"
 | 
	
		
			
				|  |  |          :getCurTime="getCurTime"
 | 
	
		
			
				|  |  |          ref="audioLine"
 | 
	
		
			
				|  |  |        />
 | 
	
	
		
			
				|  | @@ -17,13 +22,19 @@
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  |            <div class="wordsList-box">
 | 
	
		
			
				|  |  |              <img :src="articleImg[index]" v-if="articleImg[0] && index == 0" />
 | 
	
		
			
				|  |  | -            <div>
 | 
	
		
			
				|  |  | +            <div :class="[item.isTitle ? 'NNPE-title' : '']">
 | 
	
		
			
				|  |  |                <div
 | 
	
		
			
				|  |  |                  class="NNPE-words"
 | 
	
		
			
				|  |  |                  v-for="(pItem, pIndex) in item.wordsList"
 | 
	
		
			
				|  |  |                  :key="'wordsList' + pIndex"
 | 
	
		
			
				|  |  |                  :class="[pItem.wordIndex == 0 ? 'textLeft' : 'textCenter']"
 | 
	
		
			
				|  |  | -                @click="handleChangeTime(item.timeList[pItem.sentIndex].bg)"
 | 
	
		
			
				|  |  | +                @click="
 | 
	
		
			
				|  |  | +                  handleChangeTime(
 | 
	
		
			
				|  |  | +                    item.timeList &&
 | 
	
		
			
				|  |  | +                      item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  | +                      item.timeList[pItem.sentIndex].bg
 | 
	
		
			
				|  |  | +                  )
 | 
	
		
			
				|  |  | +                "
 | 
	
		
			
				|  |  |                  @mouseover="handleMouseover(pItem)"
 | 
	
		
			
				|  |  |                  @mouseleave="handleMouseleave"
 | 
	
		
			
				|  |  |                >
 | 
	
	
		
			
				|  | @@ -38,13 +49,19 @@
 | 
	
		
			
				|  |  |                      >
 | 
	
		
			
				|  |  |                        <span class="NNPE-words-box">
 | 
	
		
			
				|  |  |                          <span
 | 
	
		
			
				|  |  | -                          class="NNPE-pinyin"
 | 
	
		
			
				|  |  | -                          :class="[pItem.className ? pItem.className : '']"
 | 
	
		
			
				|  |  | +                          v-if="curQue.pyPosition == 'top'"
 | 
	
		
			
				|  |  | +                          :class="[
 | 
	
		
			
				|  |  | +                            'NNPE-pinyin',
 | 
	
		
			
				|  |  | +                            pItem.className ? pItem.className : '',
 | 
	
		
			
				|  |  | +                            noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
 | 
	
		
			
				|  |  | +                          ]"
 | 
	
		
			
				|  |  |                            >{{ pItem.pinyin }}</span
 | 
	
		
			
				|  |  |                          >
 | 
	
		
			
				|  |  |                          <span
 | 
	
		
			
				|  |  |                            class="NNPE-chs"
 | 
	
		
			
				|  |  |                            :class="[
 | 
	
		
			
				|  |  | +                            item.timeList &&
 | 
	
		
			
				|  |  | +                            item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  |                              curTime >= item.timeList[pItem.sentIndex].bg &&
 | 
	
		
			
				|  |  |                              curTime <= item.timeList[pItem.sentIndex].ed
 | 
	
		
			
				|  |  |                                ? 'active'
 | 
	
	
		
			
				|  | @@ -53,6 +70,8 @@
 | 
	
		
			
				|  |  |                              pItem.sentIndex == sentIndex
 | 
	
		
			
				|  |  |                                ? 'overActive'
 | 
	
		
			
				|  |  |                                : '',
 | 
	
		
			
				|  |  | +                            item.timeList &&
 | 
	
		
			
				|  |  | +                            item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  |                              curTime >=
 | 
	
		
			
				|  |  |                                item.timeList[pItem.sentIndex].wordsResultList[
 | 
	
		
			
				|  |  |                                  pItem.wordIndex
 | 
	
	
		
			
				|  | @@ -63,15 +82,35 @@
 | 
	
		
			
				|  |  |                            ]"
 | 
	
		
			
				|  |  |                            >{{ pItem.chs }}</span
 | 
	
		
			
				|  |  |                          >
 | 
	
		
			
				|  |  | +                        <span
 | 
	
		
			
				|  |  | +                          v-if="curQue.pyPosition == 'bottom'"
 | 
	
		
			
				|  |  | +                          :class="[
 | 
	
		
			
				|  |  | +                            'NNPE-pinyin',
 | 
	
		
			
				|  |  | +                            pItem.className ? pItem.className : '',
 | 
	
		
			
				|  |  | +                            noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
 | 
	
		
			
				|  |  | +                          ]"
 | 
	
		
			
				|  |  | +                          >{{ pItem.pinyin }}</span
 | 
	
		
			
				|  |  | +                        >
 | 
	
		
			
				|  |  |                        </span>
 | 
	
		
			
				|  |  |                        <span class="NNPE-words-box">
 | 
	
		
			
				|  |  | -                        <span class="NNPE-pinyin" style="text-align: left">{{
 | 
	
		
			
				|  |  | -                          item.wordsList[pIndex + 1].pinyin
 | 
	
		
			
				|  |  | -                        }}</span>
 | 
	
		
			
				|  |  | +                        <span
 | 
	
		
			
				|  |  | +                          v-if="curQue.pyPosition == 'top'"
 | 
	
		
			
				|  |  | +                          :class="[
 | 
	
		
			
				|  |  | +                            'NNPE-pinyin',
 | 
	
		
			
				|  |  | +                            noFont.indexOf(item.wordsList[pIndex + 1].pinyin) >
 | 
	
		
			
				|  |  | +                            -1
 | 
	
		
			
				|  |  | +                              ? 'noFont'
 | 
	
		
			
				|  |  | +                              : '',
 | 
	
		
			
				|  |  | +                          ]"
 | 
	
		
			
				|  |  | +                          style="text-align: left"
 | 
	
		
			
				|  |  | +                          >{{ item.wordsList[pIndex + 1].pinyin }}</span
 | 
	
		
			
				|  |  | +                        >
 | 
	
		
			
				|  |  |                          <span
 | 
	
		
			
				|  |  |                            class="NNPE-chs"
 | 
	
		
			
				|  |  |                            style="text-align: left"
 | 
	
		
			
				|  |  |                            :class="[
 | 
	
		
			
				|  |  | +                            item.timeList &&
 | 
	
		
			
				|  |  | +                            item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  |                              curTime >= item.timeList[pItem.sentIndex].bg &&
 | 
	
		
			
				|  |  |                              curTime <= item.timeList[pItem.sentIndex].ed
 | 
	
		
			
				|  |  |                                ? 'active'
 | 
	
	
		
			
				|  | @@ -80,30 +119,47 @@
 | 
	
		
			
				|  |  |                              pItem.sentIndex == sentIndex
 | 
	
		
			
				|  |  |                                ? 'overActive'
 | 
	
		
			
				|  |  |                                : '',
 | 
	
		
			
				|  |  | -                            curTime >=
 | 
	
		
			
				|  |  | -                              item.timeList[pItem.sentIndex].wordsResultList[
 | 
	
		
			
				|  |  | -                                pItem.wordIndex
 | 
	
		
			
				|  |  | -                              ].wordBg &&
 | 
	
		
			
				|  |  | +                            curTime >= item.timeList &&
 | 
	
		
			
				|  |  | +                            item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  | +                            item.timeList[pItem.sentIndex].wordsResultList[
 | 
	
		
			
				|  |  | +                              pItem.wordIndex
 | 
	
		
			
				|  |  | +                            ].wordBg &&
 | 
	
		
			
				|  |  |                              curTime <= item.timeList[pItem.sentIndex].ed
 | 
	
		
			
				|  |  |                                ? 'wordActive'
 | 
	
		
			
				|  |  |                                : '',
 | 
	
		
			
				|  |  |                            ]"
 | 
	
		
			
				|  |  |                            >{{ item.wordsList[pIndex + 1].chs }}</span
 | 
	
		
			
				|  |  |                          >
 | 
	
		
			
				|  |  | +                        <span
 | 
	
		
			
				|  |  | +                          v-if="curQue.pyPosition == 'bottom'"
 | 
	
		
			
				|  |  | +                          :class="[
 | 
	
		
			
				|  |  | +                            'NNPE-pinyin',
 | 
	
		
			
				|  |  | +                            noFont.indexOf(item.wordsList[pIndex + 1].pinyin) >
 | 
	
		
			
				|  |  | +                            -1
 | 
	
		
			
				|  |  | +                              ? 'noFont'
 | 
	
		
			
				|  |  | +                              : '',
 | 
	
		
			
				|  |  | +                          ]"
 | 
	
		
			
				|  |  | +                          style="text-align: left"
 | 
	
		
			
				|  |  | +                          >{{ item.wordsList[pIndex + 1].pinyin }}</span
 | 
	
		
			
				|  |  | +                        >
 | 
	
		
			
				|  |  |                        </span>
 | 
	
		
			
				|  |  |                      </template>
 | 
	
		
			
				|  |  |                      <template v-else>
 | 
	
		
			
				|  |  |                        <span
 | 
	
		
			
				|  |  | +                        v-if="curQue.pyPosition == 'top'"
 | 
	
		
			
				|  |  |                          class="NNPE-pinyin"
 | 
	
		
			
				|  |  |                          :class="[
 | 
	
		
			
				|  |  |                            pItem.padding ? 'padding' : '',
 | 
	
		
			
				|  |  |                            pItem.className ? pItem.className : '',
 | 
	
		
			
				|  |  | +                          noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
 | 
	
		
			
				|  |  |                          ]"
 | 
	
		
			
				|  |  |                          >{{ pItem.pinyin }}</span
 | 
	
		
			
				|  |  |                        >
 | 
	
		
			
				|  |  |                        <span
 | 
	
		
			
				|  |  |                          class="NNPE-chs"
 | 
	
		
			
				|  |  |                          :class="[
 | 
	
		
			
				|  |  | +                          item.timeList &&
 | 
	
		
			
				|  |  | +                          item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  |                            curTime >= item.timeList[pItem.sentIndex].bg &&
 | 
	
		
			
				|  |  |                            curTime <= item.timeList[pItem.sentIndex].ed
 | 
	
		
			
				|  |  |                              ? 'active'
 | 
	
	
		
			
				|  | @@ -113,16 +169,27 @@
 | 
	
		
			
				|  |  |                            pItem.sentIndex == sentIndex
 | 
	
		
			
				|  |  |                              ? 'overActive'
 | 
	
		
			
				|  |  |                              : '',
 | 
	
		
			
				|  |  | -                          curTime >=
 | 
	
		
			
				|  |  | -                            item.timeList[pItem.sentIndex].wordsResultList[
 | 
	
		
			
				|  |  | -                              pItem.wordIndex
 | 
	
		
			
				|  |  | -                            ].wordBg &&
 | 
	
		
			
				|  |  | +                          curTime >= item.timeList &&
 | 
	
		
			
				|  |  | +                          item.timeList[pItem.sentIndex] &&
 | 
	
		
			
				|  |  | +                          item.timeList[pItem.sentIndex].wordsResultList[
 | 
	
		
			
				|  |  | +                            pItem.wordIndex
 | 
	
		
			
				|  |  | +                          ].wordBg &&
 | 
	
		
			
				|  |  |                            curTime <= item.timeList[pItem.sentIndex].ed
 | 
	
		
			
				|  |  |                              ? 'wordActive'
 | 
	
		
			
				|  |  |                              : '',
 | 
	
		
			
				|  |  |                          ]"
 | 
	
		
			
				|  |  |                          >{{ pItem.chs }}</span
 | 
	
		
			
				|  |  |                        >
 | 
	
		
			
				|  |  | +                      <span
 | 
	
		
			
				|  |  | +                        v-if="curQue.pyPosition == 'bottom'"
 | 
	
		
			
				|  |  | +                        class="NNPE-pinyin"
 | 
	
		
			
				|  |  | +                        :class="[
 | 
	
		
			
				|  |  | +                          pItem.padding ? 'padding' : '',
 | 
	
		
			
				|  |  | +                          pItem.className ? pItem.className : '',
 | 
	
		
			
				|  |  | +                          noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
 | 
	
		
			
				|  |  | +                        ]"
 | 
	
		
			
				|  |  | +                        >{{ pItem.pinyin }}</span
 | 
	
		
			
				|  |  | +                      >
 | 
	
		
			
				|  |  |                      </template>
 | 
	
		
			
				|  |  |                    </template>
 | 
	
		
			
				|  |  |                  </template>
 | 
	
	
		
			
				|  | @@ -149,7 +216,7 @@ import { timeStrToSen } from "@/utils/index";
 | 
	
		
			
				|  |  |  import AudioLine from "../AudioLine.vue";
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    name: "NormalModelChs",
 | 
	
		
			
				|  |  | -  props: ["curQue"],
 | 
	
		
			
				|  |  | +  props: ["curQue","noFont"],
 | 
	
		
			
				|  |  |    components: {
 | 
	
		
			
				|  |  |      AudioLine,
 | 
	
		
			
				|  |  |    },
 | 
	
	
		
			
				|  | @@ -160,6 +227,7 @@ export default {
 | 
	
		
			
				|  |  |        chsFhList: [",", "。", "“", ":", "》", "《", "?", "!", ";"],
 | 
	
		
			
				|  |  |        enFhList: [",", ".", ";", "?", "!", ":", ">", "<"],
 | 
	
		
			
				|  |  |        newWords: ["鱼", "辩礼义"],
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  |        oldHz: "",
 | 
	
		
			
				|  |  |        hz: "",
 | 
	
		
			
				|  |  |        top: 0,
 | 
	
	
		
			
				|  | @@ -198,7 +266,7 @@ export default {
 | 
	
		
			
				|  |  |          dItem.wordsList.forEach((sItem, sIndex) => {
 | 
	
		
			
				|  |  |            sItem.forEach((wItem, wIndex) => {
 | 
	
		
			
				|  |  |              //this.judgePad(sItem, wItem, wIndex);
 | 
	
		
			
				|  |  | -            this.mergeWordSymbol(sItem, wItem, wIndex);
 | 
	
		
			
				|  |  | +            this.mergeWordSymbol(wItem);
 | 
	
		
			
				|  |  |              let obj = {
 | 
	
		
			
				|  |  |                paraIndex: dIndex, //段落索引
 | 
	
		
			
				|  |  |                sentIndex: sIndex, //在段落中句子索引
 | 
	
	
		
			
				|  | @@ -222,6 +290,7 @@ export default {
 | 
	
		
			
				|  |  |          let paraObj = {
 | 
	
		
			
				|  |  |            wordsList: paraArr,
 | 
	
		
			
				|  |  |            timeList: timeList,
 | 
	
		
			
				|  |  | +          isTitle: dItem.isTitle,
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          resArr.push(paraObj);
 | 
	
		
			
				|  |  |        });
 | 
	
	
		
			
				|  | @@ -237,14 +306,11 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //词和标点合一起
 | 
	
		
			
				|  |  | -    mergeWordSymbol(sItem, wItem, curIndex) {
 | 
	
		
			
				|  |  | -      let leg = sItem.length;
 | 
	
		
			
				|  |  | -      if (curIndex < leg - 1) {
 | 
	
		
			
				|  |  | -        if (this.chsFhList.indexOf(wItem.chs) > -1) {
 | 
	
		
			
				|  |  | -          wItem.isShow = false;
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          wItem.isShow = true;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +    mergeWordSymbol(wItem) {
 | 
	
		
			
				|  |  | +      if (this.chsFhList.indexOf(wItem.chs) > -1) {
 | 
	
		
			
				|  |  | +        wItem.isShow = false;
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        wItem.isShow = true;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //判断是否有padding
 | 
	
	
		
			
				|  | @@ -277,8 +343,10 @@ export default {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //点击播放某个句子
 | 
	
		
			
				|  |  |      handleChangeTime(time) {
 | 
	
		
			
				|  |  | -      this.curTime = time;
 | 
	
		
			
				|  |  | -      this.$refs.audioLine.onTimeupdateTime(time / 1000);
 | 
	
		
			
				|  |  | +      if (time) {
 | 
	
		
			
				|  |  | +        this.curTime = time;
 | 
	
		
			
				|  |  | +        this.$refs.audioLine.onTimeupdateTime(time / 1000);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //经过每个词,高亮句子
 | 
	
		
			
				|  |  |      handleMouseover(pItem) {
 | 
	
	
		
			
				|  | @@ -334,6 +402,9 @@ export default {
 | 
	
		
			
				|  |  |              line-height: 22px;
 | 
	
		
			
				|  |  |              color: #000000;
 | 
	
		
			
				|  |  |              height: 21px;
 | 
	
		
			
				|  |  | +            &.noFont {
 | 
	
		
			
				|  |  | +              font-family: initial;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              &.textLeft {
 | 
	
		
			
				|  |  |                text-align: left;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -398,6 +469,9 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      &.NNPE-detail-title {
 | 
	
		
			
				|  |  | +      .NNPE-title {
 | 
	
		
			
				|  |  | +        margin: 0 auto;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        .wordsList-box {
 | 
	
		
			
				|  |  |          > div {
 | 
	
		
			
				|  |  |            display: flex;
 | 
	
	
		
			
				|  | @@ -426,8 +500,9 @@ export default {
 | 
	
		
			
				|  |  |          overflow: hidden;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        > img {
 | 
	
		
			
				|  |  | -        width: 100%;
 | 
	
		
			
				|  |  | +        max-width: 100%;
 | 
	
		
			
				|  |  |          display: block;
 | 
	
		
			
				|  |  | +        margin: 8px auto;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 |