dsy 2 месяцев назад
Родитель
Сommit
69d1404f0c
56 измененных файлов с 336 добавлено и 352 удалено
  1. 5 5
      src/api/oboc.js
  2. 3 3
      src/components/Remark.vue
  3. 1 1
      src/components/UploadFile.vue
  4. 1 1
      src/views/book/courseware/create/components/base/h5_games/H5Games.vue
  5. 8 2
      src/views/book/courseware/create/components/common/SelectUpload.vue
  6. 10 10
      src/views/book/courseware/create/components/question/article/Article.vue
  7. 2 2
      src/views/book/courseware/create/components/question/article/CheckArticle.vue
  8. 2 2
      src/views/book/courseware/create/components/question/article/CheckPic.vue
  9. 3 3
      src/views/book/courseware/create/components/question/article/CheckStyle.vue
  10. 2 2
      src/views/book/courseware/create/components/question/article/CheckWord.vue
  11. 7 7
      src/views/book/courseware/create/components/question/article/NewWord.vue
  12. 6 6
      src/views/book/courseware/create/components/question/article/Notes.vue
  13. 3 3
      src/views/book/courseware/create/components/question/character/Character.vue
  14. 2 2
      src/views/book/courseware/create/components/question/character_structure/CharacterStructure.vue
  15. 8 8
      src/views/book/courseware/create/components/question/dialogue_article/Article.vue
  16. 13 13
      src/views/book/courseware/create/components/question/image_text/ImageText.vue
  17. 2 2
      src/views/book/courseware/create/components/question/newWord_template/NewWordTemplate.vue
  18. 7 7
      src/views/book/courseware/create/components/question/new_word/NewWord.vue
  19. 7 7
      src/views/book/courseware/create/components/question/notes/Notes.vue
  20. 2 1
      src/views/book/courseware/create/components/question/pinyin_base/PinyinBase.vue
  21. 2 2
      src/views/book/courseware/data/article.js
  22. 2 2
      src/views/book/courseware/data/dialogueArticle.js
  23. 1 1
      src/views/book/courseware/data/newWord.js
  24. 4 4
      src/views/book/courseware/data/table.js
  25. 6 1
      src/views/book/courseware/data/uploadControl.js
  26. 11 11
      src/views/book/courseware/preview/components/article/NormalModelChs.vue
  27. 9 9
      src/views/book/courseware/preview/components/article/PhraseModelChs.vue
  28. 1 1
      src/views/book/courseware/preview/components/article/Practicechs.vue
  29. 3 3
      src/views/book/courseware/preview/components/article/WordModelChs.vue
  30. 4 4
      src/views/book/courseware/preview/components/article/components/AudioRed.vue
  31. 1 1
      src/views/book/courseware/preview/components/article/components/Freewrite.vue
  32. 1 1
      src/views/book/courseware/preview/components/article/components/FreewriteLettle.vue
  33. 1 1
      src/views/book/courseware/preview/components/article/components/Notecard.vue
  34. 1 1
      src/views/book/courseware/preview/components/article/components/Practice.vue
  35. 5 5
      src/views/book/courseware/preview/components/article/components/WordPhraseDetail.vue
  36. 1 1
      src/views/book/courseware/preview/components/article/components/Wordcard.vue
  37. 1 1
      src/views/book/courseware/preview/components/character_base/components/FreewriteLettle.vue
  38. 9 9
      src/views/book/courseware/preview/components/dialogue_article/NormalModelChs.vue
  39. 12 12
      src/views/book/courseware/preview/components/dialogue_article/PhraseModelChs.vue
  40. 1 1
      src/views/book/courseware/preview/components/dialogue_article/Practicechs.vue
  41. 2 2
      src/views/book/courseware/preview/components/dialogue_article/RemarkChs.vue
  42. 1 1
      src/views/book/courseware/preview/components/dialogue_article/RoleChs.vue
  43. 3 3
      src/views/book/courseware/preview/components/dialogue_article/WordModelChs.vue
  44. 2 2
      src/views/book/courseware/preview/components/drawing/DrawingPreview.vue
  45. 5 5
      src/views/book/courseware/preview/components/image_text/components/MagazineSentence.vue
  46. 66 67
      src/views/book/courseware/preview/components/new_word/NewWordPreview.vue
  47. 5 5
      src/views/book/courseware/preview/components/new_word/components/WordPhraseDetail.vue
  48. 2 2
      src/views/book/courseware/preview/components/new_word/components/writeTableZoom.vue
  49. 1 1
      src/views/book/courseware/preview/components/notes/NotesPreview.vue
  50. 19 20
      src/views/login/forgotPwd.vue
  51. 16 20
      src/views/personal_workbench/pinyin_correction_list_manager/index.vue
  52. 16 20
      src/views/personal_workbench/pinyin_correction_list_org/index.vue
  53. 9 16
      src/views/personal_workbench/template_list_admin/index.vue
  54. 8 14
      src/views/personal_workbench/template_list_manager/index.vue
  55. 10 15
      src/views/personal_workbench/template_list_org/index.vue
  56. 1 1
      src/views/system_config/voiceengine/index.vue

+ 5 - 5
src/api/oboc.js

@@ -2,29 +2,29 @@ import { http } from '@/utils/http';
 
 /**
  * 创建一书一码
- * @param {} data 
+ * @param {} data
  */
 export function CreateOBOC(data) {
   return http.post(`${process.env.VUE_APP_EepServer}?MethodName=oboc-CreateOBOC`, data);
 }
 /**
  * 删除一书一码
- * @param {} data 
+ * @param {} data
  */
 export function DeleteOBOC(data) {
   return http.post(`${process.env.VUE_APP_EepServer}?MethodName=oboc-DeleteOBOC`, data);
 }
 /**
  * 废弃一书一码
- * @param {} data 
+ * @param {} data
  */
 export function DisableOBOC(data) {
   return http.post(`${process.env.VUE_APP_EepServer}?MethodName=oboc-DisableOBOC`, data);
 }
 /**
  * 分页查询一书一码列表
- * @param {} data 
+ * @param {} data
  */
 export function PageQueryOBOCList(data) {
   return http.post(`${process.env.VUE_APP_EepServer}?MethodName=page_query-PageQueryOBOCList`, data);
-}
+}

+ 3 - 3
src/components/Remark.vue

@@ -7,7 +7,7 @@
       :height="240"
       page-from="audit"
     />
-    <SoundRecord @updateFileList="updateFileList"></SoundRecord>
+    <SoundRecord @updateFileList="updateFileList" />
     <UploadFile
       key="upload_remark"
       type="upload_remark"
@@ -19,8 +19,8 @@
       :icon-class="iconClass"
       :limit="100"
       :single-size="200"
-      :projectId="projectId"
-      :coursewareId="coursewareId"
+      :project-id="projectId"
+      :courseware-id="coursewareId"
       :upload-tip="uploadTip"
       @updateFileList="updateFileLists"
     />

+ 1 - 1
src/components/UploadFile.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="upload-file">
     <div class="file-area">
-      <span class="label-text" v-if="labelText">{{ labelText }}</span>
+      <span v-if="labelText" class="label-text">{{ labelText }}</span>
       <div class="upload-box">
         <el-upload
           v-show="false"

+ 1 - 1
src/views/book/courseware/create/components/base/h5_games/H5Games.vue

@@ -14,7 +14,7 @@
         :single-size="200"
         :can-edit-name="true"
         :file-info="data.file_info"
-        :uploadTip="'支持zip格式压缩包和html文件,压缩包或html文件不超过200Mb。'"
+        :upload-tip="'支持zip格式压缩包和html文件,压缩包或html文件不超过200Mb。'"
         @updateFileList="updateFileList"
       />
     </template>

+ 8 - 2
src/views/book/courseware/create/components/common/SelectUpload.vue

@@ -16,10 +16,16 @@
       >
         <el-button>{{ showText }}</el-button>
       </el-upload>
-      <el-button size="small" class="upload-button" :type="isNormal ? '' : 'primary'" @click="selectAndUpload"
+      <el-button
+size="small"
+class="upload-button" :type="isNormal ? '' : 'primary'"
+@click="selectAndUpload"
         >本地上传</el-button
       >
-      <el-button v-if="isShowResource" size="small" :type="isNormal ? '' : 'primary'" @click="useResource"
+      <el-button
+v-if="isShowResource"
+size="small" :type="isNormal ? '' : 'primary'"
+@click="useResource"
         >使用资源</el-button
       >
     </div>

+ 10 - 10
src/views/book/courseware/create/components/question/article/Article.vue

@@ -25,7 +25,7 @@
           <div class="new-btn-box">
             <p>音频内容</p>
             <div>
-              <SelectUpload label="" type="audio" :isNormal="true" @uploadSuccess="uploadAudioSuccess" />
+              <SelectUpload label="" type="audio" :is-normal="true" @uploadSuccess="uploadAudioSuccess" />
               <el-button :loading="autoLoading" @click="handleAutoAudio">生成音频</el-button>
               <template v-if="data.mp3_list.length === 0">
                 <el-tooltip class="item" effect="dark" content="请先设置音频" placement="top">
@@ -62,7 +62,7 @@
               <a @click="picArticle">上传视频</a>
             </div>
           </div>
-          <div class="table-rich-toolbar" v-if="articleAttrib">
+          <div v-if="articleAttrib" class="table-rich-toolbar">
             <el-select
               v-model="articleAttrib.font"
               placeholder="请选择"
@@ -196,11 +196,11 @@
               }"
             >
               <span
+                v-if="isEnable(data.property.view_pinyin)"
                 class="pinyin"
                 :style="{
                   fontSize: articleAttrib.pinyin_size,
                 }"
-                v-if="isEnable(data.property.view_pinyin)"
                 @click="selectItem(wItem, wIndex)"
                 >{{
                   wIndex === 0 && data.property.is_first_sentence_first_hz_pinyin_first_char_upper_case === 'true'
@@ -378,9 +378,9 @@
             :font-color="data.unified_attrib?.text_color"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright image media link"
           />
-          <el-input v-else v-model="matchNotesObj.con" type="textarea" rows="5"></el-input>
+          <el-input v-else v-model="matchNotesObj.con" type="textarea" rows="5" />
           <div class="matchNotes-color">
-            <span>气泡颜色<el-color-picker v-model="matchNotesObj.notesColor"></el-color-picker></span>
+            <span>气泡颜色<el-color-picker v-model="matchNotesObj.notesColor" /></span>
             <span @click="matchNotesObj.isRich = !matchNotesObj.isRich"
               ><SvgIcon icon-class="change" size="16" />切换文本模式</span
             >
@@ -670,7 +670,7 @@ export default {
 
           let str = Base64.encode(item);
           textList.push(str);
-          contentStr += item.trim() + '\n';
+          contentStr += `${item.trim()}\n`;
         }
       });
       BatchSegContent({
@@ -895,7 +895,7 @@ export default {
                 paraIndex: index,
                 para,
                 sentences: sentenceList,
-                segList: segList,
+                segList,
                 seg_words: [],
                 wordsList,
                 timeList: [],
@@ -1477,9 +1477,9 @@ export default {
     // 自动生成拼音
     handlePinyins(text, flag) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
-        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag ? flag : 'false',
+        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag || 'false',
         is_fill_space: 'false',
         is_custom_fc: 'false',
       };
@@ -1490,7 +1490,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 2 - 2
src/views/book/courseware/create/components/question/article/CheckArticle.vue

@@ -106,7 +106,7 @@
           />
         </div>
         <div class="adult-book-input-item">
-          <span class="adult-book-lable">标题背景色:</span> <el-color-picker v-model="remark.chsBg"></el-color-picker>
+          <span class="adult-book-lable">标题背景色:</span> <el-color-picker v-model="remark.chsBg" />
         </div>
         <div class="adult-book-input-item">
           <span class="adult-book-lable">正文:</span>
@@ -131,7 +131,7 @@
         </div>
         <div class="adult-book-input-item">
           <span class="adult-book-lable">正文背景色:</span>
-          <el-color-picker v-model="remark.enBg"></el-color-picker>
+          <el-color-picker v-model="remark.enBg" />
         </div>
         <div v-if="remark.img_list && remark.img_list.length == 0" class="adult-book-input-item">
           <el-upload action="no" accept="image/*" :show-file-list="false" :http-request="changeImage">

+ 2 - 2
src/views/book/courseware/create/components/question/article/CheckPic.vue

@@ -5,6 +5,7 @@
         <label>段 {{ index + 1 }}</label>
         <template v-if="data.type === 'article'">
           <el-upload
+            :key="index"
             action="no"
             accept="image/*,video/*"
             :file-list="item.sourceList"
@@ -13,9 +14,8 @@
             :on-exceed="handleExceed"
             :on-remove="handleRemove"
             :limit="1"
-            :key="index"
-            @click.native="handleItem(index)"
             class="upload-resource"
+            @click.native="handleItem(index)"
           >
             <div class="remark-box"><i class="el-icon-upload"></i>上传图片/视频</div>
           </el-upload>

+ 3 - 3
src/views/book/courseware/create/components/question/article/CheckStyle.vue

@@ -66,7 +66,7 @@
     >
       <div class="check-box">
         <div class="content">
-          <div class="words-box" v-if="batchList.length < 2">
+          <div v-if="batchList.length < 2" class="words-box">
             <span
               class="words"
               :style="{
@@ -106,13 +106,13 @@
             <SvgIcon icon-class="borderDotted" title="下划虚线" size="16" @click="setActiveTextStyle('border')" />
           </span>
         </div>
-        <div class="match-info" v-if="batchList.length < 2">
+        <div v-if="batchList.length < 2" class="match-info">
           <label>关联生词:</label>
           <el-input
             v-model="itemActive.matchWords"
             placeholder="请输入生词表的“生词/短语”"
             @blur="onBlur(itemActive, 'matchWords')"
-          ></el-input>
+          />
         </div>
         <!-- <div class="match-info" v-if="batchList.length < 2">
           <label>关联注释:</label>

+ 2 - 2
src/views/book/courseware/create/components/question/article/CheckWord.vue

@@ -22,7 +22,7 @@
       </div>
       <el-input v-model="noPosContent" class="no-pos-content" type="textarea" :autosize="{ minRows: 15 }" />
 
-      <el-button type="primary" @click="saveWord" style="margin-top: 10px">保存分词</el-button>
+      <el-button type="primary" style="margin-top: 10px" @click="saveWord">保存分词</el-button>
 
       <div class="main-top" style="margin-top: 48px">
         <div style="display: flex">
@@ -32,7 +32,7 @@
           <el-button type="primary" @click="savePinyin">保存</el-button>
         </div> -->
       </div>
-      <div class="article" v-loading="loading">
+      <div v-loading="loading" class="article">
         <el-form>
           <el-form-item label="标注方式">
             <el-radio-group v-model="data.pinyin_type" @change="getArticleData">

+ 7 - 7
src/views/book/courseware/create/components/question/article/NewWord.vue

@@ -48,8 +48,8 @@
         <div class="table-th" style="width: 100px">
           <label>标签</label>
         </div>
-        <div class="table-th" v-for="(itemC, indexC) in data.addCol" :key="indexC" style="width: 200px">
-          <el-input v-model="itemC.label"></el-input>
+        <div v-for="(itemC, indexC) in data.addCol" :key="indexC" class="table-th" style="width: 200px">
+          <el-input v-model="itemC.label" />
         </div>
 
         <div class="table-th" style="width: 150px">
@@ -178,7 +178,7 @@
         <div class="table-item" style="width: 100px">
           <el-input v-model="item.label" />
         </div>
-        <div class="table-item" style="width: 200px" v-for="(itemN, indexN) in data.addCol" :key="indexN">
+        <div v-for="(itemN, indexN) in data.addCol" :key="indexN" class="table-item" style="width: 200px">
           <RichText
             v-if="property.isGetContent"
             ref="richText"
@@ -225,7 +225,7 @@
         </div>
         <div class="table-item" style="width: 100px"></div>
         <div class="table-item" style="width: 100px"></div>
-        <div class="table-item" style="width: 200px" v-for="(itemN, indexN) in data.addCol" :key="indexN">
+        <div v-for="(itemN, indexN) in data.addCol" :key="indexN" class="table-item" style="width: 200px">
           <el-input v-model="data.col_width[6 + indexN].value" />
         </div>
 
@@ -623,9 +623,9 @@ export default {
         index: this.data.addCol[this.data.addCol.length - 1]
           ? this.data.addCol[this.data.addCol.length - 1].index + 1
           : 1,
-        key:
-          'newCol' +
-          (this.data.addCol[this.data.addCol.length - 1] ? this.data.addCol[this.data.addCol.length - 1].index + 1 : 1),
+        key: `newCol${
+          this.data.addCol[this.data.addCol.length - 1] ? this.data.addCol[this.data.addCol.length - 1].index + 1 : 1
+        }`,
       };
       this.data.new_word_list.forEach((item) => {
         this.$set(item, obj.key, '');

+ 6 - 6
src/views/book/courseware/create/components/question/article/Notes.vue

@@ -19,7 +19,7 @@
           <el-input v-model="scope.row.number" />
         </template>
       </el-table-column> -->
-      <el-table-column prop="matchNotes" label="课文内容" width="120px"> </el-table-column>
+      <el-table-column prop="matchNotes" label="课文内容" width="120px" />
       <el-table-column prop="con" label="气泡">
         <template slot-scope="scope">
           <RichText
@@ -91,7 +91,7 @@
       </el-table-column> -->
       <el-table-column prop="notesColor" label="在课文中的颜色" width="130">
         <template slot-scope="scope">
-          <el-color-picker v-model="scope.row.notesColor" @change="handleChangeColor(scope.$index)"></el-color-picker>
+          <el-color-picker v-model="scope.row.notesColor" @change="handleChangeColor(scope.$index)" />
         </template>
       </el-table-column>
       <el-table-column label="操作" width="150">
@@ -147,8 +147,8 @@ export default {
     RichText,
     UploadPicture,
   },
-  props: ['dataNotes', 'unifiedAttrib'],
   mixins: [ModuleMixin],
+  props: ['dataNotes', 'unifiedAttrib'],
   data() {
     return {
       data: this.dataNotes,
@@ -265,9 +265,9 @@ export default {
     // 自动生成拼音
     handlePinyins(text, flag) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
-        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag ? flag : 'false',
+        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag || 'false',
         is_fill_space: 'false',
         is_custom_fc: 'false',
       };
@@ -278,7 +278,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 3 - 3
src/views/book/courseware/create/components/question/character/Character.vue

@@ -40,9 +40,9 @@
                   v-if="data.property.audio_generation_method === 'upload'"
                   :file-id="item.audio_file_id"
                   :show-upload="!item.audio_file_id"
+                  :item-index="index"
                   @upload="uploads"
                   @deleteFile="deleteFiles"
-                  :itemIndex="index"
                 />
                 <div
                   v-else-if="data.property.audio_generation_method === 'auto'"
@@ -342,7 +342,7 @@ export default {
     // 自动生成拼音
     handlePinyin(text) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
         is_first_sentence_first_hz_pinyin_first_char_upper_case: 'false',
         is_fill_space: 'false',
@@ -355,7 +355,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 2 - 2
src/views/book/courseware/create/components/question/character_structure/CharacterStructure.vue

@@ -190,7 +190,7 @@ export default {
     // 自动生成拼音
     handlePinyin(text) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
         is_first_sentence_first_hz_pinyin_first_char_upper_case: 'false',
         is_fill_space: 'false',
@@ -203,7 +203,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 8 - 8
src/views/book/courseware/create/components/question/dialogue_article/Article.vue

@@ -3,7 +3,7 @@
     <template #content>
       <!-- eslint-disable max-len -->
       <div v-loading="loading" class="article-wrapper">
-        <div class="table-rich-toolbar" v-if="articleAttrib">
+        <div v-if="articleAttrib" class="table-rich-toolbar">
           <el-select
             v-model="articleAttrib.font"
             placeholder="请选择"
@@ -56,10 +56,10 @@
           <div v-for="(item, index) in data.detail" :key="index" class="content-list">
             <div v-if="item.type === 'notice'" class="content-item">
               <span
-                v-html="item.notice"
                 :style="{
                   fontSize: data.property.notice_size ? data.property.notice_size + 'px' : '',
                 }"
+                v-html="item.notice"
               ></span>
               <div class="content-operation">
                 <div class="up-down">
@@ -270,7 +270,7 @@
           <div class="new-btn-box">
             <p>音频内容</p>
             <div>
-              <SelectUpload label="" type="audio" :isNormal="true" @uploadSuccess="uploadAudioSuccess" />
+              <SelectUpload label="" type="audio" :is-normal="true" @uploadSuccess="uploadAudioSuccess" />
               <el-button :loading="autoLoading" @click="handleAutoAudio">生成音频</el-button>
               <template v-if="data.mp3_list.length === 0">
                 <el-tooltip class="item" effect="dark" content="请先设置音频" placement="top">
@@ -567,9 +567,9 @@
             :font-color="data.unified_attrib?.text_color"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright image media link"
           />
-          <el-input v-else v-model="matchNotesObj.con" type="textarea" rows="5"></el-input>
+          <el-input v-else v-model="matchNotesObj.con" type="textarea" rows="5" />
           <div class="matchNotes-color">
-            <span>气泡颜色<el-color-picker v-model="matchNotesObj.notesColor"></el-color-picker></span>
+            <span>气泡颜色<el-color-picker v-model="matchNotesObj.notesColor" /></span>
             <span @click="matchNotesObj.isRich = !matchNotesObj.isRich"
               ><SvgIcon icon-class="change" size="16" />切换文本模式</span
             >
@@ -1919,9 +1919,9 @@ export default {
     // 自动生成拼音
     handlePinyins(text, flag) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
-        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag ? flag : 'false',
+        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag || 'false',
         is_fill_space: 'false',
         is_custom_fc: 'false',
       };
@@ -1932,7 +1932,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 13 - 13
src/views/book/courseware/create/components/question/image_text/ImageText.vue

@@ -34,7 +34,7 @@
           <span> 完成 </span>
         </div>
         <SvgIcon icon-class="delete-black" size="12" @click="removeFile" />
-        <ResourcesOperate :data="data.mp3_list[0]"></ResourcesOperate>
+        <ResourcesOperate :data="data.mp3_list[0]" />
       </div>
 
       <p class="tips">操作提示:在图片上拖拽鼠标,创建文字框或答题框</p>
@@ -373,6 +373,17 @@ export default {
     },
     'data.text_list': 'handleMindMap',
   },
+  mounted() {
+    // 添加全局事件监听器esc
+    document.addEventListener('keyup', this.handleGlobalEsc);
+    // 添加全局事件监听器delete
+    document.addEventListener('keyup', this.handleGlobalDelete);
+  },
+  beforeDestroy() {
+    // 移除全局事件监听器
+    document.removeEventListener('keyup', this.handleGlobalEsc);
+    document.removeEventListener('keyup', this.handleGlobalDelete);
+  },
   methods: {
     handleAcitveSelect(type, index) {
       this.activeType = type;
@@ -709,7 +720,7 @@ export default {
                   paraIndex: index,
                   para,
                   sentences: sentenceList,
-                  segList: segList,
+                  segList,
                   seg_words: [],
                   wordsList: sentArr,
                   timeList: [],
@@ -928,17 +939,6 @@ export default {
       });
     },
   },
-  mounted() {
-    // 添加全局事件监听器esc
-    document.addEventListener('keyup', this.handleGlobalEsc);
-    // 添加全局事件监听器delete
-    document.addEventListener('keyup', this.handleGlobalDelete);
-  },
-  beforeDestroy() {
-    // 移除全局事件监听器
-    document.removeEventListener('keyup', this.handleGlobalEsc);
-    document.removeEventListener('keyup', this.handleGlobalDelete);
-  },
 };
 </script>
 <style lang="scss" scoped>

+ 2 - 2
src/views/book/courseware/create/components/question/newWord_template/NewWordTemplate.vue

@@ -336,7 +336,7 @@ export default {
     // 自动生成拼音
     handlePinyin(text) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
         is_first_sentence_first_hz_pinyin_first_char_upper_case: 'false',
         is_fill_space: 'false',
@@ -349,7 +349,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 7 - 7
src/views/book/courseware/create/components/question/new_word/NewWord.vue

@@ -190,8 +190,8 @@
           <div class="table-th" style="width: 100px">
             <label>标签</label>
           </div>
-          <div class="table-th" v-for="(itemC, indexC) in data.addCol" :key="indexC" style="width: 200px">
-            <el-input v-model="itemC.label"></el-input>
+          <div v-for="(itemC, indexC) in data.addCol" :key="indexC" class="table-th" style="width: 200px">
+            <el-input v-model="itemC.label" />
           </div>
 
           <div class="table-th" style="width: 150px">
@@ -320,7 +320,7 @@
           <div class="table-item" style="width: 100px">
             <el-input v-model="item.label" />
           </div>
-          <div class="table-item" style="width: 200px" v-for="(itemN, indexN) in data.addCol" :key="indexN">
+          <div v-for="(itemN, indexN) in data.addCol" :key="indexN" class="table-item" style="width: 200px">
             <RichText
               v-if="property.isGetContent"
               ref="richText"
@@ -366,7 +366,7 @@
           </div>
           <div class="table-item" style="width: 100px"></div>
           <div class="table-item" style="width: 100px"></div>
-          <div class="table-item" style="width: 200px" v-for="(itemN, indexN) in data.addCol" :key="indexN">
+          <div v-for="(itemN, indexN) in data.addCol" :key="indexN" class="table-item" style="width: 200px">
             <el-input v-model="data.col_width[6 + indexN].value" />
           </div>
           <div class="table-item" style="width: 150px"></div>
@@ -685,9 +685,9 @@ export default {
         index: this.data.addCol[this.data.addCol.length - 1]
           ? this.data.addCol[this.data.addCol.length - 1].index + 1
           : 1,
-        key:
-          'newCol' +
-          (this.data.addCol[this.data.addCol.length - 1] ? this.data.addCol[this.data.addCol.length - 1].index + 1 : 1),
+        key: `newCol${
+          this.data.addCol[this.data.addCol.length - 1] ? this.data.addCol[this.data.addCol.length - 1].index + 1 : 1
+        }`,
       };
       this.data.new_word_list.forEach((item) => {
         this.$set(item, obj.key, '');

+ 7 - 7
src/views/book/courseware/create/components/question/notes/Notes.vue

@@ -23,13 +23,13 @@
             <RichText
               v-if="property.isGetContent"
               ref="richText"
+              :key="'richtext-1-' + scope.$index"
               v-model="scope.row.con"
               :inline="true"
               :item-index="scope.$index"
               :font-size="data?.unified_attrib?.font_size"
               :font-family="data?.unified_attrib?.font"
               :font-color="data?.unified_attrib?.text_color"
-              :key="'richtext-1-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
               @handleRichTextBlur="handleBlurCon"
             />
@@ -40,12 +40,12 @@
             <RichText
               v-if="property.isGetContent"
               ref="richText"
+              :key="'richtext-2-' + scope.$index"
               v-model="scope.row.pinyin"
               :inline="true"
               :font-size="data?.unified_attrib?.pinyin_size"
               :font-family="'League'"
               :font-color="data?.unified_attrib?.text_color"
-              :key="'richtext-2-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             />
           </template>
@@ -55,12 +55,12 @@
             <RichText
               v-if="property.isGetContent"
               ref="richText"
+              :key="'richtext-3-' + scope.$index"
               v-model="scope.row.interpret"
               :inline="true"
               :font-size="data?.unified_attrib?.font_size"
               :font-family="data?.unified_attrib?.font"
               :font-color="data?.unified_attrib?.text_color"
-              :key="'richtext-3-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             />
           </template>
@@ -70,12 +70,12 @@
             <RichText
               v-if="property.isGetContent"
               ref="richText"
+              :key="'richtext-4-' + scope.$index"
               v-model="scope.row.note"
               :inline="true"
               :font-size="data?.unified_attrib?.font_size"
               :font-family="data?.unified_attrib?.font"
               :font-color="data?.unified_attrib?.text_color"
-              :key="'richtext-4-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             />
           </template>
@@ -222,9 +222,9 @@ export default {
     // 自动生成拼音
     handlePinyins(text, flag) {
       let data = {
-        text: text,
+        text,
         is_rich_text: 'false',
-        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag ? flag : 'false',
+        is_first_sentence_first_hz_pinyin_first_char_upper_case: flag || 'false',
         is_fill_space: 'false',
         is_custom_fc: 'false',
       };
@@ -235,7 +235,7 @@ export default {
             res.parsed_text.paragraph_list.map((outerArr, i) =>
               outerArr.map((innerArr, j) =>
                 innerArr.map((newItem, k) => {
-                  mergedData += newItem.pinyin + ' ';
+                  mergedData += `${newItem.pinyin} `;
                 }),
               ),
             );

+ 2 - 1
src/views/book/courseware/create/components/question/pinyin_base/PinyinBase.vue

@@ -32,7 +32,8 @@
             style="width: 200px"
           />
         </div>
-        <span v-if="data.property.fun_type === 'input'" class="tips"
+        <span
+v-if="data.property.fun_type === 'input'" class="tips"
           >在需要加空的内容处插入 3 个或以上的下划线“_”。</span
         >
         <span v-else-if="data.property.fun_type === 'mark'" class="tips">轻声不需要标注数字0</span>

+ 2 - 2
src/views/book/courseware/data/article.js

@@ -151,7 +151,7 @@ export function getArticleData() {
         },
       ], // 列宽
       multilingual: [], // 多语言
-      addCol:[], // 自定义增加的列
+      addCol: [], // 自定义增加的列
     }, // 生词列表
     other_word_list: {
       title_con: '',
@@ -206,7 +206,7 @@ export function getArticleData() {
         },
       ], // 列宽
       multilingual: [], // 多语言
-      addCol:[], // 自定义增加的列
+      addCol: [], // 自定义增加的列
     },
     notes_list: {
       title_con: '',

+ 2 - 2
src/views/book/courseware/data/dialogueArticle.js

@@ -194,7 +194,7 @@ export function getArticleData() {
         },
       ], // 列宽
       multilingual: [], // 多语言
-      addCol:[], // 自定义增加的列
+      addCol: [], // 自定义增加的列
     }, // 生词列表
     other_word_list: {
       title_con: '',
@@ -249,7 +249,7 @@ export function getArticleData() {
         },
       ], // 列宽
       multilingual: [], // 多语言
-      addCol:[], // 自定义增加的列
+      addCol: [], // 自定义增加的列
     },
     notes_list: {
       title_con: '',

+ 1 - 1
src/views/book/courseware/data/newWord.js

@@ -136,6 +136,6 @@ export function getNewWordData() {
       answer_list: [],
     },
     multilingual: [], // 多语言
-    addCol:[], // 自定义增加的列
+    addCol: [], // 自定义增加的列
   };
 }

+ 4 - 4
src/views/book/courseware/data/table.js

@@ -62,13 +62,13 @@ export function getOption() {
     content: '',
     mark: getRandomNumber(),
     model_essay: [],
-    rich_text_list:[],
+    rich_text_list: [],
     cell: {
       bgColor: '',
       isCross: false,
       rowspan: 1,
       colspan: 1,
-    }
+    },
   };
 }
 
@@ -76,7 +76,7 @@ export function getAnswerOption() {
   return {
     answer: '',
     answer_list: [],
-    crossAnswer:'normal'
+    crossAnswer: 'normal',
   };
 }
 
@@ -88,7 +88,7 @@ export function getTableData() {
     record_list: [],
     answer_lists: Array.from({ length: 2 }, () => Array.from({ length: 3 }, getAnswerOption)),
     rows_bg_list: ['', ''],
-    cols_bg_list: ['', '',''],
+    cols_bg_list: ['', '', ''],
     mode: tableTypeList[1].value,
     vocabulary: '', // 用于选词的词汇
     word_list: [], // 选词列表

+ 6 - 1
src/views/book/courseware/data/uploadControl.js

@@ -1,4 +1,9 @@
-import { displayList, serialNumberTypeList, serialNumberPositionList, serialNumberStyleList, } from '@/views/book/courseware/data/common';
+import {
+  displayList,
+  serialNumberTypeList,
+  serialNumberPositionList,
+  serialNumberStyleList,
+} from '@/views/book/courseware/data/common';
 
 export function getUploadControlProperty() {
   return {

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

@@ -90,12 +90,12 @@
                     }"
                   />
                   <video
+                    v-else
                     :src="item.sourceList[0].file_url_open"
                     width="100%"
                     height="400"
                     controls
                     controlsList="nodownload"
-                    v-else
                   ></video>
                 </template>
 
@@ -121,7 +121,6 @@
                     <template v-if="!pItem.width">
                       <template v-if="pItem.isShow">
                         <span
-                          class="NNPE-words-box"
                           v-if="
                             item.wordsList[pIndex - 1] &&
                             item.wordsList[pIndex - 1].chs &&
@@ -130,6 +129,7 @@
                             item.wordsList[pIndex - 2].chs &&
                             firstFhlist.indexOf(item.wordsList[pIndex - 2].chs) > -1
                           "
+                          class="NNPE-words-box"
                         >
                           <span
                             v-if="curQue.property.pinyin_position == 'top' && config.isShowPY && item.dhaspinyin"
@@ -162,10 +162,10 @@
                             }}</span
                           >
                           <el-tooltip
+                            v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                             popper-class="article-bubble"
                             effect="light"
                             placement="bottom-start"
-                            v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                           >
                             <div
                               slot="content"
@@ -361,12 +361,12 @@
                           >
                         </span>
                         <span
-                          class="NNPE-words-box"
                           v-if="
                             item.wordsList[pIndex - 1] &&
                             item.wordsList[pIndex - 1].chs &&
                             firstFhlist.indexOf(item.wordsList[pIndex - 1].chs) > -1
                           "
+                          class="NNPE-words-box"
                         >
                           <span
                             v-if="curQue.property.pinyin_position == 'top' && config.isShowPY && item.dhaspinyin"
@@ -399,10 +399,10 @@
                             }}</span
                           >
                           <el-tooltip
+                            v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                             popper-class="article-bubble"
                             effect="light"
                             placement="bottom-start"
-                            v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                           >
                             <div
                               slot="content"
@@ -633,10 +633,10 @@
                               >{{ NumberList.indexOf(pItem.pinyin) == -1 ? pItem.pinyin : '' }}</span
                             >
                             <el-tooltip
+                              v-if="pItem.matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="pItem.matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -881,10 +881,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -1137,10 +1137,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -1384,10 +1384,10 @@
                               >{{ NumberList.indexOf(pItem.pinyin) == -1 ? pItem.pinyin : '' }}</span
                             >
                             <el-tooltip
+                              v-if="pItem.matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="pItem.matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -1637,12 +1637,12 @@
                     }"
                   />
                   <video
+                    v-else
                     :src="item.sourceList[0].file_url_open"
                     width="100%"
                     height="400"
                     controls
                     controlsList="nodownload"
-                    v-else
                   ></video>
                 </template>
               </div>
@@ -2287,6 +2287,7 @@ export default {
     Notecard,
     RemarkChs,
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'noFont',
@@ -2298,7 +2299,6 @@ export default {
     'attrib',
     'isMobile',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resArr: [],

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

@@ -92,12 +92,12 @@
                     }"
                   />
                   <video
+                    v-else
                     :src="item.sourceList[0].file_url_open"
                     width="100%"
                     height="400"
                     controls
                     controlsList="nodownload"
-                    v-else
                   ></video>
                 </template>
                 <div :class="['para-' + item.paraAlign]">
@@ -148,10 +148,10 @@
                             }}</span
                           >
                           <el-tooltip
+                            v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                             popper-class="article-bubble"
                             effect="light"
                             placement="bottom-start"
-                            v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                           >
                             <div
                               slot="content"
@@ -306,10 +306,10 @@
                             }}</span
                           >
                           <el-tooltip
+                            v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                             popper-class="article-bubble"
                             effect="light"
                             placement="bottom-start"
-                            v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                           >
                             <div
                               slot="content"
@@ -459,10 +459,10 @@
                               >{{ NumberList.indexOf(pItem.pinyin) == -1 ? pItem.pinyin : '' }}</span
                             >
                             <el-tooltip
+                              v-if="pItem.matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="pItem.matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -637,10 +637,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -807,10 +807,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -965,10 +965,10 @@
                               >{{ NumberList.indexOf(pItem.pinyin) == -1 ? pItem.pinyin : '' }}</span
                             >
                             <el-tooltip
+                              v-if="pItem.matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="pItem.matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -1163,12 +1163,12 @@
                     }"
                   />
                   <video
+                    v-else
                     :src="item.sourceList[0].file_url_open"
                     width="100%"
                     height="400"
                     controls
                     controlsList="nodownload"
-                    v-else
                   ></video>
                 </template>
               </div>
@@ -1722,6 +1722,7 @@ export default {
     Notecard,
     RemarkChs,
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'bodyLeft',
@@ -1737,7 +1738,6 @@ export default {
     'attrib',
     'isMobile',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resArr: [],

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

@@ -944,6 +944,7 @@ export default {
     AudioCompare,
     Voicefullscreen,
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'noFont',
@@ -958,7 +959,6 @@ export default {
     'multilingual',
     'attrib',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resObj: null,

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

@@ -80,12 +80,12 @@
                     }"
                   />
                   <video
+                    v-else
                     :src="item.sourceList[0].file_url_open"
                     width="100%"
                     height="400"
                     controls
                     controlsList="nodownload"
-                    v-else
                   ></video>
                 </template>
                 <div :class="['para-' + item.paraAlign]">
@@ -702,12 +702,12 @@
                     }"
                   />
                   <video
+                    v-else
                     :src="item.sourceList[0].file_url_open"
                     width="100%"
                     height="400"
                     controls
                     controlsList="nodownload"
-                    v-else
                   ></video>
                 </template>
               </div>
@@ -1185,6 +1185,7 @@ export default {
     AudioLine,
     Wordcard,
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'bodyLeft',
@@ -1199,7 +1200,6 @@ export default {
     'attrib',
     'isMobile',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resArr: [],

+ 4 - 4
src/views/book/courseware/preview/components/article/components/AudioRed.vue

@@ -3,38 +3,38 @@
   <div v-if="mp3" class="content-voices" @click="handlePlayVoice">
     <template v-if="isCompare">
       <div
+        v-if="isPlaying"
         class="icon-mask icon-compare-play"
         :style="{
           backgroundColor: attrib ? attrib.topic_color : '#e35454',
         }"
         :class="type == 'full' ? 'icon-big' : ''"
-        v-if="isPlaying"
       ></div>
       <div
+        v-else
         class="icon-mask icon-compare-pause"
         :style="{
           backgroundColor: attrib ? attrib.topic_color : '#e35454',
         }"
         :class="type == 'full' ? 'icon-big' : ''"
-        v-else
       ></div>
     </template>
     <template v-else>
       <div
+        v-if="isPlaying"
         class="icon-mask icon-normal-play"
         :style="{
           backgroundColor: attrib ? attrib.topic_color : '#e35454',
         }"
         :class="type == 'full' ? 'icon-big' : ''"
-        v-if="isPlaying"
       ></div>
       <div
+        v-else
         class="icon-mask icon-normal-pause"
         :style="{
           backgroundColor: attrib ? attrib.topic_color : '#e35454',
         }"
         :class="type == 'full' ? 'icon-big' : ''"
-        v-else
       ></div>
     </template>
     <!-- <img :src="voiceSrc" :class="type == 'full' ? 'icon-big' : ''" class="icon-mask" :style="maskStyle" /> -->

+ 1 - 1
src/views/book/courseware/preview/components/article/components/Freewrite.vue

@@ -55,8 +55,8 @@ export default {
   components: {
     FreeWriteQP,
   },
-  props: ['lineColor', 'lineWidth', 'cur', 'wordNum', 'currentTreeID', 'TaskModel', 'writeList'],
   inject: ['convertText'],
+  props: ['lineColor', 'lineWidth', 'cur', 'wordNum', 'currentTreeID', 'TaskModel', 'writeList'],
   data() {
     return {
       width: this.wordNum === '2' ? 256 : 256,

+ 1 - 1
src/views/book/courseware/preview/components/article/components/FreewriteLettle.vue

@@ -60,6 +60,7 @@ export default {
     // Audio,
     // vueEsign,
   },
+  inject: ['convertText'],
   props: [
     'cur',
     'changePraShow',
@@ -73,7 +74,6 @@ export default {
     'TaskModel',
     'writeList',
   ],
-  inject: ['convertText'],
   data() {
     return {
       width: 256,

+ 1 - 1
src/views/book/courseware/preview/components/article/components/Notecard.vue

@@ -37,8 +37,8 @@
 import { sanitizeHTML } from '@/utils/common';
 export default {
   components: {},
-  props: ['item', 'changeCard', 'attrib', 'isMobile'],
   inject: ['convertText'],
+  props: ['item', 'changeCard', 'attrib', 'isMobile'],
   data() {
     return {
       sanitizeHTML,

+ 1 - 1
src/views/book/courseware/preview/components/article/components/Practice.vue

@@ -282,6 +282,7 @@ export default {
     Freewrite,
     AudioRed,
   },
+  inject: ['convertText'],
   props: [
     'cur',
     'changePraShow',
@@ -296,7 +297,6 @@ export default {
     'isMobile',
     'pageFrom',
   ],
-  inject: ['convertText'],
   data() {
     return {
       //   learn_mode: "",

+ 5 - 5
src/views/book/courseware/preview/components/article/components/WordPhraseDetail.vue

@@ -294,23 +294,23 @@
           </div>
         </div>
       </div>
-      <div class="bottom" v-if="data && data.endata">
+      <div v-if="data && data.endata" class="bottom">
         <div class="from">来自百度汉语</div>
         <div class="wordDetail">
           <p class="word">
             {{ data.new_word }}
             <span v-for="(fy, i) in data.endata.mean_list" :key="i"> [{{ fy.pinyin }}] </span>
-            <img v-if="data.endata.src_tts" @click="playAudio('audiosrc')" src="@/assets/play-red.png" alt="" />
+            <img v-if="data.endata.src_tts" src="@/assets/play-red.png" alt="" @click="playAudio('audiosrc')" />
             <audio ref="audiosrc" :src="data.endata.src_tts"></audio>
           </p>
           <div class="yinpin">
             <div>
               <span>{{ data.endata.dst }} </span>
-              <img v-if="data.endata.dst_tts" @click="playAudio('audiodst')" src="@/assets/play-red.png" alt="" />
+              <img v-if="data.endata.dst_tts" src="@/assets/play-red.png" alt="" @click="playAudio('audiodst')" />
               <audio ref="audiodst" :src="data.endata.dst_tts"></audio>
             </div>
           </div>
-          <div class="jieshu" v-for="(fy, i) in data.endata.mean_list" :key="i">
+          <div v-for="(fy, i) in data.endata.mean_list" :key="i" class="jieshu">
             <p v-if="data.endata.mean_list.length > 1">{{ fy.pinyin }}</p>
             <div v-for="(fys, j) in fy.exp_list" :key="j">
               <div class="jieshu-item">
@@ -318,7 +318,7 @@
                 <span>{{ fys.mean }}</span>
               </div>
 
-              <div class="jieshu-item" v-if="JSON.parse(fys.sentence).length > 0 && JSON.parse(fys.sentence)[0]">
+              <div v-if="JSON.parse(fys.sentence).length > 0 && JSON.parse(fys.sentence)[0]" class="jieshu-item">
                 <label style="opacity: 0">{{ j + 1 }}.</label>
                 <div>
                   <p v-for="(fyss, l) in JSON.parse(fys.sentence)" :key="l">{{ fyss }}</p>

+ 1 - 1
src/views/book/courseware/preview/components/article/components/Wordcard.vue

@@ -233,6 +233,7 @@ export default {
     Practice,
     WordPhraseDetail,
   },
+  inject: ['convertText'],
   props: [
     'word',
     'changeWordCard',
@@ -249,7 +250,6 @@ export default {
     'isFull',
     'pageFrom',
   ],
-  inject: ['convertText'],
   data() {
     return {
       loading: false,

+ 1 - 1
src/views/book/courseware/preview/components/character_base/components/FreewriteLettle.vue

@@ -54,6 +54,7 @@ export default {
   components: {
     FreeWriteQP,
   },
+  inject: ['convertText'],
   props: {
     currentTreeID: {
       type: String,
@@ -95,7 +96,6 @@ export default {
       default: () => ({}),
     },
   },
-  inject: ['convertText'],
   data() {
     return {
       width: 300,

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

@@ -89,24 +89,24 @@
           >
             <template v-if="item.type === 'notice'">
               <p
+                v-if="item.noticeWordList.length === 0"
                 :class="['notice']"
                 :style="{
                   fontSize: curQue.property.notice_size ? curQue.property.notice_size + 'px' : '',
                   color: curQue.property.notice_color ? curQue.property.notice_color : '',
                   fontFamily: curQue.property.noitce_family ? curQue.property.noitce_family : '',
                 }"
-                v-if="item.noticeWordList.length === 0"
               >
                 {{ convertText(item.notice) }}
               </p>
               <p
+                v-else
                 :class="['notice']"
                 :style="{
                   fontSize: curQue.property.notice_size ? curQue.property.notice_size + 'px' : '',
                   color: curQue.property.notice_color ? curQue.property.notice_color : '',
                   fontFamily: curQue.property.noitce_family ? curQue.property.noitce_family : '',
                 }"
-                v-else
               >
                 <span v-for="(items, indexs) in item.noticeWordList" :key="indexs">
                   <span
@@ -224,10 +224,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -429,10 +429,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -631,10 +631,10 @@
                                 >{{ NumberList.indexOf(pItem.pinyin) === -1 ? pItem.pinyin : '' }}</span
                               >
                               <el-tooltip
+                                v-if="pItem.matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="pItem.matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -849,10 +849,10 @@
                                 }}</span
                               >
                               <el-tooltip
+                                v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -1053,10 +1053,10 @@
                                 }}</span
                               >
                               <el-tooltip
+                                v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -1250,10 +1250,10 @@
                                 >{{ NumberList.indexOf(pItem.pinyin) === -1 ? pItem.pinyin : '' }}</span
                               >
                               <el-tooltip
+                                v-if="pItem.matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="pItem.matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -1644,6 +1644,7 @@ export default {
       return str;
     },
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'colorBox',
@@ -1659,7 +1660,6 @@ export default {
     'attrib',
     'isMobile',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resArr: [],

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

@@ -79,24 +79,24 @@
           >
             <template v-if="item.type === 'notice'">
               <p
+                v-if="item.noticeWordList.length === 0"
                 :class="['notice']"
                 :style="{
                   fontSize: curQue.property.notice_size ? curQue.property.notice_size + 'px' : '',
                   color: curQue.property.notice_color ? curQue.property.notice_color : '',
                   fontFamily: curQue.property.noitce_family ? curQue.property.noitce_family : '',
                 }"
-                v-if="item.noticeWordList.length === 0"
               >
                 {{ convertText(item.notice) }}
               </p>
               <p
+                v-else
                 :class="['notice']"
                 :style="{
                   fontSize: curQue.property.notice_size ? curQue.property.notice_size + 'px' : '',
                   color: curQue.property.notice_color ? curQue.property.notice_color : '',
                   fontFamily: curQue.property.noitce_family ? curQue.property.noitce_family : '',
                 }"
-                v-else
               >
                 <span v-for="(items, indexs) in item.noticeWordList" :key="indexs">
                   <span
@@ -132,17 +132,17 @@
                 <div v-if="item.roleDetail.fullName || item.roleDetail.fullPinyin" class="roleDetail">
                   <template v-if="item.roleDetail.segList && item.roleDetail.segList.length > 0">
                     <span
+                      v-for="(items, indexs) in item.roleDetail.segList"
+                      :key="indexs"
                       class="chs"
                       :style="{
                         color: items.matchWords ? (attrib ? attrib.topic_color : '') : '',
                       }"
-                      v-for="(items, indexs) in item.roleDetail.segList"
-                      :key="indexs"
                       @click="showWordDetail($event, items.matchWords)"
                       >{{ convertText(items.chs) }}</span
                     >
                   </template>
-                  <span class="chs" v-else>{{ convertText(item.roleDetail.fullName) }}</span>
+                  <span v-else class="chs">{{ convertText(item.roleDetail.fullName) }}</span>
                   <span class="pinyin">{{ item.roleDetail.fullPinyin }}</span>
                 </div>
                 <div
@@ -213,10 +213,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex - 2].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -390,10 +390,10 @@
                               }}</span
                             >
                             <el-tooltip
+                              v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                               popper-class="article-bubble"
                               effect="light"
                               placement="bottom-start"
-                              v-if="item.wordsList[pIndex - 1].matchNotesObj.con"
                             >
                               <div
                                 slot="content"
@@ -562,10 +562,10 @@
                                 >{{ NumberList.indexOf(pItem.pinyin) === -1 ? pItem.pinyin : '' }}</span
                               >
                               <el-tooltip
+                                v-if="pItem.matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="pItem.matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -686,10 +686,10 @@
                                 }}</span
                               >
                               <el-tooltip
+                                v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="item.wordsList[pIndex + 1].matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -848,10 +848,10 @@
                                 }}</span
                               >
                               <el-tooltip
+                                v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="item.wordsList[pIndex + 2].matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -1015,10 +1015,10 @@
                                 >{{ NumberList.indexOf(pItem.pinyin) === -1 ? pItem.pinyin : '' }}</span
                               >
                               <el-tooltip
+                                v-if="pItem.matchNotesObj.con"
                                 popper-class="article-bubble"
                                 effect="light"
                                 placement="bottom-start"
-                                v-if="pItem.matchNotesObj.con"
                               >
                                 <div
                                   slot="content"
@@ -1342,6 +1342,7 @@ export default {
       return str;
     },
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'bodyLeft',
@@ -1358,7 +1359,6 @@ export default {
     'isMobile',
     'multilingual',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resArr: [],

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

@@ -1058,6 +1058,7 @@ export default {
       return str;
     },
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'colorBox',
@@ -1073,7 +1074,6 @@ export default {
     'isPhone',
     'multilingual',
   ],
-  inject: ['convertText'],
   data() {
     return {
       wavblob: null,

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

@@ -9,8 +9,8 @@
     :style="{ top: marginTop ? marginTop + 'px' : '0px', backgroundColor: remarkDetail.enBg ? remarkDetail.enBg : '' }"
   >
     <div
-      :style="{ backgroundColor: remarkDetail.chsBg ? remarkDetail.chsBg : '' }"
       v-if="remarkDetail.chs"
+      :style="{ backgroundColor: remarkDetail.chsBg ? remarkDetail.chsBg : '' }"
       class="remark-chs"
       v-html="convertText(sanitizeHTML(remarkDetail.chs))"
     ></div>
@@ -34,8 +34,8 @@ import { sanitizeHTML } from '@/utils/common';
 export default {
   name: 'RemarkChs',
   components: {},
-  props: ['remarkDetail', 'marginTop'],
   inject: ['convertText'],
+  props: ['remarkDetail', 'marginTop'],
   data() {
     return {
       sanitizeHTML,

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

@@ -59,8 +59,8 @@ export default {
       return str;
     },
   },
-  props: ['curRole', 'color', 'type'],
   inject: ['convertText'],
+  props: ['curRole', 'color', 'type'],
   data() {
     return {};
   },

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

@@ -68,24 +68,24 @@
           <div class="article-content" :style="{}">
             <template v-if="item.type === 'notice'">
               <p
+                v-if="item.noticeWordList.length === 0"
                 :class="['notice']"
                 :style="{
                   fontSize: curQue.property.notice_size ? curQue.property.notice_size + 'px' : '',
                   color: curQue.property.notice_color ? curQue.property.notice_color : '',
                   fontFamily: curQue.property.noitce_family ? curQue.property.noitce_family : '',
                 }"
-                v-if="item.noticeWordList.length === 0"
               >
                 {{ convertText(item.notice) }}
               </p>
               <p
+                v-else
                 :class="['notice']"
                 :style="{
                   fontSize: curQue.property.notice_size ? curQue.property.notice_size + 'px' : '',
                   color: curQue.property.notice_color ? curQue.property.notice_color : '',
                   fontFamily: curQue.property.noitce_family ? curQue.property.noitce_family : '',
                 }"
-                v-else
               >
                 <span v-for="(items, indexs) in item.noticeWordList" :key="indexs">
                   <span
@@ -799,6 +799,7 @@ export default {
       return str;
     },
   },
+  inject: ['convertText'],
   props: [
     'curQue',
     'bodyLeft',
@@ -813,7 +814,6 @@ export default {
     'isMobile',
     'multilingual',
   ],
-  inject: ['convertText'],
   data() {
     return {
       resArr: [],

+ 2 - 2
src/views/book/courseware/preview/components/drawing/DrawingPreview.vue

@@ -28,7 +28,7 @@
         />
       </div>
       <!-- 如果是查看答案模式 v-if 下面画画的vue-esign不显示 -->
-      <img :src="answer.answer_list[0].answer" alt="" v-if="disabled" />
+      <img v-if="disabled" :src="answer.answer_list[0].answer" alt="" />
       <!-- <vue-esign
         ref="esign-drawing"
         class="esign-canvas"
@@ -47,7 +47,7 @@
         :options="options"
       />
     </div>
-    <div class="footer" v-if="!disabled">
+    <div v-if="!disabled" class="footer">
       <div class="pen">
         <!-- 选择颜色 -->
         <el-color-picker v-model="lineColor" @change="changeColor" />

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

@@ -1,7 +1,7 @@
 <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" v-if="mp3Url">
+      <a v-if="mp3Url" class="play-btn" :style="{ background: themeList[sentenceTheme].playBtnBg }" @click="handlePlay">
         <svg-icon v-if="isPlay" icon-class="pause" size="24" />
         <svg-icon v-else icon-class="play" size="24" />
       </a>
@@ -312,6 +312,7 @@
 export default {
   // import引入的组件需要注入到对象中才能使用
   components: {},
+  inject: ['convertText'],
   props: [
     'fontSize',
     'sentenceTheme',
@@ -323,7 +324,6 @@ export default {
     'attrib',
     'textList',
   ],
-  inject: ['convertText'],
   data() {
     // 这里存放数据
     return {
@@ -454,6 +454,9 @@ export default {
   updated() {},
   // 如果页面有keep-alive缓存功能,这个函数会触发
   activated() {},
+  beforeDestroy() {
+    this.audio.pause();
+  },
   // 方法集合
   methods: {
     // 播放、暂停
@@ -573,9 +576,6 @@ export default {
       }
     },
   },
-  beforeDestroy() {
-    this.audio.pause();
-  },
 };
 </script>
 

+ 66 - 67
src/views/book/courseware/preview/components/new_word/NewWordPreview.vue

@@ -45,12 +45,12 @@
           <div class="NPC-top-right">
             <el-popover placement="right-start" width="60" trigger="click">
               <ul class="show-obj-list">
-                <li @click="handleShow('pinyin')" v-if="colHasContent[0]">
+                <li v-if="colHasContent[0]" @click="handleShow('pinyin')">
                   <span>拼音</span
                   ><i
+                    v-if="showObj.pinyin"
                     slot="suffix"
                     class="el-icon-view show-icon"
-                    v-if="showObj.pinyin"
                     size="16"
                     :style="{
                       color:
@@ -61,9 +61,9 @@
                     }"
                   ></i>
                   <i
+                    v-else
                     slot="suffix"
                     class="show-icon"
-                    v-else
                     :style="{
                       color:
                         data.unified_attrib && data.unified_attrib.topic_color
@@ -72,15 +72,15 @@
                       marginLeft: '5px',
                     }"
                   >
-                    <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                    <svg-icon size="16" icon-class="eye-invisible" />
                   </i>
                 </li>
-                <li @click="handleShow('newWord')" v-if="colHasContent[1]">
+                <li v-if="colHasContent[1]" @click="handleShow('newWord')">
                   <span>生词</span
                   ><i
+                    v-if="showObj.newWord"
                     slot="suffix"
                     class="el-icon-view show-icon"
-                    v-if="showObj.newWord"
                     size="16"
                     :style="{
                       color:
@@ -91,9 +91,9 @@
                     }"
                   ></i>
                   <i
+                    v-else
                     slot="suffix"
                     class="show-icon"
-                    v-else
                     :style="{
                       color:
                         data.unified_attrib && data.unified_attrib.topic_color
@@ -102,15 +102,15 @@
                       marginLeft: '5px',
                     }"
                   >
-                    <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                    <svg-icon size="16" icon-class="eye-invisible" />
                   </i>
                 </li>
-                <li @click="handleShow('cixing')" v-if="colHasContent[2]">
+                <li v-if="colHasContent[2]" @click="handleShow('cixing')">
                   <span>词性</span
                   ><i
+                    v-if="showObj.cixing"
                     slot="suffix"
                     class="el-icon-view show-icon"
-                    v-if="showObj.cixing"
                     size="16"
                     :style="{
                       color:
@@ -121,9 +121,9 @@
                     }"
                   ></i>
                   <i
+                    v-else
                     slot="suffix"
                     class="show-icon"
-                    v-else
                     :style="{
                       color:
                         data.unified_attrib && data.unified_attrib.topic_color
@@ -132,15 +132,15 @@
                       marginLeft: '5px',
                     }"
                   >
-                    <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                    <svg-icon size="16" icon-class="eye-invisible" />
                   </i>
                 </li>
-                <li @click="handleShow('shiyi')" v-if="colHasContent[3]">
+                <li v-if="colHasContent[3]" @click="handleShow('shiyi')">
                   <span>释义</span
                   ><i
+                    v-if="showObj.shiyi"
                     slot="suffix"
                     class="el-icon-view show-icon"
-                    v-if="showObj.shiyi"
                     size="16"
                     :style="{
                       color:
@@ -151,9 +151,9 @@
                     }"
                   ></i>
                   <i
+                    v-else
                     slot="suffix"
                     class="show-icon"
-                    v-else
                     :style="{
                       color:
                         data.unified_attrib && data.unified_attrib.topic_color
@@ -162,15 +162,15 @@
                       marginLeft: '5px',
                     }"
                   >
-                    <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                    <svg-icon size="16" icon-class="eye-invisible" />
                   </i>
                 </li>
-                <li @click="handleShow('collocation')" v-if="colHasContent[4]">
+                <li v-if="colHasContent[4]" @click="handleShow('collocation')">
                   <span>搭配</span
                   ><i
+                    v-if="showObj.collocation"
                     slot="suffix"
                     class="el-icon-view show-icon"
-                    v-if="showObj.collocation"
                     size="16"
                     :style="{
                       color:
@@ -181,9 +181,9 @@
                     }"
                   ></i>
                   <i
+                    v-else
                     slot="suffix"
                     class="show-icon"
-                    v-else
                     :style="{
                       color:
                         data.unified_attrib && data.unified_attrib.topic_color
@@ -192,15 +192,15 @@
                       marginLeft: '5px',
                     }"
                   >
-                    <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                    <svg-icon size="16" icon-class="eye-invisible" />
                   </i>
                 </li>
-                <li @click="handleShow('liju')" v-if="colHasContent[5]">
+                <li v-if="colHasContent[5]" @click="handleShow('liju')">
                   <span>例句</span
                   ><i
+                    v-if="showObj.liju"
                     slot="suffix"
                     class="el-icon-view show-icon"
-                    v-if="showObj.liju"
                     size="16"
                     :style="{
                       color:
@@ -211,9 +211,9 @@
                     }"
                   ></i>
                   <i
+                    v-else
                     slot="suffix"
                     class="show-icon"
-                    v-else
                     :style="{
                       color:
                         data.unified_attrib && data.unified_attrib.topic_color
@@ -222,16 +222,16 @@
                       marginLeft: '5px',
                     }"
                   >
-                    <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                    <svg-icon size="16" icon-class="eye-invisible" />
                   </i>
                 </li>
                 <template v-for="(item, index) in data.addCol">
-                  <li @click="handleShow(item.key)" :key="index" v-if="colHasContent[6 + index]">
+                  <li v-if="colHasContent[6 + index]" :key="index" @click="handleShow(item.key)">
                     <span>{{ item.label }}</span
                     ><i
+                      v-if="showObj[item.key]"
                       slot="suffix"
                       class="el-icon-view show-icon"
-                      v-if="showObj[item.key]"
                       size="16"
                       :style="{
                         color:
@@ -242,9 +242,9 @@
                       }"
                     ></i>
                     <i
+                      v-else
                       slot="suffix"
                       class="show-icon"
-                      v-else
                       :style="{
                         color:
                           data.unified_attrib && data.unified_attrib.topic_color
@@ -253,14 +253,14 @@
                         marginLeft: '5px',
                       }"
                     >
-                      <svg-icon size="16" icon-class="eye-invisible"></svg-icon>
+                      <svg-icon size="16" icon-class="eye-invisible" />
                     </i>
                   </li>
                 </template>
               </ul>
               <SvgIcon
-                slot="reference"
                 v-show="is_list"
+                slot="reference"
                 icon-class="list2"
                 size="24"
                 :style="{
@@ -445,6 +445,7 @@
                               </span>
 
                               <span
+                                v-if="showObj.newWord"
                                 :style="{
                                   fontSize:
                                     data.unified_attrib && data.unified_attrib.font_size
@@ -453,7 +454,6 @@
                                   fontFamily:
                                     data.unified_attrib && data.unified_attrib.font ? data.unified_attrib.font : '',
                                 }"
-                                v-if="showObj.newWord"
                                 class="NPC-word-tab-common NPC-word-tab-word"
                                 v-html="convertText(sanitizeHTML(sItem.new_word))"
                               >
@@ -485,6 +485,7 @@
                             </div>
                             <span>
                               <p
+                                v-if="showObj.cixing"
                                 class="NPC-word-tab-common NPC-word-tab-cixing"
                                 :class="[/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(sItem.cixing) ? 'hasCn' : '']"
                                 :style="{
@@ -494,7 +495,6 @@
                                       : '',
                                 }"
                                 v-html="convertText(sanitizeHTML(sItem.cixing))"
-                                v-if="showObj.cixing"
                               ></p>
                               <span
                                 v-if="
@@ -575,13 +575,13 @@
                               <p
                                 class="NPC-word-tab-common NPC-word-tab-cixing"
                                 :class="[/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(sItem.cixing) ? 'hasCn' : '']"
-                                v-html="convertText(sanitizeHTML(sItem.cixing))"
                                 :style="{
                                   fontSize:
                                     data.unified_attrib && data.unified_attrib.font_size
                                       ? data.unified_attrib.font_size
                                       : '',
                                 }"
+                                v-html="convertText(sanitizeHTML(sItem.cixing))"
                               ></p>
 
                               <span
@@ -602,13 +602,13 @@
                         <span v-if="showObj.shiyi">
                           <p
                             class="NPC-word-tab-common NPC-word-tab-def"
-                            v-html="convertText(sanitizeHTML(sItem.def_str))"
                             :style="{
                               fontSize:
                                 data.unified_attrib && data.unified_attrib.font_size
                                   ? data.unified_attrib.font_size
                                   : '',
                             }"
+                            v-html="convertText(sanitizeHTML(sItem.def_str))"
                           ></p>
                           <span
                             v-if="
@@ -626,13 +626,13 @@
                           <span class="collocation"
                             ><span>{{ convertText('搭配:') }}</span
                             ><b
-                              v-html="convertText(sanitizeHTML(sItem.collocation))"
                               :style="{
                                 fontSize:
                                   data.unified_attrib && data.unified_attrib.font_size
                                     ? data.unified_attrib.font_size
                                     : '',
                               }"
+                              v-html="convertText(sanitizeHTML(sItem.collocation))"
                             ></b
                           ></span>
                           <span v-if="showLang" class="">
@@ -650,13 +650,13 @@
                             ><span>{{ convertText('例句:') }}</span>
                             <div>
                               <b
-                                v-html="convertText(sanitizeHTML(sItem.liju_list))"
                                 :style="{
                                   fontSize:
                                     data.unified_attrib && data.unified_attrib.font_size
                                       ? data.unified_attrib.font_size
                                       : '',
                                 }"
+                                v-html="convertText(sanitizeHTML(sItem.liju_list))"
                               ></b>
                             </div>
                           </span>
@@ -676,13 +676,13 @@
                               ><span>{{ convertText(itemC.label + ':') }}</span>
                               <div>
                                 <b
-                                  v-html="convertText(sanitizeHTML(sItem[itemC.key]))"
                                   :style="{
                                     fontSize:
                                       data.unified_attrib && data.unified_attrib.font_size
                                         ? data.unified_attrib.font_size
                                         : '',
                                   }"
+                                  v-html="convertText(sanitizeHTML(sItem[itemC.key]))"
                                 ></b>
                               </div>
                             </span>
@@ -828,6 +828,7 @@
                           </span>
 
                           <span
+                            v-if="showObj.newWord && colHasContent[1]"
                             :style="{
                               width: data.col_width[0].value + 'px',
                               flex: !data.col_width[0].value || data.col_width[0].value === '0' ? '1' : '',
@@ -838,7 +839,6 @@
                               fontFamily:
                                 data.unified_attrib && data.unified_attrib.font ? data.unified_attrib.font : '',
                             }"
-                            v-if="showObj.newWord && colHasContent[1]"
                             class="NPC-word-tab-common NPC-word-tab-word"
                             v-html="convertText(sanitizeHTML(sItem.new_word))"
                           >
@@ -876,11 +876,11 @@
                           </span>
                         </div>
                         <span
+                          v-if="showObj.cixing && colHasContent[2]"
                           :style="{
                             width: data.col_width[2].value + 'px',
                             flex: !data.col_width[2].value || data.col_width[2].value === '0' ? '1' : '',
                           }"
-                          v-if="showObj.cixing && colHasContent[2]"
                         >
                           <p
                             class="NPC-word-tab-common NPC-word-tab-cixing"
@@ -906,21 +906,21 @@
                           </span>
                         </span>
                         <span
+                          v-if="showObj.shiyi && colHasContent[3]"
                           :style="{
                             width: data.col_width[3].value + 'px',
                             flex: !data.col_width[3].value || data.col_width[3].value === '0' ? '1' : '',
                           }"
-                          v-if="showObj.shiyi && colHasContent[3]"
                         >
                           <p
                             class="NPC-word-tab-common NPC-word-tab-def"
-                            v-html="convertText(sanitizeHTML(sItem.def_str))"
                             :style="{
                               fontSize:
                                 data.unified_attrib && data.unified_attrib.font_size
                                   ? data.unified_attrib.font_size
                                   : '',
                             }"
+                            v-html="convertText(sanitizeHTML(sItem.def_str))"
                           ></p>
                           <span
                             v-if="
@@ -959,11 +959,11 @@
                         >
                         </span>
                         <span
+                          v-if="showObj.newWord && colHasContent[1]"
                           :style="{
                             width: data.col_width[0].value + 'px',
                             flex: !data.col_width[0].value || data.col_width[0].value === '0' ? '1' : '',
                           }"
-                          v-if="showObj.newWord && colHasContent[1]"
                         >
                           <p
                             class="NPC-word-tab-common NPC-word-tab-word"
@@ -1012,11 +1012,11 @@
                         >
                         </span>
                         <span
+                          v-if="showObj.cixing && colHasContent[2]"
                           :style="{
                             width: data.col_width[2].value + 'px',
                             flex: !data.col_width[2].value || data.col_width[2].value === '0' ? '1' : '',
                           }"
-                          v-if="showObj.cixing && colHasContent[2]"
                         >
                           <p
                             class="NPC-word-tab-common NPC-word-tab-cixing"
@@ -1043,21 +1043,21 @@
                           </span>
                         </span>
                         <span
+                          v-if="showObj.shiyi && colHasContent[3]"
                           :style="{
                             width: data.col_width[3].value + 'px',
                             flex: !data.col_width[3].value || data.col_width[3].value === '0' ? '1' : '',
                           }"
-                          v-if="showObj.shiyi && colHasContent[3]"
                         >
                           <p
                             class="NPC-word-tab-common NPC-word-tab-def"
-                            v-html="convertText(sanitizeHTML(sItem.def_str))"
                             :style="{
                               fontSize:
                                 data.unified_attrib && data.unified_attrib.font_size
                                   ? data.unified_attrib.font_size
                                   : '',
                             }"
+                            v-html="convertText(sanitizeHTML(sItem.def_str))"
                           ></p>
                           <span
                             v-if="
@@ -1099,16 +1099,17 @@
                           flex: !data.col_width[4].value || data.col_width[4].value === '0' ? '1' : '',
                         }"
                       >
-                        <span class="collocation" v-if="sItem.collocation"
+                        <span v-if="sItem.collocation"
+class="collocation"
                           ><span>{{ convertText('搭配:') }}</span
                           ><b
-                            v-html="convertText(sanitizeHTML(sItem.collocation))"
                             :style="{
                               fontSize:
                                 data.unified_attrib && data.unified_attrib.font_size
                                   ? data.unified_attrib.font_size
                                   : '',
                             }"
+                            v-html="convertText(sanitizeHTML(sItem.collocation))"
                           ></b
                         ></span>
                         <span v-if="showLang" class="">
@@ -1128,17 +1129,18 @@
                           flex: !data.col_width[5].value || data.col_width[5].value === '0' ? '1' : '',
                         }"
                       >
-                        <span class="collocation" v-if="sItem.liju_list"
+                        <span v-if="sItem.liju_list"
+class="collocation"
                           ><span>{{ convertText('例句:') }}</span>
                           <div>
                             <b
-                              v-html="convertText(sanitizeHTML(sItem.liju_list))"
                               :style="{
                                 fontSize:
                                   data.unified_attrib && data.unified_attrib.font_size
                                     ? data.unified_attrib.font_size
                                     : '',
                               }"
+                              v-html="convertText(sanitizeHTML(sItem.liju_list))"
                             ></b>
                           </div>
                         </span>
@@ -1154,25 +1156,26 @@
                       </div>
                       <template v-for="(itemC, indexC) in data.addCol">
                         <div
-                          :key="indexC"
                           v-if="showObj[itemC.key] && colHasContent[6 + indexC]"
+                          :key="indexC"
                           :style="{
                             width: data.col_width[6 + indexC].value + 'px',
                             flex:
                               !data.col_width[6 + indexC].value || data.col_width[6 + indexC].value === '0' ? '1' : '',
                           }"
                         >
-                          <span class="collocation" v-if="sItem[itemC.key]"
+                          <span v-if="sItem[itemC.key]"
+class="collocation"
                             ><span>{{ convertText(itemC.label + ':') }}</span>
                             <div>
                               <b
-                                v-html="convertText(sanitizeHTML(sItem[itemC.key]))"
                                 :style="{
                                   fontSize:
                                     data.unified_attrib && data.unified_attrib.font_size
                                       ? data.unified_attrib.font_size
                                       : '',
                                 }"
+                                v-html="convertText(sanitizeHTML(sItem[itemC.key]))"
                               ></b>
                             </div>
                           </span>
@@ -1559,8 +1562,8 @@ export default {
     Strockplay,
     writeTableZoom,
   },
-  inject: ['getCoursewareId'],
   mixins: [PreviewMixin],
+  inject: ['getCoursewareId'],
   props: {
     newData: {
       type: Object,
@@ -1623,10 +1626,8 @@ export default {
             height += this.data.unified_attrib.pinyin_size.replace('pt', '') * 1.5;
           }
         }
-      } else {
-        if (this.data.unified_attrib && this.data.unified_attrib.font_size) {
-          height = (this.data.unified_attrib.font_size.replace('pt', '') * 1.5 - (24 * 3) / 4) / 2;
-        }
+      } else if (this.data.unified_attrib && this.data.unified_attrib.font_size) {
+        height = (this.data.unified_attrib.font_size.replace('pt', '') * 1.5 - (24 * 3) / 4) / 2;
       }
       return `${height}pt`;
     },
@@ -1640,10 +1641,8 @@ export default {
             height += this.data.unified_attrib.pinyin_size.replace('pt', '') * 1.5;
           }
         }
-      } else {
-        if (this.data.unified_attrib && this.data.unified_attrib.font_size) {
-          height = (this.data.unified_attrib.font_size.replace('pt', '') * 1.5 - (16 * 3) / 4) / 2;
-        }
+      } else if (this.data.unified_attrib && this.data.unified_attrib.font_size) {
+        height = (this.data.unified_attrib.font_size.replace('pt', '') * 1.5 - (16 * 3) / 4) / 2;
       }
       return `${height}pt`;
     },
@@ -1855,17 +1854,17 @@ export default {
       let collocation_col = this.data.new_word_list.reduce((acc, itemss) => `${acc + itemss.collocation}`, '');
       let liju_list_col = this.data.new_word_list.reduce((acc, itemss) => `${acc + itemss.liju_list}`, '');
       this.colHasContent = [
-        pinyin_col ? true : false,
-        new_word_col ? true : false,
-        cixing_col ? true : false,
-        def_str_col ? true : false,
-        collocation_col ? true : false,
-        liju_list_col ? true : false,
+        Boolean(pinyin_col),
+        Boolean(new_word_col),
+        Boolean(cixing_col),
+        Boolean(def_str_col),
+        Boolean(collocation_col),
+        Boolean(liju_list_col),
       ];
       if (this.data.addCol) {
         this.data.addCol.forEach((item) => {
           let str_col = this.data.new_word_list.reduce((acc, itemss) => `${acc + itemss[item.key]}`, '');
-          this.colHasContent.push(str_col ? true : false);
+          this.colHasContent.push(Boolean(str_col));
         });
       }
       this.data.col_width.forEach((item, index) => {

+ 5 - 5
src/views/book/courseware/preview/components/new_word/components/WordPhraseDetail.vue

@@ -222,22 +222,22 @@
           </div>
         </div>
       </div>
-      <div class="bottom" v-if="data && data.endata">
+      <div v-if="data && data.endata" class="bottom">
         <div class="from">来自百度汉语</div>
         <div class="wordDetail">
           <p class="word">
             <span v-for="(fy, i) in data.endata.mean_list" :key="i"> [{{ fy.pinyin }}] </span>
-            <img v-if="data.endata.src_tts" @click="playAudio('audiosrc')" src="@/assets/play-red.png" alt="" />
+            <img v-if="data.endata.src_tts" src="@/assets/play-red.png" alt="" @click="playAudio('audiosrc')" />
             <audio ref="audiosrc" :src="data.endata.src_tts"></audio>
           </p>
           <div class="yinpin">
             <div>
               <span>{{ data.endata.dst }} </span>
-              <img v-if="data.endata.dst_tts" @click="playAudio('audiodst')" src="@/assets/play-red.png" alt="" />
+              <img v-if="data.endata.dst_tts" src="@/assets/play-red.png" alt="" @click="playAudio('audiodst')" />
               <audio ref="audiodst" :src="data.endata.dst_tts"></audio>
             </div>
           </div>
-          <div class="jieshu" v-for="(fy, i) in data.endata.mean_list" :key="i">
+          <div v-for="(fy, i) in data.endata.mean_list" :key="i" class="jieshu">
             <p v-if="data.endata.mean_list.length > 1">{{ fy.pinyin }}</p>
             <div v-for="(fys, j) in fy.exp_list" :key="j">
               <div class="jieshu-item">
@@ -245,7 +245,7 @@
                 <span>{{ fys.mean }}</span>
               </div>
 
-              <div class="jieshu-item" v-if="JSON.parse(fys.sentence).length > 0 && JSON.parse(fys.sentence)[0]">
+              <div v-if="JSON.parse(fys.sentence).length > 0 && JSON.parse(fys.sentence)[0]" class="jieshu-item">
                 <label style="opacity: 0">{{ j + 1 }}.</label>
                 <div>
                   <p v-for="(fyss, l) in JSON.parse(fys.sentence)" :key="l">{{ fyss }}</p>

+ 2 - 2
src/views/book/courseware/preview/components/new_word/components/writeTableZoom.vue

@@ -128,9 +128,9 @@
                   {{ data.pinyin.trim().split(' ')[indexh] ? data.pinyin.trim().split(' ')[indexh] : '&nbsp;' }}
                 </p>
                 <Strockplay
+                  v-if="itemh.hzDetail.hz_json"
                   class-name="adult-strockplay"
                   :Book_text="itemh.con"
-                  v-if="itemh.hzDetail.hz_json"
                   :play-storkes="true"
                   :stroke-play-color="attrib && attrib.topic_color ? attrib.topic_color : '#f44444'"
                   :stroke-color="'#000000'"
@@ -228,6 +228,7 @@ export default {
     AudioPlay,
     AudioLine,
   },
+  inject: ['convertText'],
   props: [
     'isPreview',
     'data',
@@ -240,7 +241,6 @@ export default {
     'url',
     'isMobile',
   ],
-  inject: ['convertText'],
   data() {
     // 这里存放数据
     return {

+ 1 - 1
src/views/book/courseware/preview/components/notes/NotesPreview.vue

@@ -133,11 +133,11 @@
                 </div>
               </div>
               <div
+                v-if="item.interpret"
                 class="NPC-notes-trans"
                 :style="{
                   fontSize: data.unified_attrib && data.unified_attrib.font_size ? data.unified_attrib.font_size : '',
                 }"
-                v-if="item.interpret"
                 v-html="convertText(sanitizeHTML(item.interpret))"
               ></div>
 

+ 19 - 20
src/views/login/forgotPwd.vue

@@ -2,9 +2,9 @@
   <div class="forgot-container">
     <h2 class="title-big">忘记密码</h2>
     <el-form
+      ref="loginCodeForm"
       label-position="top"
       label-width="80px"
-      ref="loginCodeForm"
       :model="loginCodeForm"
       class="form"
       :hide-required-asterisk="true"
@@ -15,8 +15,8 @@
           v-model="loginCodeForm.phone_or_email"
           autocomplete="off"
           placeholder="请输入邮箱"
-          @blur="handleTrim('loginCodeForm', 'phone_or_email')"
           maxlength="20"
+          @blur="handleTrim('loginCodeForm', 'phone_or_email')"
           @change="ChangeEmail"
         >
           <!-- <template slot="prepend">+86</template> -->
@@ -28,16 +28,15 @@
           autocomplete="off"
           placeholder="请输入验证码"
           class="code-input"
+          maxlength="20"
           @blur="handleTrim('loginCodeForm', 'code')"
           @input="handeleInput"
-          maxlength="20"
-        >
-        </el-input>
+        />
         <el-button
           type="primary"
-          @click="sendCode('time', 'phone_or_email', 'verificationCodeShow')"
           size="small"
           class="sendCode"
+          @click="sendCode('time', 'phone_or_email', 'verificationCodeShow')"
           @input="handeleInput"
         >
           {{ verificationCodeShow ? time + 's' : '发送验证码' }}
@@ -49,13 +48,13 @@
           :type="newPwdFlag ? 'text' : 'password'"
           autocomplete="off"
           placeholder="请输入密码"
-          @blur="handleTrim('loginCodeForm', 'newPwd')"
           maxlength="20"
+          @blur="handleTrim('loginCodeForm', 'newPwd')"
           @input="handeleInput"
         >
-          <i slot="suffix" class="el-icon-view show-icon" @click="changeIcon('newPwdFlag')" v-if="newPwdFlag"></i>
-          <i slot="suffix" class="show-icon" @click="changeIcon('newPwdFlag')" v-else>
-            <svg-icon icon-class="eye-invisible"></svg-icon>
+          <i v-if="newPwdFlag" slot="suffix" class="el-icon-view show-icon" @click="changeIcon('newPwdFlag')"></i>
+          <i v-else slot="suffix" class="show-icon" @click="changeIcon('newPwdFlag')">
+            <svg-icon icon-class="eye-invisible" />
           </i>
         </el-input>
         <p class="tips">不少于6位,且必须同时包含数字和大小写字母</p>
@@ -66,18 +65,18 @@
           :type="comfirmPwdFlag ? 'text' : 'password'"
           autocomplete="off"
           placeholder="请输入密码"
-          @blur="handleTrim('loginCodeForm', 'confirmPwd')"
           maxlength="20"
+          @blur="handleTrim('loginCodeForm', 'confirmPwd')"
           @input="handeleInput"
         >
           <i
+            v-if="comfirmPwdFlag"
             slot="suffix"
             class="el-icon-view show-icon"
             @click="changeIcon('comfirmPwdFlag')"
-            v-if="comfirmPwdFlag"
           ></i>
-          <i slot="suffix" class="show-icon" @click="changeIcon('comfirmPwdFlag')" v-else>
-            <svg-icon icon-class="eye-invisible"></svg-icon>
+          <i v-else slot="suffix" class="show-icon" @click="changeIcon('comfirmPwdFlag')">
+            <svg-icon icon-class="eye-invisible" />
           </i>
         </el-input>
         <p class="tips">再次输入密码,两次输入保持一致</p>
@@ -91,13 +90,13 @@
       <el-form-item class="btn-box">
         <el-button
           type="primary"
-          @click="onSubmitPassword('loginCodeForm')"
           size="small"
           :disabled="submitDis"
           :loading="loading"
+          @click="onSubmitPassword('loginCodeForm')"
           >确定</el-button
         >
-        <el-button @click="onCancel()" size="small">取消</el-button>
+        <el-button size="small" @click="onCancel()">取消</el-button>
       </el-form-item>
     </el-form>
   </div>
@@ -107,7 +106,7 @@
 import { ResetPassword } from '@/api/app';
 import { sendVerificationCode } from '@/api/user';
 export default {
-  name: 'forgotPwd',
+  name: 'ForgotPwd',
   props: [],
   data() {
     const validatePass = (rule, value, callback) => {
@@ -155,8 +154,8 @@ export default {
         ],
         confirmPwd: [{ required: true, validator: validatePass2, trigger: 'blur' }],
       },
-      time: 60, //获取验证码的时间
-      verificationCodeShow: false, //是否已经获取了验证码
+      time: 60, // 获取验证码的时间
+      verificationCodeShow: false, // 是否已经获取了验证码
       loading: false,
       timer: null,
       submitDis: true,
@@ -165,6 +164,7 @@ export default {
     };
   },
   watch: {},
+  mounted() {},
   methods: {
     // 验证邮箱
     ChangeEmail() {
@@ -298,7 +298,6 @@ export default {
       this[flag] = !this[flag];
     },
   },
-  mounted() {},
 };
 </script>
 

+ 16 - 20
src/views/personal_workbench/pinyin_correction_list_manager/index.vue

@@ -22,8 +22,8 @@
         v-if="tableHeight"
         :data="list"
         :max-height="tableHeight + 'px'"
-        @sort-change="handleSort"
         :default-sort="dataSort"
+        @sort-change="handleSort"
       >
         <el-table-column
           type="index"
@@ -35,11 +35,9 @@
           class-name="index-column"
         />
         <el-table-column prop="word" label="词汇" align="center" header-align="center" sortable />
-        <el-table-column min-width="100" prop="pos_name" label="词性" align="center" header-align="center" sortable>
-        </el-table-column>
+        <el-table-column min-width="100" prop="pos_name" label="词性" align="center" header-align="center" sortable />
 
-        <el-table-column min-width="100" prop="pinyin" label="拼音" align="center" header-align="center" sortable>
-        </el-table-column>
+        <el-table-column min-width="100" prop="pinyin" label="拼音" align="center" header-align="center" sortable />
         <!-- <el-table-column
           min-width="100"
           prop="pinyin_lt"
@@ -74,7 +72,7 @@
         <el-table-column prop="operation" label="操作" fixed="right" width="200" align="center" header-align="center">
           <template slot-scope="{ row }">
             <span class="link" @click="editTemplate(row)">编辑</span>
-            <span class="link" @click="copyPinyin(row)" v-if="row.storage_type !== 2">写入全域库</span>
+            <span v-if="row.storage_type !== 2" class="link" @click="copyPinyin(row)">写入全域库</span>
             <span class="link danger" @click="deleteTemplate(row)">删除</span>
           </template>
         </el-table-column>
@@ -123,10 +121,10 @@
             <tr v-for="(item, index) in tableData" :key="'tableData' + index">
               <td
                 v-for="(tdItem, tdIndex) in item"
-                :key="'td' + index + tdIndex"
                 :id="'td' + index + tdIndex"
-                @click="CopyToClipboard('td' + index + tdIndex)"
+                :key="'td' + index + tdIndex"
                 style="font-family: 'Sans-GBNPC'; background: #fff"
+                @click="CopyToClipboard('td' + index + tdIndex)"
               >
                 {{ tdItem }}
               </td>
@@ -263,15 +261,13 @@ export default {
       let order_column_list = [];
       if (Object.keys(this.dataSort).length === 0) {
         order_column_list = ['create_time:desc'];
+      } else if (this.dataSort.order == 'descending') {
+        order_column_list = [`${this.dataSort.prop}:desc`];
+      } else if (this.dataSort.order == 'ascending') {
+        // 升序不传值
+        order_column_list = [this.dataSort.prop];
       } else {
-        if (this.dataSort.order == 'descending') {
-          order_column_list = [this.dataSort.prop + ':desc'];
-        } else if (this.dataSort.order == 'ascending') {
-          // 升序不传值
-          order_column_list = [this.dataSort.prop];
-        } else {
-          order_column_list = ['create_time:desc'];
-        }
+        order_column_list = ['create_time:desc'];
       }
       this.form.order_column_list = order_column_list;
       PageQueryPinyinCorrectionListAdmin(this.form).then(({ total_count, word_list }) => {
@@ -393,10 +389,10 @@ export default {
         .catch(() => {});
     },
     CopyToClipboard(element) {
-      var doc = document,
-        text = doc.getElementById(element),
-        range,
-        selection;
+      let doc = document;
+      let text = doc.getElementById(element);
+      let range;
+      let selection;
       if (doc.body.createTextRange) {
         range = doc.body.createTextRange();
         range.moveToElementText(text);

+ 16 - 20
src/views/personal_workbench/pinyin_correction_list_org/index.vue

@@ -22,8 +22,8 @@
         v-if="tableHeight"
         :data="list"
         :max-height="tableHeight + 'px'"
-        @sort-change="handleSort"
         :default-sort="dataSort"
+        @sort-change="handleSort"
       >
         <el-table-column
           type="index"
@@ -35,11 +35,9 @@
           class-name="index-column"
         />
         <el-table-column prop="word" label="词汇" align="center" header-align="center" sortable />
-        <el-table-column min-width="100" prop="pos_name" label="词性" align="center" header-align="center" sortable>
-        </el-table-column>
+        <el-table-column min-width="100" prop="pos_name" label="词性" align="center" header-align="center" sortable />
 
-        <el-table-column min-width="100" prop="pinyin" label="拼音" align="center" header-align="center" sortable>
-        </el-table-column>
+        <el-table-column min-width="100" prop="pinyin" label="拼音" align="center" header-align="center" sortable />
         <!-- <el-table-column
           min-width="100"
           prop="pinyin_lt"
@@ -74,7 +72,7 @@
         <el-table-column prop="operation" label="操作" fixed="right" width="200" align="center" header-align="center">
           <template slot-scope="{ row }">
             <span class="link" @click="editTemplate(row)">编辑</span>
-            <span class="link" @click="copyPinyin(row)" v-if="row.storage_type === 0">写入机构库</span>
+            <span v-if="row.storage_type === 0" class="link" @click="copyPinyin(row)">写入机构库</span>
             <span class="link danger" @click="deleteTemplate(row)">删除</span>
           </template>
         </el-table-column>
@@ -123,10 +121,10 @@
             <tr v-for="(item, index) in tableData" :key="'tableData' + index">
               <td
                 v-for="(tdItem, tdIndex) in item"
-                :key="'td' + index + tdIndex"
                 :id="'td' + index + tdIndex"
-                @click="CopyToClipboard('td' + index + tdIndex)"
+                :key="'td' + index + tdIndex"
                 style="font-family: 'Sans-GBNPC'; background: #fff"
+                @click="CopyToClipboard('td' + index + tdIndex)"
               >
                 {{ tdItem }}
               </td>
@@ -259,15 +257,13 @@ export default {
       let order_column_list = [];
       if (Object.keys(this.dataSort).length === 0) {
         order_column_list = ['create_time:desc'];
+      } else if (this.dataSort.order == 'descending') {
+        order_column_list = [`${this.dataSort.prop}:desc`];
+      } else if (this.dataSort.order == 'ascending') {
+        // 升序不传值
+        order_column_list = [this.dataSort.prop];
       } else {
-        if (this.dataSort.order == 'descending') {
-          order_column_list = [this.dataSort.prop + ':desc'];
-        } else if (this.dataSort.order == 'ascending') {
-          // 升序不传值
-          order_column_list = [this.dataSort.prop];
-        } else {
-          order_column_list = ['create_time:desc'];
-        }
+        order_column_list = ['create_time:desc'];
       }
       this.form.order_column_list = order_column_list;
       PageQueryPinyinCorrectionListOrg(this.form).then(({ total_count, word_list }) => {
@@ -389,10 +385,10 @@ export default {
         .catch(() => {});
     },
     CopyToClipboard(element) {
-      var doc = document,
-        text = doc.getElementById(element),
-        range,
-        selection;
+      let doc = document;
+      let text = doc.getElementById(element);
+      let range;
+      let selection;
       if (doc.body.createTextRange) {
         range = doc.body.createTextRange();
         range.moveToElementText(text);

+ 9 - 16
src/views/personal_workbench/template_list_admin/index.vue

@@ -39,31 +39,24 @@
             {{ row.label_list.join('、') }}
           </template>
         </el-table-column>
-        <el-table-column prop="type_name" width="90" label="结构类型" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="content_type_name" width="90" label="内容类型" align="center" header-align="center">
-        </el-table-column>
+        <el-table-column prop="type_name" width="90" label="结构类型" align="center" header-align="center" />
+        <el-table-column prop="content_type_name" width="90" label="内容类型" align="center" header-align="center" />
         <!-- <el-table-column prop="memo" label="描述" align="center" header-align="center" /> -->
 
-        <el-table-column width="70" prop="storage_type_name" label="来源" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column width="120" prop="status_name" label="状态" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column width="80" prop="use_scope_name" label="使用范围" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="request_status_name" width="120" label="申请状态" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="org_name" width="120" label="机构" align="center" header-align="center">
-        </el-table-column>
+        <el-table-column width="70" prop="storage_type_name" label="来源" align="center" header-align="center" />
+        <el-table-column width="120" prop="status_name" label="状态" align="center" header-align="center" />
+        <el-table-column width="80" prop="use_scope_name" label="使用范围" align="center" header-align="center" />
+        <el-table-column prop="request_status_name" width="120" label="申请状态" align="center" header-align="center" />
+        <el-table-column prop="org_name" width="120" label="机构" align="center" header-align="center" />
         <el-table-column prop="create_time" label="创建时间" align="center" width="180" header-align="center" />
 
         <el-table-column prop="operation" label="操作" fixed="right" width="230" align="center" header-align="center">
           <template slot-scope="{ row }">
             <span class="link" @click="previewTemplate(row)">预览</span>
             <span
-              class="link"
               v-for="(item, index) in row.cur_can_operate_button_list"
               :key="index"
+              class="link"
               @click="handleOperate(row, item)"
               >{{ operate_button[item] }}</span
             >
@@ -73,7 +66,7 @@
               <span class="link" @click="handleAudit(row, 'false')">审核拒绝</span>
             </template>
             <span class="link" @click="handleRename(row)">重命名</span>
-            <span class="link danger" v-if="row.is_can_delete === 'true'" @click="deleteTemplate(row)">删除</span>
+            <span v-if="row.is_can_delete === 'true'" class="link danger" @click="deleteTemplate(row)">删除</span>
           </template>
         </el-table-column>
       </el-table>

+ 8 - 14
src/views/personal_workbench/template_list_manager/index.vue

@@ -39,29 +39,23 @@
             {{ row.label_list.join('、') }}
           </template>
         </el-table-column>
-        <el-table-column prop="type_name" width="90" label="结构类型" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="content_type_name" width="90" label="内容类型" align="center" header-align="center">
-        </el-table-column>
+        <el-table-column prop="type_name" width="90" label="结构类型" align="center" header-align="center" />
+        <el-table-column prop="content_type_name" width="90" label="内容类型" align="center" header-align="center" />
         <!-- <el-table-column prop="memo" label="描述" align="center" header-align="center" /> -->
 
-        <el-table-column width="70" prop="storage_type_name" label="来源" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column width="120" prop="status_name" label="状态" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column width="80" prop="use_scope_name" label="使用范围" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="request_status_name" width="120" label="申请状态" align="center" header-align="center">
-        </el-table-column>
+        <el-table-column width="70" prop="storage_type_name" label="来源" align="center" header-align="center" />
+        <el-table-column width="120" prop="status_name" label="状态" align="center" header-align="center" />
+        <el-table-column width="80" prop="use_scope_name" label="使用范围" align="center" header-align="center" />
+        <el-table-column prop="request_status_name" width="120" label="申请状态" align="center" header-align="center" />
         <el-table-column prop="create_time" label="创建时间" align="center" width="180" header-align="center" />
 
         <el-table-column prop="operation" label="操作" fixed="right" width="230" align="center" header-align="center">
           <template slot-scope="{ row }">
             <span class="link" @click="previewTemplate(row)">预览</span>
             <span
-              class="link"
               v-for="(item, index) in row.cur_can_operate_button_list"
               :key="index"
+              class="link"
               @click="handleOperate(row, item)"
               >{{ operate_button[item] }}</span
             >
@@ -71,7 +65,7 @@
               <span class="link" @click="handleAudit(row, 'false')">审核拒绝</span>
             </template>
             <span class="link" @click="handleRename(row)">重命名</span>
-            <span class="link danger" v-if="row.is_can_delete === 'true'" @click="deleteTemplate(row)">删除</span>
+            <span v-if="row.is_can_delete === 'true'" class="link danger" @click="deleteTemplate(row)">删除</span>
           </template>
         </el-table-column>
       </el-table>

+ 10 - 15
src/views/personal_workbench/template_list_org/index.vue

@@ -35,28 +35,22 @@
             {{ row.label_list.join('、') }}
           </template>
         </el-table-column>
-        <el-table-column prop="type_name" width="90" label="结构类型" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="content_type_name" width="90" label="内容类型" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="storage_type_name" width="70" label="来源" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column width="120" prop="status_name" label="状态" align="center" header-align="center">
-        </el-table-column>
-        <el-table-column prop="use_scope_name" width="90" label="使用范围" align="center" header-align="center">
-        </el-table-column>
+        <el-table-column prop="type_name" width="90" label="结构类型" align="center" header-align="center" />
+        <el-table-column prop="content_type_name" width="90" label="内容类型" align="center" header-align="center" />
+        <el-table-column prop="storage_type_name" width="70" label="来源" align="center" header-align="center" />
+        <el-table-column width="120" prop="status_name" label="状态" align="center" header-align="center" />
+        <el-table-column prop="use_scope_name" width="90" label="使用范围" align="center" header-align="center" />
         <!-- <el-table-column prop="memo" label="描述" align="center" header-align="center" /> -->
-        <el-table-column prop="request_status_name" width="120" label="申请状态" align="center" header-align="center">
-        </el-table-column>
+        <el-table-column prop="request_status_name" width="120" label="申请状态" align="center" header-align="center" />
         <el-table-column prop="create_time" label="创建时间" align="center" width="180" header-align="center" />
 
         <el-table-column prop="operation" label="操作" fixed="right" width="230" align="center" header-align="center">
           <template slot-scope="{ row }">
             <span class="link" @click="previewTemplate(row)">预览</span>
             <span
-              class="link"
               v-for="(item, index) in row.cur_can_operate_button_list"
               :key="index"
+              class="link"
               @click="handleOperate(row, item)"
               >{{ operate_button[item] }}</span
             >
@@ -66,7 +60,7 @@
               <span class="link" @click="handleAudit(row, 'false')">审核拒绝</span>
             </template>
             <span class="link" @click="handleRename(row)">重命名</span>
-            <span class="link danger" v-if="row.is_can_delete === 'true'" @click="deleteTemplate(row)">删除</span>
+            <span v-if="row.is_can_delete === 'true'" class="link danger" @click="deleteTemplate(row)">删除</span>
           </template>
         </el-table-column>
       </el-table>
@@ -96,7 +90,8 @@
           >
             <el-option v-for="(item, index) in options" :key="item.id" :label="item.name" :value="item.name">
               <span style="float: left">{{ item.name }}</span>
-              <span style="float: right; font-size: 12px; color: #8492a6" @click.stop="handleDeleteLabel(item, index)"
+              <span
+style="float: right; font-size: 12px; color: #8492a6" @click.stop="handleDeleteLabel(item, index)"
                 >删除</span
               >
             </el-option>

+ 1 - 1
src/views/system_config/voiceengine/index.vue

@@ -49,7 +49,7 @@
 import { GetSysConfig_SpeechEngine, SetSysConfig_SpeechEngine } from '@/api/config';
 import MenuPage from '../common/menu.vue';
 export default {
-  name: 'voiceEngineConfig',
+  name: 'VoiceEngineConfig',
   components: { MenuPage },
   data() {
     return {