瀏覽代碼

Merge branch 'master' of http://60.205.254.193:3000/GCLS/GCLS_Page_Book_Component_NPC

# Conflicts:
#	vue.config.js
gcj 2 年之前
父節點
當前提交
c3fdccc4e2
共有 48 個文件被更改,包括 648 次插入314 次删除
  1. 二進制
      src/assets/NPC/simple1.png
  2. 二進制
      src/assets/NPC/simple2.png
  3. 二進制
      src/assets/NPC/simple3.png
  4. 二進制
      src/assets/NPC/simple4.png
  5. 二進制
      src/assets/NPC/simple5.png
  6. 二進制
      src/assets/NPC/simple6.png
  7. 二進制
      src/assets/NPC/simple7.png
  8. 二進制
      src/assets/NPC/simple8.png
  9. 1 1
      src/components/Adult/Preview.vue
  10. 18 1
      src/components/Adult/common/NewordPhraseModule.vue
  11. 82 39
      src/components/Adult/common/SegwordConfig.vue
  12. 1 2
      src/components/Adult/common/SentenceSegTemp.vue
  13. 23 8
      src/components/Adult/inputModules/ArticleTemChs/index.vue
  14. 3 1
      src/components/Adult/inputModules/Catelog.vue
  15. 1 1
      src/components/Adult/inputModules/DialogueAnswerChs/index.vue
  16. 4 2
      src/components/Adult/inputModules/DialogueArticleChs/components/ParagraphChs.vue
  17. 51 3
      src/components/Adult/inputModules/DialogueArticleChs/components/RoleChs.vue
  18. 77 7
      src/components/Adult/inputModules/DialogueArticleChs/index.vue
  19. 4 2
      src/components/Adult/inputModules/DialogueTem/components/ParagraphChs.vue
  20. 37 0
      src/components/Adult/inputModules/DialogueTem/components/RoleChs.vue
  21. 1 1
      src/components/Adult/inputModules/DialogueTem/components/SegbywordChs.vue
  22. 11 3
      src/components/Adult/inputModules/DialogueTem/index.vue
  23. 55 3
      src/components/Adult/inputModules/Neword.vue
  24. 14 1
      src/components/Adult/inputModules/Notes.vue
  25. 22 75
      src/components/Adult/preview/ArticleViewChs/NormalModelChs.vue
  26. 27 21
      src/components/Adult/preview/ArticleViewChs/PhraseModelChs.vue
  27. 3 1
      src/components/Adult/preview/ArticleViewChs/Practicechs.vue
  28. 27 20
      src/components/Adult/preview/ArticleViewChs/WordModelChs.vue
  29. 4 4
      src/components/Adult/preview/DialogueArticleViewChs/AnswerModel.vue
  30. 4 71
      src/components/Adult/preview/DialogueArticleViewChs/NormalModelChs.vue
  31. 4 2
      src/components/Adult/preview/DialogueArticleViewChs/PhraseModelChs.vue
  32. 3 1
      src/components/Adult/preview/DialogueArticleViewChs/Practicechs.vue
  33. 6 1
      src/components/Adult/preview/DialogueArticleViewChs/RoleChs.vue
  34. 4 2
      src/components/Adult/preview/DialogueArticleViewChs/WordModelChs.vue
  35. 1 1
      src/components/Adult/preview/HeaderSparate/index.vue
  36. 3 3
      src/components/Adult/preview/InputHasRecord.vue
  37. 1 1
      src/components/Adult/preview/Notes.vue
  38. 8 8
      src/components/Adult/preview/Picture.vue
  39. 1 1
      src/components/Adult/preview/SentenceInput.vue
  40. 1 1
      src/components/Adult/preview/TableView.vue
  41. 1 1
      src/components/Adult/preview/TextInputRecord.vue
  42. 1 1
      src/components/Adult/preview/WordPhrase.vue
  43. 2 2
      src/components/Adult/preview/components/WordPhraseDetail.vue
  44. 2 0
      src/components/Adult/preview/components/Wordcard.vue
  45. 119 2
      src/views/adultInput.vue
  46. 13 12
      src/views/courseList.vue
  47. 5 5
      src/views/discountCodeList.vue
  48. 3 3
      vue.config.js

二進制
src/assets/NPC/simple1.png


二進制
src/assets/NPC/simple2.png


二進制
src/assets/NPC/simple3.png


二進制
src/assets/NPC/simple4.png


二進制
src/assets/NPC/simple5.png


二進制
src/assets/NPC/simple6.png


二進制
src/assets/NPC/simple7.png


二進制
src/assets/NPC/simple8.png


+ 1 - 1
src/components/Adult/Preview.vue

@@ -1005,7 +1005,7 @@ export default {
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
   created() {
-    console.log("2023-01-03");
+    console.log("2023-02-10");
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {

+ 18 - 1
src/components/Adult/common/NewordPhraseModule.vue

@@ -17,6 +17,20 @@
           <el-button type="danger" size="small" @click="deleteGroup2"
             >删除</el-button
           >
+          <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-top"
+                @click="moveElement(curQueItem, 'up')"
+                >上移</el-button
+            >
+            <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-bottom"
+                @click="moveElement(curQueItem, 'down')"
+                >下移</el-button
+            >
         </div>
 
         <div
@@ -140,7 +154,7 @@ export default {
   components: {
     Upload,
   },
-  props: ["curQue", "curQueItem", "index", "sIndex", "type", "deleteGroup"],
+  props: ["curQue", "curQueItem", "index", "sIndex", "type", "deleteGroup", "moveElement2"],
   data() {
     return {
       mp3Number: 1,
@@ -216,6 +230,9 @@ export default {
     deleteGroup2() {
       this.deleteGroup(this.index, this.sIndex);
     },
+    moveElement(dItem, type) {
+      this.moveElement2(dItem, type, this.index, this.sIndex)
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},

+ 82 - 39
src/components/Adult/common/SegwordConfig.vue

@@ -1,28 +1,53 @@
 <!--  -->
 <template>
   <div class="seg-word-config">
-    <div class="adult-book-input-item" v-if="curQue&&type!='sentence_segtemp_chs'&&type!='sort_chs'&&type!='CourseStart_chs'&&type!='ligature_chs'" style="margin-top:10px">
-        <span class="adult-book-lable">字的大小:</span>
-        <el-radio-group v-model="curQue.resetFontsize" @input="changeResetFontsize">
-            <el-radio label="12px">12px</el-radio>
-            <el-radio label="16px">16px</el-radio>
-            <el-radio label="20px">20px</el-radio>
-            <el-radio label="24px">24px</el-radio>
-            <el-radio label="28px">28px</el-radio>
-        </el-radio-group>
+    <div
+      class="adult-book-input-item"
+      v-if="
+        curQue &&
+        type != 'sentence_segtemp_chs' &&
+        type != 'sort_chs' &&
+        type != 'CourseStart_chs' &&
+        type != 'ligature_chs'
+      "
+      style="margin-top: 10px"
+    >
+      <span class="adult-book-lable">字的大小:</span>
+      <el-radio-group
+        v-model="curQue.resetFontsize"
+        @input="changeResetFontsize"
+      >
+        <el-radio label="12px">12px</el-radio>
+        <el-radio label="16px">16px</el-radio>
+        <el-radio label="20px">20px</el-radio>
+        <el-radio label="24px">24px</el-radio>
+        <el-radio label="28px">28px</el-radio>
+      </el-radio-group>
+    </div>
+    <div
+      class="adult-book-input-item"
+      v-if="
+        curQue &&
+        type != 'sentence_segtemp_chs' &&
+        type != 'sort_chs' &&
+        type != 'CourseStart_chs' &&
+        type != 'ligature_chs'
+      "
+    >
+      <span class="adult-book-lable">字体:</span>
+      <el-radio-group
+        v-model="curQue.resetFontfamily"
+        @input="changeResetFontfamily"
+      >
+        <el-radio
+          v-for="(item, index) in fontFamilyList"
+          :key="'fontFamilyList' + index"
+          :label="item.value"
+        >
+          <span>{{ item.name }}</span>
+        </el-radio>
+      </el-radio-group>
     </div>
-    <div class="adult-book-input-item" v-if="curQue&&type!='sentence_segtemp_chs'&&type!='sort_chs'&&type!='CourseStart_chs'&&type!='ligature_chs'">
-            <span class="adult-book-lable">字体:</span>
-            <el-radio-group v-model="curQue.resetFontfamily" @input="changeResetFontfamily">
-              <el-radio
-                v-for="(item, index) in fontFamilyList"
-                :key="'fontFamilyList' + index"
-                :label="item.value"
-              >
-                <span>{{ item.name }}</span>
-              </el-radio>
-            </el-radio-group>
-          </div>
     <el-table :data="data" border style="width: 75%">
       <el-table-column prop="chs" label="词" width="120"> </el-table-column>
       <el-table-column label="拼音" width="220">
@@ -41,7 +66,14 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column label="配置" v-if="type!='sort_chs'&&type!='CourseStart_chs'&&type!='ligature_chs'">
+      <el-table-column
+        label="配置"
+        v-if="
+          type != 'sort_chs' &&
+          type != 'CourseStart_chs' &&
+          type != 'ligature_chs'
+        "
+      >
         <template slot-scope="scope">
           <div class="adult-book-input-item">
             <span class="adult-book-lable">字的大小:</span>
@@ -87,7 +119,17 @@
             <span class="adult-book-lable">设置下划线:</span>
             <el-checkbox v-model="scope.row.underLine">显示下划线</el-checkbox>
           </div>
-          <div class="adult-book-input-item" v-if="type!='dialogue_answer_chs'&&type!='sentence_input_chs'&&type!='sentence_judge_chs'&&type!='sentence_record_chs'&&type!='sentence_input_record_chs'&&type!='sentence_listen_read_chs'">
+          <div
+            class="adult-book-input-item"
+            v-if="
+              type != 'dialogue_answer_chs' &&
+              type != 'sentence_input_chs' &&
+              type != 'sentence_judge_chs' &&
+              type != 'sentence_record_chs' &&
+              type != 'sentence_input_record_chs' &&
+              type != 'sentence_listen_read_chs'
+            "
+          >
             <span class="adult-book-lable">设置间距:</span>
             <el-checkbox-group v-model="scope.row.wordPadding">
               <el-checkbox
@@ -160,28 +202,29 @@ export default {
       let result = pinyinUtil.getPinyin(item.chs);
       item.pinyin = result;
     },
-    changeResetFontsize(value){
-        this.data.forEach(item => {
-            item.fontSize = value
-        });
+    changeResetFontsize(value) {
+      this.data.forEach((item) => {
+        item.fontSize = value;
+      });
+    },
+    changeResetFontfamily(value) {
+      this.data.forEach((item) => {
+        item.fontFamily = value;
+      });
     },
-    changeResetFontfamily(value){
-        this.data.forEach(item => {
-            item.fontFamily = value
-        });
-    }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
-    if(this.curQue){
-        if (!this.curQue.hasOwnProperty("resetFontsize")) {
-            this.$set(this.curQue, "resetFontsize", '');
-        }
-        if (!this.curQue.hasOwnProperty("resetFontfamily")) {
-            this.$set(this.curQue, "resetFontfamily", 'FZJCGFKTK');
-        }
+    consoel.log(this.data);
+    if (this.curQue) {
+      if (!this.curQue.hasOwnProperty("resetFontsize")) {
+        this.$set(this.curQue, "resetFontsize", "");
+      }
+      if (!this.curQue.hasOwnProperty("resetFontfamily")) {
+        this.$set(this.curQue, "resetFontfamily", "FZJCGFKTK");
+      }
     }
   },
   beforeCreate() {}, //生命周期 - 创建之前

+ 1 - 2
src/components/Adult/common/SentenceSegTemp.vue

@@ -328,8 +328,7 @@ export default {
         this.detail.detail.splice(index + 1, 1);
       }
       if (type == "down" && index < this.detail.detail.length - 1) {
-        this.detail.detail.splice(index + 1, 0, obj);
-        this.detail.detail.splice(index, 1);
+        this.detail.detail[index] = this.detail.detail.splice(index + 1, 1, this.detail.detail[index])[0]
       }
     },
     //功能设置

+ 23 - 8
src/components/Adult/inputModules/ArticleTemChs/index.vue

@@ -308,14 +308,13 @@ export default {
     },
     //删除生成的mp3
     delMp3() {
-        this.$confirm("确定要删除吗?", "提示", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning",
-        })
-        .then(() => {
-            this.curQue.mp3_list.splice(0, 1);
-        })
+      this.$confirm("确定要删除吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        this.curQue.mp3_list.splice(0, 1);
+      });
     },
     // 保存校对
     saveCompare() {
@@ -444,12 +443,28 @@ export default {
         this.loading = false;
         let list = res.data.result.list;
         this.$set(this.curQue.detail[paraIndex], "segList", list);
+        this.setWordsList(list, paraIndex);
         console.log(this.curQue);
         this.segList = list;
         this.isByWord = true;
         this.paraIndex = paraIndex;
       });
     },
+    setWordsList(list, paraIndex) {
+      let wordsList = [];
+      list.forEach((item, index) => {
+        let sentArr = [];
+        item.map((sItem) => {
+          let obj = {
+            chs: sItem,
+            pinyin: "",
+          };
+          sentArr.push(obj);
+        });
+        wordsList.push(sentArr);
+      });
+      this.$set(this.curQue.detail[paraIndex], "wordsList", wordsList);
+    },
     // 上传音频文件
     handleChange(file, fileList) {
       let _this = this;

+ 3 - 1
src/components/Adult/inputModules/Catelog.vue

@@ -107,7 +107,7 @@
         </div>
       </div>
     </Tree>
-    <el-dialog :visible.sync="dialogFlag" :title="dialogTitle" width="40%">
+    <el-dialog :visible.sync="dialogFlag" :title="dialogTitle" :close-on-click-modal="false" width="40%">
       <div>
         <el-form ref="form" :model="formDialog" label-width="80px">
           <el-form-item label="节点名称">
@@ -202,6 +202,7 @@ export default {
     async currentTreeID(newval, oldval) {
       if (newval) {
         this.activeIndex = newval;
+        this.pidList = []
         await this.unfoldData(this.activeIndex, this.treeData);
         await this.unfoldFather(this.treeData);
       }
@@ -548,6 +549,7 @@ export default {
           }
           const datas = {
             id: data.id,
+            is_force_delete: "true"
           };
           this.loading = true;
           getContent(MethodName, datas)

+ 1 - 1
src/components/Adult/inputModules/DialogueAnswerChs/index.vue

@@ -76,7 +76,7 @@
       width="80%"
       top="10px"
     >
-      <DialogueTem :curQue="curQue.list[listIndex]" :listIndex="listIndex" :type="curQue.type" />
+      <DialogueTem v-if="dialogVisible" :curQue="curQue.list[listIndex]" :listIndex="listIndex" :type="curQue.type" />
       <span slot="footer" class="dialog-footer">
         <el-button @click="cancleDialogue">取 消</el-button>
         <el-button type="primary" @click="cancleDialogue">确 定</el-button>

+ 4 - 2
src/components/Adult/inputModules/DialogueArticleChs/components/ParagraphChs.vue

@@ -144,13 +144,15 @@ export default {
     },
     initRoleList() {
       let roleList = JSON.parse(JSON.stringify(this.curQue.roleList));
-      roleList = roleList.map((item) => {
+      roleList = roleList.map((item,index) => {
         if (item.detail.fullName) {
           item.label = item.detail.fullName;
         } else if (item.role) {
           item.label = item.role;
         } else if (item.img_list.length > 0) {
-          item.label = "头像" + (item.id + 1);
+          item.label = "角色" + (index + 1);
+        } else if(item.simpleHead!==''){
+           item.label = "角色" + (index + 1); 
         }
         return item;
       });

+ 51 - 3
src/components/Adult/inputModules/DialogueArticleChs/components/RoleChs.vue

@@ -1,6 +1,6 @@
 <!--  -->
 <template>
-  <div class="NPC-da-role">
+  <div class="NPC-da-role" v-if="curRole">
     <div class="adult-book-input-item NPC-da-role-flex">
       <span class="adult-book-lable">角色:</span>
       <el-input
@@ -23,6 +23,17 @@
       />
     </div>
     <div class="adult-book-input-item">
+      <span class="adult-book-lable">简易头像:</span>
+      <el-radio-group v-model="curRole.simpleHead">
+        <el-radio :label="itemS.value" v-for="(itemS,indexS) in simpleHead" :key="indexS">
+            <img :src="require('../../../../../assets/NPC/simple'+(indexS+1)+'.png')" style="width:40px" />
+        </el-radio>
+        <el-radio label="">
+            空
+        </el-radio>
+      </el-radio-group>
+    </div>
+    <div class="adult-book-input-item">
       <span class="adult-book-lable">姓名:</span>
       <el-input
         class="NPC-role-input"
@@ -81,10 +92,46 @@ export default {
       },
       imgNumber: 1,
       loading: false,
+      simpleHead: [
+        {
+            value: 0
+        },
+        {
+            value: 1
+        },
+        {
+            value: 2
+        },
+        {
+            value: 3
+        },
+        {
+            value: 4
+        },
+        {
+            value: 5
+        },
+        {
+            value: 6
+        },
+        {
+            value: 7
+        },
+      ]
     };
   },
   computed: {},
-  watch: {},
+  watch: {
+    curRole:{
+      handler: function (val, oldVal) {
+        if (val) {
+          this.fileCon.img_list = this.curRole.img_list;
+        }
+      },
+      // 深度观察监听
+      deep: true,
+    },
+  },
   //方法集合
   methods: {
     onBlur(item, field) {
@@ -165,7 +212,8 @@ export default {
     },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created() {},
+  created() {
+  },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
     if (this.curRole) {

+ 77 - 7
src/components/Adult/inputModules/DialogueArticleChs/index.vue

@@ -99,10 +99,19 @@
               rItem.role
             }}</span>
             <img
-              v-else
+              v-else-if="rItem.img_list.length > 0"
               :src="rItem.img_list[0] && rItem.img_list[0].url"
               class="adult-book-input-roleImg"
             />
+            <img
+              v-else-if="rItem.simpleHead !== ''"
+              :src="
+                require('../../../../assets/NPC/simple' +
+                  (rItem.simpleHead + 1) +
+                  '.png')
+              "
+              class="adult-book-input-roleImg"
+            />
             <template v-if="rItem.detail.wordsList.length > 0">
               <span class="pinyin">{{
                 rItem.detail.wordsList | handlePinyin
@@ -214,10 +223,11 @@
         <RoleChs
           ref="createRolelist"
           :curRole="curQue.roleList[curQue.roleList.length - 1]"
+          v-if="curQue.roleList[curQue.roleList.length - 1]"
         />
       </template>
       <template v-else>
-        <RoleChs ref="createRolelist" :curRole="curRole" />
+        <RoleChs ref="createRolelist" :curRole="curRole" v-if="curRole" />
       </template>
       <span slot="footer" class="dialog-footer">
         <el-button @click="roleVisible = false">取 消</el-button>
@@ -410,14 +420,13 @@ export default {
     },
     //删除生成的mp3
     delMp3() {
-        this.$confirm("确定要删除吗?", "提示", {
+      this.$confirm("确定要删除吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
-      })
-        .then(() => {
-            this.curQue.mp3_list.splice(0, 1);
-        })
+      }).then(() => {
+        this.curQue.mp3_list.splice(0, 1);
+      });
     },
     // 保存校对
     saveCompare() {
@@ -505,6 +514,7 @@ export default {
           seg_words: "",
           wordsList: [],
         },
+        simpleHead: "",
       };
       this.curQue.roleList.push(JSON.parse(JSON.stringify(roleCon)));
     },
@@ -582,11 +592,71 @@ export default {
         this.loading = false;
         let list = res.data.result.list;
         this.$set(this.curQue.detail[paraIndex], "segList", list);
+        this.setWordsList(list, paraIndex);
+        console.log(this.curQue);
+        this.segList = list;
+        this.isByWord = true;
+        this.paraIndex = paraIndex;
+      });
+    },
+    //生成分词
+    segByWord2(sentences, paraIndex) {
+      if (!this.segModel || this.segModel == "words") {
+        this.loading = true;
+        let textList = [];
+        sentences.forEach((item) => {
+          let str = Base64.encode(item);
+          textList.push(str);
+        });
+        let data = {
+          textList: textList,
+        };
+        BatchSegContent(data).then((res) => {
+          this.loading = false;
+          let list = res.data.result.list;
+          this.$set(this.curQue.detail[paraIndex], "segList", list);
+          this.segList = list;
+          this.isByWord = true;
+          this.paraIndex = paraIndex;
+          this.setWordsList(list, paraIndex);
+        });
+      } else {
+        let list = [];
+        let reg = /_{2,}/g;
+        sentences.forEach((item) => {
+          if (reg.test(item)) {
+            item = item.replace(reg, "^");
+          }
+          let arr = item.split("");
+          arr = arr.map((aItem) => {
+            aItem = aItem == "^" ? "_______" : aItem;
+            return aItem;
+          });
+          list.push(arr);
+        });
+        console.log(list);
+        this.setWordsList(list, paraIndex);
+        this.$set(this.curQue.detail[paraIndex], "segList", list);
         console.log(this.curQue);
         this.segList = list;
         this.isByWord = true;
         this.paraIndex = paraIndex;
+      }
+    },
+    setWordsList(list, paraIndex) {
+      let wordsList = [];
+      list.forEach((item, index) => {
+        let sentArr = [];
+        item.map((sItem) => {
+          let obj = {
+            chs: sItem,
+            pinyin: "",
+          };
+          sentArr.push(obj);
+        });
+        wordsList.push(sentArr);
       });
+      this.$set(this.curQue.detail[paraIndex], "wordsList", wordsList);
     },
     // 上传音频文件
     handleChange(file, fileList) {

+ 4 - 2
src/components/Adult/inputModules/DialogueTem/components/ParagraphChs.vue

@@ -177,13 +177,15 @@ export default {
         return;
       }
       let roleList = JSON.parse(JSON.stringify(this.curQue.roleList));
-      roleList = roleList.map((item) => {
+      roleList = roleList.map((item,index) => {
         if (item.detail.fullName) {
           item.label = item.detail.fullName;
         } else if (item.role) {
           item.label = item.role;
         } else if (item.img_list.length > 0) {
-          item.label = "头像" + (item.id + 1);
+          item.label = "角色" + (index + 1);
+        } else if(item.simpleHead!==''){
+           item.label = "角色" + (index + 1); 
         }
         return item;
       });

+ 37 - 0
src/components/Adult/inputModules/DialogueTem/components/RoleChs.vue

@@ -21,6 +21,17 @@
       />
     </div>
     <div class="adult-book-input-item">
+      <span class="adult-book-lable">简易头像:</span>
+      <el-radio-group v-model="curRole.simpleHead">
+        <el-radio :label="itemS.value" v-for="(itemS,indexS) in simpleHead" :key="indexS">
+            <img :src="require('../../../../../assets/NPC/simple'+(indexS+1)+'.png')" style="width:40px" />
+        </el-radio>
+        <el-radio label="">
+            空
+        </el-radio>
+      </el-radio-group>
+    </div>
+    <div class="adult-book-input-item">
       <span class="adult-book-lable">姓名:</span>
       <el-input
         class="NPC-role-input"
@@ -75,6 +86,32 @@ export default {
       },
       imgNumber: 1,
       loading: false,
+      simpleHead: [
+        {
+            value: 0
+        },
+        {
+            value: 1
+        },
+        {
+            value: 2
+        },
+        {
+            value: 3
+        },
+        {
+            value: 4
+        },
+        {
+            value: 5
+        },
+        {
+            value: 6
+        },
+        {
+            value: 7
+        },
+      ]
     };
   },
   computed: {},

+ 1 - 1
src/components/Adult/inputModules/DialogueTem/components/SegbywordChs.vue

@@ -167,7 +167,7 @@ export default {
       handler: function (newVal, oldVal) {
         let _this = this;
         _this.refresh = false;
-        if (newVal) {
+        if (newVal!=oldVal) {
           this.getParaSegWordsResult();
           _this.$nextTick(() => {
             // 重新渲染组件

+ 11 - 3
src/components/Adult/inputModules/DialogueTem/index.vue

@@ -78,10 +78,15 @@
               rItem.role
             }}</span>
             <img
-              v-else
+              v-else-if="rItem.img_list.length>0"
               :src="rItem.img_list[0] && rItem.img_list[0].url"
               class="adult-book-input-roleImg"
             />
+            <img
+              v-else-if="rItem.simpleHead!==''"
+              :src="require('../../../../assets/NPC/simple'+(rItem.simpleHead+1)+'.png')"
+              class="adult-book-input-roleImg"
+            />
             <template v-if="rItem.detail.wordsList.length > 0">
               <span class="pinyin">{{
                 rItem.detail.wordsList | handlePinyin
@@ -409,6 +414,7 @@ export default {
           seg_words: "",
           wordsList: [],
         },
+       simpleHead: ""
       };
       this.curQue.roleList.push(JSON.parse(JSON.stringify(roleCon)));
     },
@@ -619,9 +625,10 @@ export default {
       this.cTVisible = true;
     },
     initData() {
-      console.log(this.curQue);
       if (this.curQue) {
-        this.segList = this.curQue.detail[this.paraIndex].segList;
+        if(this.curQue.detail&&this.curQue.detail[this.paraIndex]&&this.curQue.detail[this.paraIndex].segList){
+            this.segList = this.curQue.detail[this.paraIndex].segList;
+        }
         if (!this.curQue.number) {
           this.curQue.number = "";
         }
@@ -648,6 +655,7 @@ export default {
         this.fileCon.mp3_list = JSON.parse(
           JSON.stringify(this.curQue.mp3_list)
         );
+
       }
     },
   },

+ 55 - 3
src/components/Adult/inputModules/Neword.vue

@@ -35,6 +35,16 @@
               
       </div>
       <div class="adult-book-input-item">
+        <span class="adult-book-lable">预览展开:</span>  
+        <div class="adult-book-main">
+          <el-radio-group v-model="curQue.isWordShow">
+            <el-radio :label="true">是</el-radio>
+            <el-radio :label="false">否</el-radio> </el-radio-group
+          >  
+        </div>
+              
+      </div>
+      <div class="adult-book-input-item">
         <span class="adult-book-lable">题目音频:</span>
         <Upload
           :changeFillId="changeMp3"
@@ -86,6 +96,26 @@
         :key="'newWord' + index"
         style="border-bottom: 1px #ccc solid; margin-bottom: 20px"
       >
+        <div class="Big-Book-mian-op">
+            <span>{{'第'+(index+1)+'组'}}   </span>
+            <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-top"
+                @click="moveElement(item, index, 'up')"
+                >上移</el-button
+            >
+            <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-bottom"
+                @click="moveElement(item, index, 'down')"
+                >下移</el-button
+            >
+            <el-button size="mini" type="danger" @click="delsItem(index)">
+            删除本组
+            </el-button>
+        </div>
         <div
           class="Big-Book-main-inner"
           v-for="(sItem, sIndex) in item"
@@ -98,14 +128,12 @@
             :sIndex="sIndex"
             :type="curQue.type"
             :deleteGroup="deleteGroup"
+            :moveElement2="moveElement2"
           />
         </div>
         <div class="addoption addoption2" @click="saddoption(item)">
           添加字词
         </div>
-        <el-button size="mini" type="danger" @click="delsItem(index)">
-          删除本组
-        </el-button>
       </div>
       <div class="addoption" @click="addoption">添加一组</div>
     </div>
@@ -134,6 +162,7 @@ export default {
         name: "生词",
         title: "",
         isInfor: true,
+        isWordShow: true,
         titleBg: "themeColor", //标题背景颜色
         mp3_list: [],
         lrc_list: [],
@@ -333,6 +362,26 @@ export default {
       });
       this.curQue.lrc_list = lrc_list;
     },
+    moveElement(dItem, index, type) {
+      let obj = JSON.parse(JSON.stringify(dItem));
+      if (type == "up" && index > 0) {
+        this.curQue.option.splice(index - 1, 0, obj);
+        this.curQue.option.splice(index + 1, 1);
+      }
+      if (type == "down" && index < this.curQue.option.length - 1) {
+        this.curQue.option[index] = this.curQue.option.splice(index + 1, 1, this.curQue.option[index])[0]
+      }
+    },
+    moveElement2(dItem, type, index, index2) {
+      let obj = JSON.parse(JSON.stringify(dItem));
+      if (type == "up" && index2 > 0) {
+        this.curQue.option[index].splice(index2 - 1, 0, obj);
+        this.curQue.option[index].splice(index2 + 1, 1);
+      }
+      if (type == "down" && index2 < this.curQue.option[index].length - 1) {
+        this.curQue.option[index][index2] = this.curQue.option[index].splice(index2 + 1, 1, this.curQue.option[index][index2])[0]
+      }
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
@@ -345,6 +394,9 @@ export default {
       if (!this.curQue.hasOwnProperty("isInfor")) {
         this.$set(this.curQue, "isInfor", true);
       }
+      if (!this.curQue.hasOwnProperty("isWordShow")) {
+        this.$set(this.curQue, "isWordShow", true);
+      }
       if (!this.curQue.hasOwnProperty("titleBg")) {
         this.$set(this.curQue, "titleBg", "themeColor");
       }

+ 14 - 1
src/components/Adult/inputModules/Notes.vue

@@ -14,6 +14,16 @@
           show-word-limit
         ></el-input>
       </div>
+      <div class="adult-book-input-item">
+        <span class="adult-book-lable">预览展开:</span>  
+        <div class="adult-book-main">
+          <el-radio-group v-model="curQue.isWordShow">
+            <el-radio :label="true">是</el-radio>
+            <el-radio :label="false">否</el-radio> </el-radio-group
+          >  
+        </div>
+              
+      </div>
       <div
         class="Big-Book-main"
         v-for="(curQueItem, index) in curQue.option"
@@ -107,6 +117,7 @@ export default {
         type: "notes_chs",
         name: "注释",
         title: "",
+        isWordShow: true,
         option: [
           {
             number: "", //序号
@@ -178,7 +189,9 @@ export default {
         fileCon.push(obj);
       });
       this.fileCon = JSON.parse(JSON.stringify(fileCon));
-      console.log(this.fileCon);
+      if (!this.curQue.hasOwnProperty("isWordShow")) {
+        this.$set(this.curQue, "isWordShow", true);
+      }
     }
   },
   beforeCreate() {}, //生命周期 - 创建之前

+ 22 - 75
src/components/Adult/preview/ArticleViewChs/NormalModelChs.vue

@@ -4,7 +4,7 @@
     <div class="aduioLine-box aduioLine-practice-npc" v-if="
             curQue.mp3_list &&
             curQue.mp3_list.length > 0 &&
-            curQue.mp3_list[0].id
+            curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
           ">
       <div class="aduioLine-content">
         <template
@@ -32,10 +32,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>
@@ -91,7 +93,6 @@
                             pItem.className ? pItem.className : '',
                             noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                           ]"
-                          @click.stop="viewNotes($event, pItem.pinyin)"
                           >{{ pItem.pinyin }}</span
                         >
                         <span
@@ -122,7 +123,6 @@
                                   ? 'wordActive'
                                   : '',
                               ]"
-                              @click.stop="viewNotes($event, pItem.chs[wIndex])"
                               >{{
                                   NumberList.indexOf(pItem.pinyin) == -1
                                     ? pItem.chs[wIndex]
@@ -140,7 +140,6 @@
                             pItem.className ? pItem.className : '',
                             noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                           ]"
-                          @click.stop="viewNotes($event, pItem.pinyin)"
                           >{{ pItem.pinyin }}</span
                         >
                       </span>
@@ -155,7 +154,6 @@
                               : '',
                           ]"
                           style="text-align: left"
-                          @click.stop="viewNotes($event, item.wordsList[pIndex + 1].pinyin)"
                           >{{ item.wordsList[pIndex + 1].pinyin }}</span
                         >
                         <span
@@ -182,7 +180,6 @@
                               ? 'wordActive'
                               : '',
                           ]"
-                          @click.stop="viewNotes($event, item.wordsList[pIndex + 1].chs)"
                           >{{ NumberList.indexOf(
                                 item.wordsList[pIndex + 1].pinyin
                               ) == -1
@@ -201,7 +198,6 @@
                               : '',
                           ]"
                           style="text-align: left"
-                          @click.stop="viewNotes($event, item.wordsList[pIndex + 1].pinyin)"
                           >{{ item.wordsList[pIndex + 1].pinyin }}</span
                         >
                       </span>
@@ -227,12 +223,6 @@
                               : '',
                           ]"
                           style="text-align: left"
-                          @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 2].pinyin
-                              )
-                            "
                           >{{ item.wordsList[pIndex + 2].pinyin }}</span
                         >
                         <span
@@ -259,12 +249,6 @@
                               ? 'wordActive'
                               : '',
                           ]"
-                          @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 2].chs
-                              )
-                            "
                           >{{ NumberList.indexOf(
                                 item.wordsList[pIndex + 2].pinyin
                               ) == -1
@@ -283,12 +267,6 @@
                               : '',
                           ]"
                           style="text-align: left"
-                          @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 2].pinyin
-                              )
-                            "
                           >{{ item.wordsList[pIndex + 2].pinyin }}</span
                         >
                       </span>
@@ -302,7 +280,6 @@
                           pItem.className ? pItem.className : '',
                           noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                         ]"
-                        @click.stop="viewNotes($event, pItem.pinyin)"
                         >{{ pItem.pinyin }}</span
                       >
                       <span
@@ -314,7 +291,7 @@
                           curTime <= item.timeList[pItem.sentIndex].ed
                             ? 'active'
                             : '',
-                          pItem.chs != '“' && pItem.padding ? 'padding' : '',
+                          pItem.chs != '“' && pItem.padding && config.isShowPY ? 'padding' : '',
                           pItem.paraIndex == paraIndex &&
                           pItem.sentIndex == sentIndex
                             ? 'overActive'
@@ -334,7 +311,6 @@
                                 ? 'wordActive'
                                 : '',
                             ]"
-                            @click.stop="viewNotes($event, pItem.chs[wIndex])"
                             >{{  NumberList.indexOf(pItem.pinyin) == -1
                                   ? pItem.chs[wIndex]
                                   : "" }}</span
@@ -349,7 +325,6 @@
                           pItem.className ? pItem.className : '',
                           noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                         ]"
-                        @click.stop="viewNotes($event, pItem.pinyin)"
                         >{{ pItem.pinyin }}</span
                       >
                     </template>
@@ -501,20 +476,23 @@ export default {
       let dhaspinyin = false; // 每段是否有拼音
       curQue.detail.forEach((dItem, dIndex) => {
         dhaspinyin = false
-        let paraArr = [
-          {
-            pinyin: "",
-            chs: "",
-            width: 20,
-            height: 20,
-          },
-          {
-            width: 20,
-            height: 20,
-            pinyin: "",
-            chs: "",
-          },
-        ];
+        let paraArr = []
+        if(!dItem.isTitle){
+           paraArr = [
+            {
+                pinyin: "",
+                chs: "",
+                width: 20,
+                height: 20,
+            },
+            {
+                width: 20,
+                height: 20,
+                pinyin: "",
+                chs: "",
+            },
+          ]; 
+        }
         dItem.wordsList.forEach((sItem, sIndex) => {
           let sentArr = [];
           sItem.forEach((wItem, wIndex) => {
@@ -636,37 +614,6 @@ export default {
       this.paraIndex = -1;
       this.sentIndex = -1;
     },
-    viewNotes(e, noteNum) {
-      let _this = this;
-      let noteIndex = "";
-      if (_this.NumberList.indexOf(noteNum) > -1) {
-        for (let i = 0; i < _this.NumberList.length; i++) {
-          if (_this.NumberList[i] == noteNum) {
-            noteIndex = "" + i + "";
-            break;
-          }
-        }
-      }
-      this.showNoteDetail(e, noteIndex);
-    },
-    showNoteDetail(e, noteNum) {
-      let _this = this;
-      if (_this.oldNoteNum != noteNum) {
-        this.isNoteShow = false;
-        setTimeout(() => {
-          _this.noteNum = noteNum;
-        }, 50);
-      }
-      _this.clientY = e.clientY;
-      let left = e.clientX;
-      let width = 642;
-
-      if (left - this.bodyLeft > this.contentWidth / 2) {
-        _this.left = left - width + 10;
-      } else {
-        _this.left = left - 200;
-      }
-    },
     // 处理分词数据
     handleNote(val) {
       let _this = this;
@@ -865,7 +812,7 @@ export default {
 
     .wordsList-box {
       width: 100%;
-      padding: 6px 24px 6px 24px;
+      padding: 6px 24px 12px 24px;
       > div {
         clear: both;
         overflow: hidden;

+ 27 - 21
src/components/Adult/preview/ArticleViewChs/PhraseModelChs.vue

@@ -4,7 +4,7 @@
     <div class="aduioLine-box aduioLine-practice-npc" v-if="
             curQue.mp3_list &&
             curQue.mp3_list.length > 0 &&
-            curQue.mp3_list[0].id
+            curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
           ">
       <div class="aduioLine-content">
         <template
@@ -28,10 +28,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>
@@ -235,7 +237,7 @@
                       <span
                         class="NNPE-chs"
                         :class="[
-                          pItem.chs != '“' && pItem.padding ? 'padding' : '',
+                          pItem.chs != '“' && pItem.padding && config.isShowPY ? 'padding' : '',
                           newWordList.indexOf(pItem.chs) > -1 ? 'active' : '',
                         ]"
                         @click.stop="viewNotes($event, pItem.chs)"
@@ -455,20 +457,23 @@ export default {
       let dhaspinyin = false; // 每段是否有拼音
       curQue.detail.forEach((dItem, dIndex) => {
         dhaspinyin = false
-        let paraArr = [
-          {
-            pinyin: "",
-            chs: "",
-            width: 20,
-            height: 20,
-          },
-          {
-            width: 20,
-            height: 20,
-            pinyin: "",
-            chs: "",
-          },
-        ];
+        let paraArr = []
+        if(!dItem.isTitle){
+           paraArr = [
+            {
+                pinyin: "",
+                chs: "",
+                width: 20,
+                height: 20,
+            },
+            {
+                width: 20,
+                height: 20,
+                pinyin: "",
+                chs: "",
+            },
+          ]; 
+        }
         dItem.wordsList.forEach((sItem, sIndex) => {
           sItem.forEach((wItem, wIndex) => {
             //this.judgePad(sItem, wItem, wIndex);
@@ -491,7 +496,8 @@ export default {
 
         let paraObj = {
           wordsList: paraArr,
-          dhaspinyin:dhaspinyin
+          dhaspinyin:dhaspinyin,
+          isTitle: dItem.isTitle,
         };
         resArr.push(paraObj);
       });
@@ -507,10 +513,10 @@ export default {
     //词和标点合一起
     mergeWordSymbol(sItem, wItem, curIndex) {
       let leg = sItem.length;
-      if (curIndex < leg - 1) {
-        let nextIndex = curIndex + 1;
-        let chs = sItem[nextIndex].chs;
-        let pinyin = sItem[nextIndex].pinyin;
+      if (wItem&&wItem.chs) {
+        // let nextIndex = curIndex + 1;
+        // let chs = sItem[nextIndex].chs;
+        // let pinyin = sItem[nextIndex].pinyin;
         // if (this.chsFhList.indexOf(chs) > -1) {
         //   wItem.chs = "<a>" + wItem.chs + "</a><a>" + chs + "</a>";
         //   wItem.pinyin = "<a>" + wItem.pinyin + "</a><a>" + pinyin + "</a>";

+ 3 - 1
src/components/Adult/preview/ArticleViewChs/Practicechs.vue

@@ -5,7 +5,7 @@
     <div class="aduioLine-box aduioLine-practice-npc" v-if="
             curQue.mp3_list &&
             curQue.mp3_list.length > 0 &&
-            curQue.mp3_list[0].id
+            curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
           ">
       <div
         class="aduioLine-content"
@@ -35,10 +35,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>

+ 27 - 20
src/components/Adult/preview/ArticleViewChs/WordModelChs.vue

@@ -4,7 +4,7 @@
     <div class="aduioLine-box aduioLine-practice-npc" v-if="
             curQue.mp3_list &&
             curQue.mp3_list.length > 0 &&
-            curQue.mp3_list[0].id
+            curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
           ">
       <div class="aduioLine-content">
         <template
@@ -28,10 +28,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>
@@ -61,7 +63,7 @@
                   <template v-if="pItem.isShow">
                     <template
                       v-if="
-                        item.wordsList[pIndex + 1].chs &&
+                        item.wordsList[pIndex + 1]&&item.wordsList[pIndex + 1].chs &&
                         chsFhList.indexOf(item.wordsList[pIndex + 1].chs) > -1
                       "
                     >
@@ -207,7 +209,7 @@
                           curTime <= item.timeList[pItem.sentIndex].ed
                             ? 'active'
                             : '',
-                          pItem.chs != '“' && pItem.padding ? 'padding' : '',
+                          pItem.chs != '“' && pItem.padding && config.isShowPY ? 'padding' : '',
                         ]"
                         >{{ pItem.chs }}</span
                       >
@@ -380,24 +382,28 @@ export default {
       let dhaspinyin = false; // 每段是否有拼音
       curQue.detail.forEach((dItem, dIndex) => {
         dhaspinyin = false
-        let paraArr = [
-          {
-            pinyin: "",
-            chs: "",
-            width: 20,
-            height: 20,
-          },
-          {
-            width: 20,
-            height: 20,
-            pinyin: "",
-            chs: "",
-          },
-        ];
+        let paraArr = []
+        if(!dItem.isTitle){
+           paraArr = [
+            {
+                pinyin: "",
+                chs: "",
+                width: 20,
+                height: 20,
+            },
+            {
+                width: 20,
+                height: 20,
+                pinyin: "",
+                chs: "",
+            },
+          ]; 
+        }
         dItem.wordsList.forEach((sItem, sIndex) => {
           sItem.forEach((wItem, wIndex) => {
             //this.judgePad(sItem, wItem, wIndex);
             this.mergeWordSymbol(sItem, wItem, wIndex);
+
             let obj = {
               paraIndex: dIndex, //段落索引
               sentIndex: sIndex, //在段落中句子索引
@@ -422,7 +428,8 @@ export default {
         let paraObj = {
           wordsList: paraArr,
           timeList: timeList,
-          dhaspinyin:dhaspinyin
+          dhaspinyin:dhaspinyin,
+          isTitle: dItem.isTitle,
         };
         resArr.push(paraObj);
       });
@@ -437,13 +444,13 @@ export default {
     //词和标点合一起
     mergeWordSymbol(sItem, wItem, curIndex) {
       let leg = sItem.length;
-      if (curIndex < leg - 1) {
+      if (wItem&&wItem.chs) {
         if (this.chsFhList.indexOf(wItem.chs) > -1) {
           wItem.isShow = false;
         } else {
           wItem.isShow = true;
         }
-      }
+      }            
     },
     //判断是否有padding
     judgePad(sItem, wItem, curIndex) {

+ 4 - 4
src/components/Adult/preview/DialogueArticleViewChs/AnswerModel.vue

@@ -312,7 +312,7 @@
                               curTime <= item.timeList[pItem.sentIndex].ed
                                 ? 'wordActive'
                                 : '',
-                              pItem.chs != '“' && pItem.padding
+                              pItem.chs != '“' && pItem.padding && item.isHasPY
                                 ? 'padding'
                                 : '',
                               pItem.config.underLine
@@ -726,12 +726,12 @@ export default {
     },
     hengStyle() {
       return function (config) {
-        let sizeVal = config.fontSize.replace("px", "");
+        let sizeVal = config && config.fontSize ? config.fontSize.replace("px", "") : 20;
         return {
           minHeight: Number(sizeVal) + 9 + "px",
           lineHeight: Number(sizeVal) + 8 + "px",
-          fontSize: config.fontSize,
-          fontFamily: config.fontFamily
+          fontSize: config ? config.fontSize : '20px',
+          fontFamily: config ? config.fontFamily : 'FZJCGFKTK'
         };
       };
     },

+ 4 - 71
src/components/Adult/preview/DialogueArticleViewChs/NormalModelChs.vue

@@ -4,7 +4,7 @@
     <div
       class="aduioLine-box aduioLine-practice-npc"
       v-if="
-        curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
+        curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
       "
     >
       <div class="aduioLine-content">
@@ -32,10 +32,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>
@@ -135,7 +137,6 @@
                               pItem.className ? pItem.className : '',
                               noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                             ]"
-                            @click.stop="viewNotes($event, pItem.pinyin)"
                             >{{ pItem.pinyin }}</span
                           >
                           <span class="NNPE-chs">
@@ -152,9 +153,6 @@
                                     ? 'wordActive'
                                     : '',
                                 ]"
-                                @click.stop="
-                                  viewNotes($event, pItem.chs[wIndex])
-                                "
                                 >{{
                                   NumberList.indexOf(pItem.pinyin) == -1
                                     ? pItem.chs[wIndex]
@@ -174,7 +172,6 @@
                               pItem.className ? pItem.className : '',
                               noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                             ]"
-                            @click.stop="viewNotes($event, pItem.pinyin)"
                             >{{ pItem.pinyin }}</span
                           >
                         </span>
@@ -193,12 +190,6 @@
                                 ? 'noFont'
                                 : '',
                             ]"
-                            @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 1].pinyin
-                              )
-                            "
                             style="text-align: left"
                             >{{ item.wordsList[pIndex + 1].pinyin }}</span
                           >
@@ -216,9 +207,6 @@
                                 ? 'wordActive'
                                 : '',
                             ]"
-                            @click.stop="
-                              viewNotes($event, item.wordsList[pIndex + 1].chs)
-                            "
                             >{{
                               NumberList.indexOf(
                                 item.wordsList[pIndex + 1].pinyin
@@ -241,12 +229,6 @@
                                 ? 'noFont'
                                 : '',
                             ]"
-                            @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 1].pinyin
-                              )
-                            "
                             style="text-align: left"
                             >{{ item.wordsList[pIndex + 1].pinyin }}</span
                           >
@@ -277,12 +259,6 @@
                                 ? 'noFont'
                                 : '',
                             ]"
-                            @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 2].pinyin
-                              )
-                            "
                             style="text-align: left"
                             >{{ item.wordsList[pIndex + 2].pinyin }}</span
                           >
@@ -299,9 +275,6 @@
                                 ? 'wordActive'
                                 : '',
                             ]"
-                            @click.stop="
-                              viewNotes($event, item.wordsList[pIndex + 2].chs)
-                            "
                             >{{
                               NumberList.indexOf(
                                 item.wordsList[pIndex + 2].pinyin
@@ -324,12 +297,6 @@
                                 ? 'noFont'
                                 : '',
                             ]"
-                            @click.stop="
-                              viewNotes(
-                                $event,
-                                item.wordsList[pIndex + 2].pinyin
-                              )
-                            "
                             style="text-align: left"
                             >{{ item.wordsList[pIndex + 2].pinyin }}</span
                           >
@@ -348,7 +315,6 @@
                             pItem.className ? pItem.className : '',
                             noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                           ]"
-                          @click.stop="viewNotes($event, pItem.pinyin)"
                           >{{ pItem.pinyin }}</span
                         >
 
@@ -356,7 +322,7 @@
                           v-if="pItem.chs != '#'"
                           class="NNPE-chs"
                           :class="[
-                            pItem.chs != '“' && pItem.padding ? 'padding' : '',
+                            pItem.chs != '“' && pItem.padding && config.isShowPY ? 'padding' : '',
                           ]"
                         >
                           <template>
@@ -372,7 +338,6 @@
                                   ? 'wordActive'
                                   : '',
                               ]"
-                              @click.stop="viewNotes($event, pItem.chs[wIndex])"
                               >{{
                                 NumberList.indexOf(pItem.pinyin) == -1
                                   ? pItem.chs[wIndex]
@@ -393,7 +358,6 @@
                             pItem.className ? pItem.className : '',
                             noFont.indexOf(pItem.pinyin) > -1 ? 'noFont' : '',
                           ]"
-                          @click.stop="viewNotes($event, pItem.pinyin)"
                           >{{ pItem.pinyin }}</span
                         >
                       </template>
@@ -776,37 +740,6 @@ export default {
     emptyEd() {
       this.ed = undefined;
     },
-    viewNotes(e, noteNum) {
-      let _this = this;
-      let noteIndex = "";
-      if (_this.NumberList.indexOf(noteNum) > -1) {
-        for (let i = 0; i < _this.NumberList.length; i++) {
-          if (_this.NumberList[i] == noteNum) {
-            noteIndex = "" + i + "";
-            break;
-          }
-        }
-      }
-      this.showNoteDetail(e, noteIndex);
-    },
-    showNoteDetail(e, noteNum) {
-      let _this = this;
-      if (_this.oldNoteNum != noteNum) {
-        this.isNoteShow = false;
-        setTimeout(() => {
-          _this.noteNum = noteNum;
-        }, 50);
-      }
-      _this.clientY = e.clientY;
-      let left = e.clientX;
-      let width = 642;
-
-      if (left - this.bodyLeft > this.contentWidth / 2) {
-        _this.left = left - width + 10;
-      } else {
-        _this.left = left - 200;
-      }
-    },
     // 处理分词数据
     handleNote(val) {
       let _this = this;

+ 4 - 2
src/components/Adult/preview/DialogueArticleViewChs/PhraseModelChs.vue

@@ -4,7 +4,7 @@
     <div
       class="aduioLine-box aduioLine-practice-npc"
       v-if="
-        curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
+        curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
       "
     >
       <div class="aduioLine-content">
@@ -29,10 +29,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>
@@ -310,7 +312,7 @@
                             newWordList.indexOf(pItem.chs) > -1
                               ? 'newActive'
                               : '',
-                            pItem.chs != '“' && pItem.padding ? 'padding' : '',
+                            pItem.chs != '“' && pItem.padding && config.isShowPY ? 'padding' : '',
                           ]"
                           @click.stop="viewNotes($event, pItem.chs)"
                           >{{

+ 3 - 1
src/components/Adult/preview/DialogueArticleViewChs/Practicechs.vue

@@ -5,7 +5,7 @@
     <div class="aduioLine-box aduioLine-practice-npc" v-if="
             curQue.mp3_list &&
             curQue.mp3_list.length > 0 &&
-            curQue.mp3_list[0].id
+            curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
           ">
       <div class="aduioLine-content">
         <template
@@ -39,10 +39,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>

+ 6 - 1
src/components/Adult/preview/DialogueArticleViewChs/RoleChs.vue

@@ -8,10 +8,15 @@
       >{{ curRole.role }}</span
     >
     <img
-      v-else
+      v-else-if="curRole.img_list.length>0"
       :src="curRole.img_list[0] && curRole.img_list[0].id"
       class="adult-book-input-roleImg"
     />
+    <img
+      v-else-if="curRole.simpleHead!==''"
+      :src="require('../../../../assets/NPC/simple'+(curRole.simpleHead+1)+'.png')"
+      class="adult-book-input-roleImg"
+    />
     <template v-if="type != 1 && curRole.detail.wordsList.length > 0">
       <span class="pinyin" :style="{ color: wordColor }">{{
         curRole.detail.wordsList | handlePinyin

+ 4 - 2
src/components/Adult/preview/DialogueArticleViewChs/WordModelChs.vue

@@ -4,7 +4,7 @@
     <div class="aduioLine-box aduioLine-practice-npc" v-if="
             curQue.mp3_list &&
             curQue.mp3_list.length > 0 &&
-            curQue.mp3_list[0].id
+            curQue.mp3_list[0].id || config.isHasPY || config.isHasEN
           ">
       <div class="aduioLine-content">
         <template
@@ -28,10 +28,12 @@
         <span
           :class="['pinyin-16', config.isShowPY ? '' : 'disabled']"
           @click="changePinyin"
+          v-if="config.isHasPY"
         ></span>
         <span
           :class="['EN-16', config.isShowEN ? '' : 'disabled']"
           @click="changeEN"
+          v-if="config.isHasEN"
         ></span>
       </div>
     </div>
@@ -232,7 +234,7 @@
                           v-if="pItem.chs != '#'"
                           class="NNPE-chs"
                           :class="[
-                            pItem.chs != '“' && pItem.padding ? 'padding' : '',
+                            pItem.chs != '“' && pItem.padding && config.isShowPY ? 'padding' : '',
                             paraIndex == pItem.paraIndex &&
                             sentIndex == pItem.sentIndex &&
                             wordIndex == pItem.wordIndex

+ 1 - 1
src/components/Adult/preview/HeaderSparate/index.vue

@@ -77,7 +77,7 @@
                               curQue.Bookanswer[i].content[j].answer.trim())
                       "
                       type="textarea"
-                      :placeholder="`${isAnswerMode ? '' : '输入'}`"
+                      :placeholder="`${isAnswerMode ? '' : ''}`"
                       :disabled="isAnswerMode"
                       :autosize="{ minRows: 1, maxRows: 6 }"
                       @input="enterAnswer(i, j, 'input')"

+ 3 - 3
src/components/Adult/preview/InputHasRecord.vue

@@ -124,7 +124,7 @@
             type="textarea"
             v-model="items.answer"
             @blur="items.answer = items.answer.trim()"
-            placeholder="输入"
+            placeholder=""
             maxlength="200"
             :readonly="TaskModel == 'ANSWER'"
             @input="forupdata"
@@ -305,7 +305,7 @@
                     curQue.Bookanswer[indexs].answer =
                       curQue.Bookanswer[indexs].answer.trim()
                   "
-                  placeholder="输入"
+                  placeholder=""
                   maxlength="200"
                   :readonly="TaskModel == 'ANSWER'"
                   @input="forupdata"
@@ -460,7 +460,7 @@
                 curQue.Bookanswer[indexs].answer =
                   curQue.Bookanswer[indexs].answer.trim()
               "
-              placeholder="输入"
+              placeholder=""
               maxlength="200"
               :readonly="TaskModel == 'ANSWER'"
               @input="forupdata"

+ 1 - 1
src/components/Adult/preview/Notes.vue

@@ -55,7 +55,7 @@ export default {
   data() {
     //这里存放数据
     return {
-      wordShow: true,
+      wordShow: this.curQue.hasOwnProperty("isWordShow")?this.curQue.isWordShow:true,
     };
   },
   //计算属性 类似于data概念

+ 8 - 8
src/components/Adult/preview/Picture.vue

@@ -65,7 +65,7 @@
         <template v-if="judgeAnswer == 'standardAnswer'">
           <input
             v-model="curQue.correct[0].input[0]"
-            placeholder="输入"
+            placeholder=""
             @blur="handleInput('input', 0)"
             :readonly="TaskModel == 'ANSWER'"
             maxlength="200"
@@ -75,7 +75,7 @@
         <template v-else>
           <input
             v-model="curQue.Bookanswer[0].input.input[0].value"
-            placeholder="输入"
+            placeholder=""
             @blur="handleInput('input', 0)"
             :readonly="TaskModel == 'ANSWER'"
             maxlength="200"
@@ -91,7 +91,7 @@
           <template v-if="judgeAnswer == 'standardAnswer'">
             <input
               v-model="curQue.correct[0].input[0]"
-              placeholder="输入"
+              placeholder=""
               @blur="handleInput('input', 0)"
               :readonly="true"
               maxlength="200"
@@ -101,7 +101,7 @@
           <template v-else>
             <input
               v-model="curQue.Bookanswer[0].input.input[0].value"
-              placeholder="输入"
+              placeholder=""
               @blur="handleInput('input', 0)"
               :readonly="TaskModel == 'ANSWER'"
               maxlength="200"
@@ -115,14 +115,14 @@
         <div class="DoubleInput-box">
           <template v-if="judgeAnswer == 'standardAnswer'">
             <input
-              placeholder="输入"
+              placeholder=""
               v-model="curQue.correct[0].input[0]"
               :readonly="true"
               maxlength="200"
               :class="inputAnswerClass('input', 0)"
             />
             <input
-              placeholder="输入"
+              placeholder=""
               v-model="curQue.correct[0].input[1]"
               :readonly="true"
               maxlength="200"
@@ -131,7 +131,7 @@
           </template>
           <template v-else>
             <input
-              placeholder="输入"
+              placeholder=""
               @blur="handleInput('input', 0)"
               v-model="curQue.Bookanswer[0].input.input[0].value"
               :readonly="TaskModel == 'ANSWER'"
@@ -139,7 +139,7 @@
               :class="inputAnswerClass('input', 0)"
             />
             <input
-              placeholder="输入"
+              placeholder=""
               @blur="handleInput('input', 1)"
               v-model="curQue.Bookanswer[0].input.input[1].value"
               :readonly="TaskModel == 'ANSWER'"

+ 1 - 1
src/components/Adult/preview/SentenceInput.vue

@@ -207,7 +207,7 @@
                 ? items.answer[0]
                 : curQue.Bookanswer[indexs].answer
             "
-            placeholder="输入"
+            placeholder=""
             :readonly="TaskModel == 'ANSWER'"
             @change="changeuserAnswerJudge(indexs)"
           />

+ 1 - 1
src/components/Adult/preview/TableView.vue

@@ -28,7 +28,7 @@
                 <el-input
                     type="textarea"
                     autosize
-                    placeholder="输入"
+                    placeholder=""
                     v-model="curQue.Bookanswer.curCorrect[rowIndex][colIndex]"
                     :readonly="TaskModel=='ANSWER'"
                     maxlength="200">

+ 1 - 1
src/components/Adult/preview/TextInputRecord.vue

@@ -79,7 +79,7 @@
               : curQue.Bookanswer[indexs].answer
           "
           @keyup.enter="handleReplaceTone($event, indexs)"
-          placeholder="输入"
+          placeholder=""
           maxlength="200"
           :readonly="TaskModel == 'ANSWER'"
           @change="changeuserAnswerJudge(indexs)"

+ 1 - 1
src/components/Adult/preview/WordPhrase.vue

@@ -243,7 +243,7 @@ export default {
   data() {
     //这里存放数据
     return {
-      wordShow: true,
+      wordShow: this.curQue.hasOwnProperty("isWordShow")?this.curQue.isWordShow:true,
       data: null,
       detailShow: false,
       detailIndex: 0,

+ 2 - 2
src/components/Adult/preview/components/WordPhraseDetail.vue

@@ -139,7 +139,7 @@
                   <span>{{ list3.sentence_list.length }}</span>
                 </div>
               </div>
-              <div class="right">
+              <!-- <div class="right">
                 <div
                   @click="cutPattern(0)"
                   :class="[lijuPatternIndex == 0 ? 'sele' : '']"
@@ -152,7 +152,7 @@
                 >
                   KWIC模式
                 </div>
-              </div>
+              </div> -->
             </div>
             <div :class="['liju', lijuPatternIndex == 1 ? 'KWIC_liju' : '']">
               <div v-if="lijuPatternIndex == 1" class="sort_dv">

+ 2 - 0
src/components/Adult/preview/components/Wordcard.vue

@@ -347,6 +347,8 @@ export default {
         _this.dataDetail = res.data.result;
         if (_this.dataDetail && _this.dataDetail.length > 0) {
           _this.handleChineseDetail();
+        } else {
+          this.loading = false;
         }
       });
     },

+ 119 - 2
src/views/adultInput.vue

@@ -139,6 +139,24 @@
                 style="margin: 0 10px"
                 ><br /></el-checkbox
               ><span>{{ topic.group_name }}</span>
+              <el-button size="small" @click="deleteElement(toindex)"
+                >删除</el-button
+            >
+
+            <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-top"
+                @click="moveElement(topic, toindex, 'up')"
+                >上移</el-button
+            >
+            <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-bottom"
+                @click="moveElement(topic, toindex, 'down')"
+                >下移</el-button
+            >
             </div>
             <span @click="handleChangeTab(topic)">
               {{ topic.contentShow ? "收起" : "展开" }}
@@ -249,7 +267,18 @@
                   :key="lineIndex"
                   :style="{ 'border-bottom': '2px #999 dotted' }"
                 >
-                  <p>{{ topicIitem.text }}</p>
+                  <div>
+                    <span>{{ '第'+(rowIndex+1)+'行,第'+(lineIndex+1)+'列' }}</span>
+                    <div class="addoption" style="margin-left: 10px" @click="handleRemoveCol(rowIndex,lineIndex,toindex)">
+                        删除当前列
+                    </div>
+                    <div class="addoption" style="margin-left: 10px" @click="handleAddCol('front',rowIndex,lineIndex,toindex)">
+                        在当前列前增加列
+                    </div>
+                    <div class="addoption" style="margin-left: 10px" @click="handleAddCol('behind',rowIndex,lineIndex,toindex)">
+                        在当前列后增加列
+                    </div>
+                  </div>
                   <div>
                     <template
                       v-if="
@@ -1271,6 +1300,44 @@ export default {
       this.LineIndex = null;
       this.$forceUpdate();
     },
+    // 增加列
+    handleAddCol(type, index, rowindex, toindex){
+        let arr = {
+            text: ``,
+            is_add_module: true,
+            is_edit: true,
+        };
+        if (type == "front") {
+            //  加到当前列前面
+            if (rowindex == 0) {
+                this.question_list.cur_fn_data[toindex].table_list[index].splice(0, 0, arr);
+            } else {
+                this.question_list.cur_fn_data[toindex].table_list[index].splice(
+                    rowindex - 1,
+                    0,
+                    arr
+                );
+            }
+        } else {
+            //  加到当前列后面
+            this.question_list.cur_fn_data[toindex].table_list[index].splice(
+            rowindex + 1,
+            0,
+            arr
+            );
+        }
+        this.question_list.cur_fn_data[toindex].table_list.forEach(
+            (item, rowIndex) => {
+            item.forEach((it, colIndex) => {
+                it.text = `第${rowIndex + 1}行,第${colIndex + 1}列`;
+            });
+            }
+        );
+        this.TopicIndex = null;
+        this.RowIndex = null;
+        this.LineIndex = null;
+        this.$forceUpdate();
+    },
     // 删除行
     removeRow(index, toindex) {
       this.$confirm("确定要删除当前行吗?", "提示", {
@@ -1298,6 +1365,33 @@ export default {
         this.$forceUpdate();
       });
     },
+    // 删除列
+    handleRemoveCol(index, rowindex, toindex){
+        this.$confirm("确定要删除当前列吗?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+        }).then(() => {
+            // 里面是不是剩下最后一列了
+            if (this.question_list.cur_fn_data[toindex].table_list[index].length == 1) {
+                this.question_list.cur_fn_data[toindex].table_list[index].splice(rowindex, 1);
+                this.question_list.cur_fn_data[toindex].table_list.splice(index, 1);
+            } else {
+                this.question_list.cur_fn_data[toindex].table_list[index].splice(rowindex, 1);
+            }
+            this.question_list.cur_fn_data[toindex].table_list.forEach(
+                (item, rowIndex) => {
+                    item.forEach((it, colIndex) => {
+                        it.text = `第${rowIndex + 1}行,第${colIndex + 1}列`;
+                    });
+                }
+            );
+            this.TopicIndex = null;
+            this.RowIndex = null;
+            this.LineIndex = null;
+            this.$forceUpdate();
+        });
+    },
     changeCurrentTreeID(val) {
       this.currentTreeID = val;
     },
@@ -1397,7 +1491,7 @@ export default {
           let rowArr = [];
           for (let j = 0; j < this.line; j++) {
             let obj = {
-              text: `第${i + 1}行,第${j + 1}列`,
+            //   text: `第${i + 1}行,第${j + 1}列`,
               is_add_module: true,
               is_edit: true,
             };
@@ -1935,6 +2029,29 @@ export default {
       });
       window.getSelection().removeAllRanges();
     },
+    deleteElement(index) {
+        this.$confirm(`确定要删除吗?`, "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+        }).then(() => {
+            if(this.question_list.cur_fn_data.length>1){
+                this.question_list.cur_fn_data.splice(index, 1);
+            }else{
+                this.question_list.cur_fn_data = [];
+            }
+        });
+    },
+    moveElement(dItem, index, type) {
+      let obj = JSON.parse(JSON.stringify(dItem));
+      if (type == "up" && index > 0) {
+        this.question_list.cur_fn_data.splice(index - 1, 0, obj);
+        this.question_list.cur_fn_data.splice(index + 1, 1);
+      }
+      if (type == "down" && index < this.question_list.cur_fn_data.length - 1) {
+        this.question_list.cur_fn_data[index] = this.question_list.cur_fn_data.splice(index + 1, 1, this.question_list.cur_fn_data[index])[0]
+      }
+    },
   }, // 如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>

+ 13 - 12
src/views/courseList.vue

@@ -125,7 +125,7 @@
                   >教材信息</el-button
                 >
                 <el-button type="text" @click="handleDiscount(scope.row)"
-                  >激活码</el-button
+                  >授权码</el-button
                 >
                 <el-button type="text" @click="handleCreatLink(scope.row)"
                   >生成链接</el-button
@@ -330,18 +330,18 @@
                             <el-radio label="0" v-model="formDialog.publish_status">下架</el-radio>
                             <el-radio label="1" v-model="formDialog.publish_status">上架</el-radio>
                         </el-form-item>-->
-            <el-form-item
+            <!-- <el-form-item
               label="发布范围"
               label-width="90px"
               prop="publish_scope"
             >
-              <el-radio v-model="formDialog.publish_scope" :label="0"
-                >机构内用户可见</el-radio
-              >
               <el-radio v-model="formDialog.publish_scope" :label="1"
                 >所有用户可见</el-radio
               >
-            </el-form-item>
+              <el-radio v-model="formDialog.publish_scope" :label="0"
+                >机构内用户可见</el-radio
+              >
+            </el-form-item> -->
             <el-form-item
               label="主题颜色"
               label-width="90px"
@@ -578,7 +578,7 @@ export default {
         price: null,
         org_id: "",
         org_name: "",
-        publish_scope: 0,
+        publish_scope: 1,
         publish_number: "",
         series_code: "",
         picture_id: "",
@@ -757,7 +757,7 @@ export default {
       sessionStorage.setItem("Bookdetail", JSON.stringify(row));
       this.$router.push("/courseview?bookId=" + row.id);
     },
-    // 激活
+    // 授权
     handleDiscount(row) {
       this.$router.push("/discountCodeList?bookId=" + row.id);
     }, // 生成临时链接
@@ -819,7 +819,7 @@ export default {
         price: null,
         org_id: "",
         org_name: "",
-        publish_scope: 0,
+        publish_scope: 1,
         publish_number: "",
         series_code: "",
         picture_id: "",
@@ -866,7 +866,8 @@ export default {
           } else {
             MethodName = "book-book_manager-AddBook";
           }
-          this.formDialog.publish_status = 1;
+        //   this.formDialog.publish_status = 1;
+          this.formDialog.publish_status = this.tableData[this.rowIndex].publish_status ? this.tableData[this.rowIndex].publish_status : 0
           let data = JSON.parse(JSON.stringify(_this.formDialog));
           getContent(MethodName, data)
             .then(res => {
@@ -966,7 +967,6 @@ export default {
       let data = {};
       getContentFile(MethodName, data).then(res => {
         this.typeList = res.type_list;
-        console.log(this.typeList);
       });
     },
     // 处理发布状态
@@ -1296,7 +1296,8 @@ export default {
         .then(() => {
           let MethodName = "book-book_manager-DeleteBook";
           let data = {
-            id: row.id
+            id: row.id,
+            is_force_delete: "true"
           };
           getContent(MethodName, data)
             .then(res => {

+ 5 - 5
src/views/discountCodeList.vue

@@ -9,8 +9,8 @@
                     style="margin-left: 10px"
                 >
                     <el-form-item>
-                        <el-form-item class="label-input" label="激活码" style="margin-right:30px;">
-                            <el-input placeholder="输入生成激活码数量" v-model="discountNumber" type="number" :oninput="numberInput"></el-input>
+                        <el-form-item class="label-input" label="授权码" style="margin-right:30px;">
+                            <el-input placeholder="输入生成授权码数量" v-model="discountNumber" type="number" :oninput="numberInput"></el-input>
                         </el-form-item>
                         <el-button @click="onSubmit" size="medium" type="primary" :loading="loading">生成</el-button>
                     </el-form-item>
@@ -26,7 +26,7 @@
             </div>
             <div class="table-box">
                 <el-table :data="tableData" style="width: 100%" v-loading="tableloading">
-                    <el-table-column class="table-firstC" label="激活码" prop="discount_code" width="150"></el-table-column>
+                    <el-table-column class="table-firstC" label="授权码" prop="discount_code" width="150"></el-table-column>
                     <el-table-column label="状态" prop="is_used" width="150" :formatter="handleStatus"></el-table-column>
                     <el-table-column label="使用者" prop="consumer_name" width="150"></el-table-column>
                     <el-table-column label="使用时间" prop="use_time" width="200"></el-table-column>
@@ -124,7 +124,7 @@ export default {
                 this.$message(
                     {
                         type: "warning",
-                        message: "请输入生成激活码数量!",
+                        message: "请输入生成授权码数量!",
                     },
                     2000
                 );
@@ -158,7 +158,7 @@ export default {
         },
         // 删除书籍
         handleDel (row) {
-            this.$confirm("确定要删除此激活码吗?", "提示", {
+            this.$confirm("确定要删除此授权码吗?", "提示", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
                 type: "warning",

+ 3 - 3
vue.config.js

@@ -43,9 +43,9 @@ module.exports = {
       // change xxx-api/login => mock/login
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `https://gcls.utschool.cn/`,
-        //target: `https://gcls.helxsoft.cn/`,
-        //target: `https://chinesedu.blcup.com/`,
+        // target: `https://gcls.utschool.cn/`,
+        target: `https://gcls.helxsoft.cn/`,
+        // target: `https://chinesedu.blcup.com/`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''