| 
					
				 | 
			
			
				@@ -2,10 +2,14 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <div class="word-card" v-loading="loading"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="word-card-top"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <li class="active"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <li :class="[activeMenu===0?'active':'']" v-if="isNew" @click="activeMenu=0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <label>本文释义</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <span></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <li :class="[activeMenu===1?'active':'']" @click="activeMenu=1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <label>金山词霸</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="btn-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <svg-icon icon-class="arrow-left-line" :class="[phraseActiveIndex===0?'not-allow':'']" v-if="wordList&&wordList.length>0" @click="changeIndex('-')"></svg-icon> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,27 +21,44 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="word-card-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class="word-card-center-box" v-if="data.rate||data.typeC"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <span class="star word-card-rate"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <template v-if="data.rate"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <svg-icon icon-class="star-filled" v-for="(itemS,indexS) in data.rate" :key="indexS" :style="{color:'#FFB224'}"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <span class="wordType" v-if="data.typeCn">{{data.typeCn}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <h3 class="word">{{data.word}}</h3> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class="symbol-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <span class="symbol">{{data.symbol}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <svg-icon v-if="data.hasVoice&&!voiceSrc" icon-class="voice" className="icon-voice" @click="handlePlayVoice(data)"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <img v-if="data.hasVoice&&voiceSrc" :src="voiceSrc" class="icon-voice" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <svg-icon v-if="!data.hasVoice" icon-class="voice" className="icon-voice" style="color:rgba(78, 89, 105, 0.3)"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class="para-list"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="para" v-for="(itemP,indexP) in data.paraList" :key="indexP"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <span class="cixing">{{itemP.cixing}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <span class="shiyi">{{itemP.para}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template v-if="activeMenu===0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="word-card-center-box" v-if="data.rate||data.typeC"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span class="star word-card-rate"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <template v-if="data.rate"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <svg-icon icon-class="star-filled" v-for="(itemS,indexS) in data.rate" :key="indexS" :style="{color:'#FFB224'}"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span class="wordType" v-if="data.typeCn">{{data.typeCn}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <h3 class="word">{{data.word}}</h3> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="symbol-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span class="symbol">{{data.symbol}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <svg-icon v-if="data.hasVoice&&!voiceSrc" icon-class="voice" className="icon-voice" @click="handlePlayVoice(data)"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <img v-if="data.hasVoice&&voiceSrc" :src="voiceSrc" class="icon-voice" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <svg-icon v-if="!data.hasVoice" icon-class="voice" className="icon-voice" style="color:rgba(78, 89, 105, 0.3)"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="para-list"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="para" v-for="(itemP,indexP) in data.paraList" :key="indexP"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <span class="cixing">{{itemP.cixing}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <span class="shiyi">{{itemP.para}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template v-else> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <h3 class="word">{{searchWordinfo.word}}</h3> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="symbol-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span class="symbol">{{searchWordinfo.symbol}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <svg-icon v-if="searchWordinfo.hasVoice&&!voiceSrc" icon-class="voice" className="icon-voice" @click="handlePlayVoice(searchWordinfo)"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <img v-if="searchWordinfo.hasVoice&&voiceSrc" :src="voiceSrc" class="icon-voice" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <svg-icon v-if="!searchWordinfo.hasVoice" icon-class="voice" className="icon-voice" style="color:rgba(78, 89, 105, 0.3)"></svg-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="para-list"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="para" v-for="(itemP,indexP) in searchWordinfo.paraList" :key="indexP"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <span class="cixing">{{itemP.part}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <span class="shiyi">{{itemP.means.join(';')}}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-divider content-position="left">例句</el-divider> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="number-list" v-if="sentKwicData"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div class="number-item" :class="[activeIndex===0?'active':'']" @click="handleLookStore(0)"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,7 +164,15 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       sentKwicData: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       allList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       phraseActiveIndex: this.activeObjIndex, //JSON.parse(JSON.stringify(this.activeObjIndex)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data: JSON.parse(JSON.stringify(this.dataObj)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      data: JSON.parse(JSON.stringify(this.dataObj)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isNew: this.dataObj.isNew, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      activeMenu: this.dataObj.isNew?0:1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      searchWordinfo: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        word: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        symbol: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        paraList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        hasVoice: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   //计算属性 类似于data概念 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,7 +191,9 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async handlePlayVoice(item) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let _this = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let url = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if(item.originalObj.word_explain.ph_mp3_id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(item.ph_file_url){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        url = item.ph_file_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else if(item.originalObj.word_explain.ph_mp3_id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         await getLogin('/FileServer/GetFileInfo', {file_id:item.originalObj.word_explain.ph_mp3_id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         .then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(res.status===1){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -173,6 +204,7 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         url = item.originalObj.word_explain.ph_file_url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        debugger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //   if (!this.audio.paused) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -198,7 +230,22 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         .then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(res.status===1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.searchWordinfo.word = this.data.word 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let list = res.data.dict_info?res.data.dict_info:[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for(let i = 0; i < list.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(list[i].word_name === this.searchWordinfo.word){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(list[i].symbols&&list[i].symbols.length>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            this.searchWordinfo.symbol = '/' + (list[i].symbols[0].ph_am || list[i].symbols[0].ph_en || list[i].symbols[0].ph_other) + '/' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if(list[i].symbols[0].ph_am_mp3||list[i].symbols[0].ph_en_mp3||list[i].symbols[0].ph_tts_mp3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                this.searchWordinfo.ph_file_url = list[i].symbols[0].ph_am_mp3||list[i].symbols[0].ph_en_mp3||list[i].symbols[0].ph_tts_mp3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            this.searchWordinfo.paraList = list[i].symbols[0].parts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(this.searchWordinfo.ph_file_url){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.searchWordinfo.hasVoice = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         .catch(() => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -249,7 +296,7 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 word: item.word, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 pinyin: item.symbol, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 explain: JSON.stringify(item.paraList), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                is_new: "true", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                is_new: this.isNew, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 audio_file_id: item.word_explain&&item.word_explain.ph_mp3_id?item.word_explain.ph_mp3_id:'', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 audio_file_url: item.word_explain&&item.word_explain.ph_file_url?item.word_explain.ph_file_url:'', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 article_id: this.$route.query.id, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -363,6 +410,36 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ul{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            padding: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            margin: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            li{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                color:#929CA8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                font-size: 16px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                line-height: 24px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                margin-right: 24px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                label{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    font-weight: 400; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                span{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   width: 15px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   height: 2px;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   display: block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   margin: 2px auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                &.active{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    color: #3459D2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    label{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        font-weight: 600; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    span{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        background: #3459D2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     &-center{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         padding-top: 24px; 
			 |