Jelajahi Sumber

修改问题

natasha 1 tahun lalu
induk
melakukan
dcb680942f

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

@@ -1032,6 +1032,7 @@ export default {
       groupCheckList: [], // checkbox 是否选中
       judgeAnswersList: [],
       visiblePreviewDialog: false,
+      titleChsFhList:[",", "”","。",":", "》", "?", "!", ";"],
     };
   },
   computed: {},
@@ -1310,7 +1311,7 @@ export default {
     },
     //词和标点合一起
     mergeWordSymbol(sItem) {
-      if (this.chsFhList.indexOf(sItem.chs) > -1) {
+      if (this.titleChsFhList.indexOf(sItem.chs) > -1) {
         sItem.isShow = false;
       } else {
         sItem.isShow = true;

+ 14 - 0
src/components/Adult/common/HzModule.vue

@@ -154,6 +154,20 @@
         <el-button @click="getPinyin(curQueItem)">生成拼音</el-button>
       </div>
     </template>
+    <div
+      class="adult-book-input-item"
+    >
+      <span class="adult-book-lable">字的大小:</span>
+      <el-radio-group
+        v-model="curQueItem.fontSize"
+      >
+        <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">
       <span class="adult-book-lable">文字位置:</span>
       <el-radio-group v-model="curQueItem.hanziSite">

+ 20 - 3
src/components/Adult/common/SegwordConfig.vue

@@ -8,7 +8,8 @@
         type != 'sentence_segtemp_chs' &&
         type != 'sort_chs' &&
         type != 'sentence_listen_read_chs' &&
-        type!=='adultinput'
+        type!=='adultinput' &&
+        type!=='NewWord_chs'
       "
       style="margin-top: 10px"
     >
@@ -84,7 +85,7 @@
         "
       >
         <template slot-scope="scope">
-          <div class="adult-book-input-item" v-if="type!=='adultinput'">
+          <div class="adult-book-input-item" v-if="type!=='adultinput'&&type!=='NewWord_chs'">
             <span class="adult-book-lable">字的大小:</span>
             <el-radio-group v-model="scope.row.fontSize">
               <el-radio label="12px">12px</el-radio>
@@ -124,7 +125,7 @@
               </el-radio>
             </el-radio-group>
           </div>
-          <div class="adult-book-input-item" v-if="type!=='adultinput'">
+          <div class="adult-book-input-item" v-if="type!=='adultinput'&&type!=='NewWord_chs'">
             <span class="adult-book-lable">设置下划线:</span>
             <el-checkbox v-model="scope.row.underLine">显示下划线</el-checkbox>
           </div>
@@ -151,6 +152,22 @@
               </el-checkbox>
             </el-checkbox-group>
           </div>
+          <template v-if="type==='dialogue_answer_chs'">
+            <div class="adult-book-input-item">
+                <span class="adult-book-lable">对齐方式:</span>
+                <el-radio-group
+                    v-model="scope.row.DiaTextAlign"
+                >
+                    <el-radio label="left">左对齐</el-radio>
+                    <el-radio label="center">居中对齐</el-radio>
+                    <el-radio label="right">右对齐</el-radio>
+                </el-radio-group>
+            </div>
+            <div class="adult-book-input-item">
+                <span class="adult-book-lable">横线长度:</span>
+                <el-input type="number" v-model="scope.row.DiaInputLength" style="width:150px"></el-input>
+            </div>
+          </template>
         </template>
       </el-table-column>
     </el-table>

+ 4 - 0
src/components/Adult/common/SentenceSegwordChs/components/SegbywordChs.vue

@@ -177,6 +177,8 @@ export default {
           fontFamily: "FZJCGFKTK",
           wordPadding: [],
           underLine: false,
+          DiaTextAlign: 'center',
+          DiaInputLength: '5'
         };
         wordsList.push(obj);
       });
@@ -228,6 +230,8 @@ export default {
           item.fontFamily = "FZJCGFKTK";
           item.wordPadding = [];
           item.underLine = false;
+          item.DiaTextAlign= 'center',
+          item.DiaInputLength= '5'
           return item;
         });
         this.$set(this.curQue, "wordsList", wordsList);

+ 4 - 0
src/components/Adult/inputModules/DialogueTem/components/SegbywordChs.vue

@@ -274,6 +274,8 @@ export default {
           fontFamily: "FZJCGFKTK",
           wordPadding: [],
           underLine: false,
+          DiaTextAlign: 'center',
+          DiaInputLength: '5'
         };
         wordsList.push(obj);
       });
@@ -323,6 +325,8 @@ export default {
           item.fontFamily = "FZJCGFKTK";
           item.wordPadding = [];
           item.underLine = false;
+          item.DiaTextAlign= 'center',
+          item.DiaInputLength= '5'
           return item;
         });
         this.$set(this.paraCon.wordsList, sentIndex, wordsList);

+ 2 - 2
src/components/Adult/inputModules/DialogueTem/index.vue

@@ -578,10 +578,8 @@ export default {
           });
           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;
@@ -600,6 +598,8 @@ export default {
             fontFamily: "FZJCGFKTK",
             wordPadding: [],
             underLine: false,
+            DiaTextAlign: 'center',
+            DiaInputLength: '5'
           };
           sentArr.push(obj);
         });

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

@@ -2,7 +2,7 @@
 <template>
   <div class="Big-Book-Single" v-if="curQue">
     <div class="Big-Book-Single-content" style="margin-top: 20px">
-      <div class="adult-book-input-item">
+      <!-- <div class="adult-book-input-item">
         <span class="adult-book-lable">标题:</span>           
         <el-input
           style="width: 300px"
@@ -14,7 +14,8 @@
           maxlength="500"
           show-word-limit
         ></el-input>
-      </div>
+      </div> -->
+      <SentenceSegwordChs :curQue="curQue.conDetail" name='标题' :type="'NewWord_chs'" />
       <div class="adult-book-input-item">
         <span class="adult-book-lable">标题颜色:</span>  
         <div class="adult-book-main">
@@ -155,6 +156,7 @@ import Inputmodule from "../common/Inputmodule.vue";
 import NewordPhraseModule from "../common/NewordPhraseModule.vue";
 import { getWordTime, getContentFile, prepareTranscribe } from "@/api/ajax";
 import Upload from "../common/Upload";
+import SentenceSegwordChs from "../common/SentenceSegwordChs/index.vue";
 export default {
   name: "Single",
   props: ["curQue", "changeCurQue"],
@@ -162,6 +164,7 @@ export default {
     Inputmodule,
     NewordPhraseModule,
     Upload,
+    SentenceSegwordChs
   },
   data() {
     return {
@@ -171,6 +174,14 @@ export default {
         type: "NewWord_chs",
         name: "生词",
         title: "",
+        conDetail:{
+          type: "detail",
+          pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+          sentence: "", //句子
+          segList: [], //分词结果
+          seg_words: "",
+          wordsList: [],
+        },
         isInfor: true,
         isWordShow: true,
         whiteSpace: false,
@@ -428,7 +439,17 @@ export default {
       if (!this.curQue.hasOwnProperty("wordTime")) {
         this.$set(this.curQue, "wordTime", null);
       }
-
+      if (!this.curQue.hasOwnProperty("conDetail")) {
+        let obj = {
+            type: "detail",
+            pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+            sentence: this.curQue.title, //句子
+            segList: [], //分词结果
+            seg_words: "",
+            wordsList: [],
+        }
+        this.$set(this.curQue, "conDetail", obj);
+      }
       // let data = JSON.parse(JSON.stringify(this.curQue));
       this.curQue.option.forEach((item) => {
         // if (!item[0].pinyin_site) {

+ 24 - 3
src/components/Adult/inputModules/Notes.vue

@@ -2,7 +2,7 @@
 <template>
   <div class="Big-Book-Single" v-if="curQue">
     <div class="Big-Book-Single-content" style="margin-top: 20px">
-      <div class="adult-book-input-item">
+      <!-- <div class="adult-book-input-item">
         <span class="adult-book-lable">标题:</span>           
         <el-input
           class="adult-book-input"
@@ -13,7 +13,8 @@
           maxlength="500"
           show-word-limit
         ></el-input>
-      </div>
+      </div> -->
+      <SentenceSegwordChs :curQue="curQue.conDetail" name='标题' :type="'NewWord_chs'" />
       <div class="adult-book-input-item">
         <span class="adult-book-lable">预览展开:</span>  
         <div class="adult-book-main">
@@ -100,10 +101,11 @@
 
 <script>
 import Upload from "../common/Upload.vue";
+import SentenceSegwordChs from "../common/SentenceSegwordChs/index.vue";
 export default {
   name: "Single",
   props: ["curQue", "changeCurQue"],
-  components: { Upload },
+  components: { Upload, SentenceSegwordChs },
   data() {
     return {
       imgNumber: 10000,
@@ -117,6 +119,14 @@ export default {
         type: "notes_chs",
         name: "注释",
         title: "",
+        conDetail:{
+          type: "detail",
+          pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+          sentence: "", //句子
+          segList: [], //分词结果
+          seg_words: "",
+          wordsList: [],
+        },
         isWordShow: true,
         option: [
           {
@@ -192,6 +202,17 @@ export default {
       if (!this.curQue.hasOwnProperty("isWordShow")) {
         this.$set(this.curQue, "isWordShow", true);
       }
+      if (!this.curQue.hasOwnProperty("conDetail")) {
+        let obj = {
+            type: "detail",
+            pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+            sentence: this.curQue.title, //句子
+            segList: [], //分词结果
+            seg_words: "",
+            wordsList: [],
+        }
+        this.$set(this.curQue, "conDetail", obj);
+      }
     }
   },
   beforeCreate() {}, //生命周期 - 创建之前

+ 6 - 0
src/components/Adult/inputModules/Picture.vue

@@ -76,6 +76,7 @@ export default {
           {
             hanzi: "",
             pinyin: "",
+            fontSize: '16px',
             mp3_list: [],
             img_list: [],
             isAnswer: "",
@@ -366,6 +367,11 @@ export default {
       }else if(this.type=='imgage_image'){
         this.curQue.name = "图片控件-纯图片"
       }
+      this.curQue.option.forEach(item=>{
+        if(!item.hasOwnProperty('fontSize')){
+            this.$set(item,'fontSize','16px')
+        }
+      })
     }
     let checkList = [];
     this.data_structure.fn_list.map((item) => {

+ 1 - 1
src/components/Adult/preview/ArticleViewChs/PhraseModelChs.vue

@@ -1125,7 +1125,7 @@ export default {
   .NNPE-detail {
     clear: both;
     overflow: hidden;
-    color: rgba(0, 0, 0, 0.65);
+    color: rgba(0, 0, 0, 1);
     .NNPE-words {
       float: left;
       &-box {

+ 3 - 2
src/components/Adult/preview/CourseStart.vue

@@ -110,7 +110,8 @@ export default {
       chsFhList: [",", "。", "“", ":", "》", "?", "!", ";"],
       noFont: ["~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")"], // 对应不要拼音字体
       pyNumber: 0,
-      maxFontsize: 16
+      maxFontsize: 16,
+      titleChsFhList:[",", "”","。",":", "》", "?", "!", ";"],
     };
   },
   //计算属性 类似于data概念
@@ -155,7 +156,7 @@ export default {
     },
     //词和标点合一起
     mergeWordSymbol(sItem) {
-      if (this.chsFhList.indexOf(sItem.chs) > -1) {
+      if (this.titleChsFhList.indexOf(sItem.chs) > -1) {
         sItem.isShow = false;
       } else {
         sItem.isShow = true;

+ 10 - 0
src/components/Adult/preview/DialogueArticleViewChs/AnswerModel.vue

@@ -153,6 +153,7 @@
                                 class="answer-input userRight"
                                 v-model="curQue.answerArr[pItem.hengIndex - 1]"
                                 :canEdit="false"
+                                :textAlign="pItem.config.DiaTextAlign"
                                 :style="hengStyle(pItem.config)"
                               />
                             </template>
@@ -190,6 +191,7 @@
                                 :hengIndex="pItem.hengIndex - 1"
                                 @saveBlankTF="saveBlankTF"
                                 :style="hengStyle(pItem.config)"
+                                :textAlign="pItem.config.DiaTextAlign"
                               />
                             </template>
                           </template>
@@ -421,6 +423,7 @@
                               v-model="curQue.answerArr[pItem.hengIndex - 1]"
                               :canEdit="false"
                               :style="hengStyle(pItem.config)"
+                              :textAlign="pItem.config.DiaTextAlign"
                             />
                           </template>
                           <template v-else>
@@ -457,6 +460,7 @@
                               :hengIndex="pItem.hengIndex - 1"
                               @saveBlankTF="saveBlankTF"
                               :style="hengStyle(pItem.config)"
+                              :textAlign="pItem.config.DiaTextAlign"
                             />
                           </template>
                         </template>
@@ -604,6 +608,7 @@
                         v-model="curQue.answerArr[pItem.hengIndex - 1]"
                         :canEdit="false"
                         :style="hengStyle(pItem.config)"
+                        :textAlign="pItem.config.DiaTextAlign"
                       />
                     </template>
                     <template v-else>
@@ -635,6 +640,7 @@
                         :hengIndex="pItem.hengIndex - 1"
                         @saveBlankTF="saveBlankTF"
                         :style="hengStyle(pItem.config)"
+                        :textAlign="pItem.config.DiaTextAlign"
                       />
                     </template>
                   </template>
@@ -828,6 +834,8 @@ export default {
           lineHeight: Number(sizeVal) + 12 + "px",
           fontSize: config ? config.fontSize : '20px',
           fontFamily: config ? config.fontFamily : 'FZJCGFKTK',
+          textAlign: config&&config.DiaTextAlign?config.DiaTextAlign:'left',
+          width: config&&config.DiaInputLength?config.DiaInputLength*Number(sizeVal)+'px':''
         };
       };
     },
@@ -947,6 +955,8 @@ export default {
                   fontSize: wItem.fontSize,
                   underLine: wItem.underLine,
                   wordPadding: wItem.wordPadding,
+                  DiaTextAlign: wItem.DiaTextAlign?wItem.DiaTextAlign:'left',
+                  DiaInputLength: wItem.DiaInputLength?wItem.DiaInputLength:''
                 },
                 leg: wItem.chs.length,
                 chstimeList: [],

+ 9 - 3
src/components/Adult/preview/Ligature.vue

@@ -120,7 +120,7 @@
                   </template>
                 </div>
               </div>
-              <span>{{ item.Number }}</span>
+              <span v-if="item.Number">{{ item.Number }}</span>
               <img
                 v-if="JSON.stringify(data).indexOf(item.nodeId) == -1"
                 name="source"
@@ -166,7 +166,7 @@
                 src="../../../assets/adult/LineImg-select.png"
                 alt=""
               />
-              <span>{{ item.Number }}</span>
+              <span v-if="item.Number">{{ item.Number }}</span>
               <div>
                 <img
                   v-if="item.img_list.length > 0"
@@ -912,6 +912,9 @@ export default {
                     text-decoration: underline;
                 }
               }
+              >div{
+                padding: 0 2px;
+              }
             }
           }
           span {
@@ -1001,6 +1004,9 @@ export default {
                     text-decoration: underline;
                 }
               }
+              >div{
+                padding: 0 2px;
+              }
             }
           }
         }
@@ -1017,7 +1023,7 @@ export default {
     }
     > div {
       float: right;
-      width: 72px;
+      width: 80px;
       height: 40px;
       background: #ffffff;
       border: 1px solid rgba(0, 0, 0, 0.1);

+ 48 - 3
src/components/Adult/preview/Notes.vue

@@ -2,7 +2,23 @@
   <div class="NPC-zhedie">
     <div class="topTitle">
       <div class="NPC-top-left">
-        <span class="NPC-topTitle-text">{{ curQue.title }}</span>
+        <template v-if="curQue.conDetail&&curQue.conDetail.sentence">
+            <div class="item-intro">
+                <OneSentenceTemp
+                    :detail="curQue.conDetail"
+                    :TaskModel="TaskModel"
+                    :Bookanswer="[]"
+                    :correctAnswer="[]"
+                    :isInput="
+                        false
+                    "
+                    :fn_check_list="[]"
+                    :pyNumber="0"
+                    :record_check="[]"
+                />
+            </div>
+        </template>
+        <span class="NPC-topTitle-text" v-else>{{ curQue.title }}</span>
       </div>
       <div class="NPC-top-right" @click="handleChangeTab">
         <span class="NPC-top-right-text">{{ wordShow ? "收起" : "展开" }}</span>
@@ -46,16 +62,20 @@
 //这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 //例如:import 《组件名称》from ‘《组件路径》';
 import WordPhraseDetail from "./components/WordPhraseDetail.vue";
+import OneSentenceTemp from "./components/OneSentenceTemp.vue";
 export default {
   //import引入的组件需要注入到对象中才能使用
   components: {
     WordPhraseDetail,
+    OneSentenceTemp
   },
-  props: ["curQue"],
+  props: ["curQue","TaskModel"],
   data() {
     //这里存放数据
     return {
       wordShow: this.curQue.hasOwnProperty("isWordShow")?this.curQue.isWordShow:true,
+      chsFhList: [",", "。", "“", ":", "》", "?", "!", ";"],
+      titleChsFhList:[",", "”","。",":", "》", "?", "!", ";"],
     };
   },
   //计算属性 类似于data概念
@@ -67,9 +87,34 @@ export default {
     handleChangeTab() {
       this.wordShow = !this.wordShow;
     },
+    //词和标点合一起
+    mergeWordSymbol(sItem) {
+      if (this.titleChsFhList.indexOf(sItem.chs) > -1) {
+        sItem.isShow = false;
+      } else {
+        sItem.isShow = true;
+      }
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created() {},
+  created() {
+    if(this.curQue.hasOwnProperty("conDetail")){
+        if (this.curQue.conDetail.wordsList.length > 0) {
+            this.curQue.conDetail.wordsList.forEach((sItem, sIndex) => {
+                this.mergeWordSymbol(sItem);
+                sItem.fontColor='rgba(255, 255, 255, 1)'
+                sItem.fontSize = '16px'
+                sItem.fontWeight = 'bold'
+            });
+        } 
+        this.$set(this.curQue.conDetail, "config", {
+            fontColor:'#fff',
+            fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+            fontSize: '16px',
+            fontWeight: 'bold'
+        });
+      }
+  },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {},
   //生命周期-创建之前

+ 15 - 7
src/components/Adult/preview/Picture.vue

@@ -14,7 +14,7 @@
             class="pinyin"
             >{{ items.pinyin }}</span
           >
-          <p v-if="items.hanzi">{{ items.hanzi }}</p>
+          <p v-if="items.hanzi" :style="{fontSize:items.fontSize}">{{ items.hanzi }}</p>
           <span
             v-if="items.pinyin && items.pinyinSite == 'bottom'"
             class="pinyin"
@@ -48,7 +48,7 @@
             class="pinyin"
             >{{ items.pinyin }}</span
           >
-          <p v-if="items.hanzi">{{ items.hanzi }}</p>
+          <p v-if="items.hanzi" :style="{fontSize:items.fontSize}">{{ items.hanzi }}</p>
           <span
             v-if="items.pinyin && items.pinyinSite == 'bottom'"
             class="pinyin"
@@ -71,6 +71,7 @@
             :readonly="TaskModel == 'ANSWER'"
             maxlength="200"
             :class="['singleInput', 'userRight', inputAnswerClass('input', 0)]"
+            :style="{fontSize:items.fontSize}"
           />
         </template>
         <template v-else>
@@ -81,6 +82,7 @@
             :readonly="TaskModel == 'ANSWER'"
             maxlength="200"
             :class="['singleInput', inputAnswerClass('input', 0)]"
+            :style="{fontSize:items.fontSize}"
           />
         </template>
       </template>
@@ -88,7 +90,7 @@
       <!-- 补齐输入 -->
       <template v-if="ChildType == 'image_gdcy'">
         <div class="fill-box">
-          <b v-if="items.hanzi">{{ items.hanzi }}</b>
+          <b v-if="items.hanzi" :style="{fontSize:items.fontSize}">{{ items.hanzi }}</b>
           <template v-if="judgeAnswer == 'standardAnswer'">
             <input
               v-model="curQue.correct[0].input[0]"
@@ -97,6 +99,7 @@
               :readonly="true"
               maxlength="200"
               :class="inputAnswerClass('input', 0)"
+              :style="{fontSize:items.fontSize}"
             />
           </template>
           <template v-else>
@@ -107,6 +110,7 @@
               :readonly="TaskModel == 'ANSWER'"
               maxlength="200"
               :class="inputAnswerClass('input', 0)"
+              :style="{fontSize:items.fontSize}"
             />
           </template>
         </div>
@@ -121,6 +125,7 @@
               :readonly="true"
               maxlength="200"
               :class="inputAnswerClass('input', 0)"
+              :style="{fontSize:items.fontSize}"
             />
             <input
               placeholder=""
@@ -128,6 +133,7 @@
               :readonly="true"
               maxlength="200"
               :class="inputAnswerClass('input', 1)"
+              :style="{fontSize:items.fontSize}"
             />
           </template>
           <template v-else>
@@ -138,6 +144,7 @@
               :readonly="TaskModel == 'ANSWER'"
               maxlength="200"
               :class="inputAnswerClass('input', 0)"
+              :style="{fontSize:items.fontSize}"
             />
             <input
               placeholder=""
@@ -146,6 +153,7 @@
               :readonly="TaskModel == 'ANSWER'"
               maxlength="200"
               :class="inputAnswerClass('input', 1)"
+              :style="{fontSize:items.fontSize}"
             />
           </template>
         </div>
@@ -206,7 +214,7 @@
                       class="pinyin"
                       >{{ itemss.pinyin }}</span
                     >
-                    <p v-if="itemss.hanzi">{{ itemss.hanzi }}</p>
+                    <p v-if="itemss.hanzi" :style="{fontSize:items.fontSize}">{{ itemss.hanzi }}</p>
                     <span
                       v-if="itemss.pinyin && items.pinyinSite == 'bottom'"
                       class="pinyin"
@@ -234,7 +242,7 @@
                       class="pinyin"
                       >{{ itemss.pinyin }}</span
                     >
-                    <p v-if="itemss.hanzi">{{ itemss.hanzi }}</p>
+                    <p v-if="itemss.hanzi" :style="{fontSize:items.fontSize}">{{ itemss.hanzi }}</p>
                     <span
                       v-if="itemss.pinyin && items.pinyinSite == 'bottom'"
                       class="pinyin"
@@ -266,7 +274,7 @@
                       class="pinyin"
                       >{{ itemss.pinyin }}</span
                     >
-                    <p v-if="itemss.hanzi">{{ itemss.hanzi }}</p>
+                    <p v-if="itemss.hanzi" :style="{fontSize:items.fontSize}">{{ itemss.hanzi }}</p>
                     <span
                       v-if="itemss.pinyin && items.pinyinSite == 'bottom'"
                       class="pinyin"
@@ -295,7 +303,7 @@
                       class="pinyin"
                       >{{ itemss.pinyin }}</span
                     >
-                    <p v-if="itemss.hanzi">{{ itemss.hanzi }}</p>
+                    <p v-if="itemss.hanzi" :style="{fontSize:items.fontSize}">{{ itemss.hanzi }}</p>
                     <span
                       v-if="itemss.pinyin && items.pinyinSite == 'bottom'"
                       class="pinyin"

+ 2 - 1
src/components/Adult/preview/PreviewDialogueNPC.vue

@@ -873,6 +873,7 @@ export default {
       groupCheckList: [], // checkbox 是否选中
       judgeAnswersList: ["userAnswer", "standardAnswer"],
       visiblePreviewDialog: false,
+      titleChsFhList:[",", "”","。",":", "》", "?", "!", ";"],
     };
   },
   computed: {},
@@ -1124,7 +1125,7 @@ export default {
     },
     //词和标点合一起
     mergeWordSymbol(sItem) {
-      if (this.chsFhList.indexOf(sItem.chs) > -1) {
+      if (this.titleChsFhList.indexOf(sItem.chs) > -1) {
         sItem.isShow = false;
       } else {
         sItem.isShow = true;

+ 31 - 3
src/components/Adult/preview/SentenceSortQP.vue

@@ -19,7 +19,7 @@
       :key="index"
     >
       <div class="item-right">
-        <b>{{ judgeAnswer == 'standardAnswer' ? item.number ? item.number : item.itemIndex + 1 : item.number ? item.number : index+ 1}}</b>
+        <b :style="{background:item.number?'':'none'}">{{ item.number ? item.number : ''}}</b>
         <draggable
           v-model="item.detail.wordsList"
           animation="300"
@@ -202,22 +202,50 @@ export default {
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {
     let data = JSON.parse(JSON.stringify(this.curQue.option));
-    data.forEach((item) => {
+    data.forEach((item,indexd) => {
       item.userAnswerJudge = "[JUDGE##F##JUDGE]";
       let arr = [];
       this.SortArr.push(arr);
       item.detail.wordsList.forEach((it, i) => {
         it.index = it.chs + it.pinyin + i;
       });
+      let correctWordsList = []
+      if(item.correctWordsList.length!==item.detail.wordsList.length){
+        let correctArr = item.detail.seg_words.split(' ')
+        correctArr.forEach((itemC,indexC)=>{
+            for(let i = 0; i<item.detail.wordsList.length; i++){
+                if(item.detail.wordsList[i].chs===itemC){
+                    let obj = {
+                        chs: item.detail.wordsList[i].chs,
+                        fontColor: '#000',
+                        fontFamily: 'FZJCGFKTK',
+                        fontSize: "16px",
+                        pinyin: item.detail.wordsList[i].pinyin,
+                        underLine: false,
+                        wordPadding: []
+                    }
+                    correctWordsList.push(obj)
+                    return false
+                }
+            }
+        })
+        item.correctWordsList = correctWordsList
+        this.curQue.option[indexd].correctWordsList = correctWordsList
+      }
     });
     this.orgData = JSON.parse(JSON.stringify(this.curQue.option));
     if (!this.curQue.Bookanswer) {
       this.$set(this.curQue, "Bookanswer", data);
+    }else{
+        this.curQue.Bookanswer.forEach((itemB,indexB)=>{
+            itemB.correctWordsList = data[indexB].correctWordsList
+        })
+        console.log(this.curQue.Bookanswer)
     }
     if (this.judgeAnswer == "standardAnswer") {
       this.curQue.Bookanswer.forEach((item, i) => {
         if (item.userAnswerJudge == "[JUDGE##F##JUDGE]") {
-          this.curQue.option[i].itemIndex = this.curQue.option[i].number ? this.curQue.option[i].number : i
+          this.curQue.option[i].itemIndex = this.curQue.option[i].number ? this.curQue.option[i].number : ''
           this.userErrList.push(
             JSON.parse(JSON.stringify(this.curQue.option[i]))
           );

+ 46 - 2
src/components/Adult/preview/WordPhrase.vue

@@ -2,7 +2,23 @@
   <div class="NPC-zhedie" v-if="curQue">
     <div :class="curQue.titleBg == 'white' ? 'topTitleWhite' : 'topTitle'">
       <div class="NPC-top-left">
-        <span class="NPC-topTitle-text">{{ curQue.title }}</span>
+        <template v-if="curQue.conDetail&&curQue.conDetail.sentence">
+            <div class="item-intro">
+                <OneSentenceTemp
+                    :detail="curQue.conDetail"
+                    :TaskModel="TaskModel"
+                    :Bookanswer="[]"
+                    :correctAnswer="[]"
+                    :isInput="
+                        false
+                    "
+                    :fn_check_list="[]"
+                    :pyNumber="0"
+                    :record_check="[]"
+                />
+            </div>
+        </template>
+        <span class="NPC-topTitle-text" v-else>{{ curQue.title }}</span>
         <!-- <span
           :class="['NPC-play-all', playClass]"
           @click.stop="playNewwords"
@@ -268,12 +284,14 @@
 import WordPhraseDetail from "./components/WordPhraseDetail.vue";
 import AudioLine from "../preview/AudioLine.vue";
 import Soundrecord from "../preview/Soundrecord.vue"; // 录音模板
+import OneSentenceTemp from "./components/OneSentenceTemp.vue";
 export default {
   //import引入的组件需要注入到对象中才能使用
   components: {
     WordPhraseDetail,
     AudioLine,
-    Soundrecord
+    Soundrecord,
+    OneSentenceTemp
   },
   props: ["curQue", "themeColor", "currentTreeID", "indexs", "indexss","indexStr", "TaskModel", "judgeAnswer"],
   data() {
@@ -295,6 +313,8 @@ export default {
       curTime: 0,
       stopAudioS: false,
       ed: null,
+      chsFhList: [",", "。", "“", ":", "》", "?", "!", ";"],
+      titleChsFhList:[",", "”","。",":", "》", "?", "!", ";"],
     };
   },
   //计算属性 类似于data概念
@@ -500,6 +520,30 @@ export default {
             this.$set(this.curQue, "Bookanswer", Bookanswer);
         }
       }
+      if(this.curQue.hasOwnProperty("conDetail")){
+        if (this.curQue.conDetail.wordsList.length > 0) {
+            this.curQue.conDetail.wordsList.forEach((sItem, sIndex) => {
+                this.mergeWordSymbol(sItem);
+                sItem.fontColor='rgba(255, 255, 255, 1)'
+                sItem.fontSize = '16px'
+                sItem.fontWeight = 'bold'
+            });
+        } 
+        this.$set(this.curQue.conDetail, "config", {
+            fontColor:'#fff',
+            fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+            fontSize: '16px',
+            fontWeight: 'bold'
+        });
+      }
+    },
+    //词和标点合一起
+    mergeWordSymbol(sItem) {
+      if (this.titleChsFhList.indexOf(sItem.chs) > -1) {
+        sItem.isShow = false;
+      } else {
+        sItem.isShow = true;
+      }
     },
     handleChangeTab() {
       this.wordShow = !this.wordShow;