فهرست منبع

正副标题分词

natasha 1 سال پیش
والد
کامیت
78993d4b65

+ 113 - 7
src/components/Adult/Preview.vue

@@ -186,7 +186,7 @@
           >
             <template v-if="itemJ != 'standardAnswer'">
               <div
-                v-if="item.number || item.z_title || item.f_title"
+                v-if="item.number || item.z_title || item.f_title || item.z_title_detail&&item.z_title_detail.sentence || item.f_title_detail&&item.f_title_detail.sentence"
                 class="title-big"
               >
                 <b v-if="item.number">{{ item.number }}</b>
@@ -194,10 +194,45 @@
                   class="title-box-right"
                   :class="[item.is_textIndex ? 'title-box-right-index' : '']"
                 >
-                  <h2 v-if="item.z_title" v-html="item.z_title" />
+                  <template v-if="item.z_title_detail&&item.z_title_detail.sentence">
+                    <div class="item-intro">
+                        <OneSentenceTemp
+                            :detail="item.z_title_detail"
+                            :TaskModel="TaskModel"
+                            :Bookanswer="[]"
+                            :correctAnswer="[]"
+                            :isInput="
+                                false
+                            "
+                            :fn_check_list="[]"
+                            :pyNumber="0"
+                            :record_check="[]"
+                            :maxFontsize="'16'"
+                        />
+                    </div>
+                  </template>
+                  <h2 v-else-if="item.z_title" v-html="item.z_title" />
+                  <template v-if="item.f_title_detail&&item.f_title_detail.sentence">
+                    <div class="item-intro">
+                        <OneSentenceTemp
+                            :detail="item.f_title_detail"
+                            :TaskModel="TaskModel"
+                            :Bookanswer="[]"
+                            :correctAnswer="[]"
+                            :isInput="
+                                false
+                            "
+                            :fn_check_list="[]"
+                            :pyNumber="0"
+                            :record_check="[]"
+                            :maxFontsize="'16'"
+                            :style="{ marginTop: item.z_title||item.z_title_detail&&item.z_title_detail.sentence ? '8px' : '0' }"
+                        />
+                    </div>
+                  </template>
                   <h3
-                    v-if="item.f_title"
-                    :style="{ marginTop: item.z_title ? '8px' : '0' }"
+                    v-else-if="item.f_title"
+                    :style="{ marginTop: item.z_title||item.z_title_detail&&item.z_title_detail.sentence ? '8px' : '0' }"
                     v-html="item.f_title"
                   />
                 </div>
@@ -205,13 +240,30 @@
               <div
                 class="title-little"
                 :class="[
-                  item.little_title_number || item.little_title
+                  item.little_title_number || item.little_title || item.l_title_detail&&item.l_title_detail.sentence
                     ? 'marginTop'
                     : '',
                 ]"
               >
                 <b v-html="item.little_title_number" />
-                <p v-html="item.little_title" />
+                <template v-if="item.l_title_detail&&item.l_title_detail.sentence">
+                    <div class="item-intro">
+                        <OneSentenceTemp
+                            :detail="item.l_title_detail"
+                            :TaskModel="TaskModel"
+                            :Bookanswer="[]"
+                            :correctAnswer="[]"
+                            :isInput="
+                                false
+                            "
+                            :fn_check_list="[]"
+                            :pyNumber="0"
+                            :record_check="[]"
+                            :maxFontsize="'16'"
+                        />
+                    </div>
+                  </template>
+                <p v-html="item.little_title" v-else-if="item.little_title" />
               </div>
             </template>
             <div
@@ -868,6 +920,7 @@ import OptionsList from "./preview/OptionsList.vue"; // 选项模板
 import SentenceMulModule from "./preview/SentenceMulModule.vue" // 多题干模板
 
 import PreviewDialogueNPC from "./preview/PreviewDialogueNPC.vue"; // 选项模板
+import OneSentenceTemp from "./preview/components/OneSentenceTemp.vue";
 
 import { getToken } from "../../utils/auth";
 
@@ -913,7 +966,8 @@ export default {
     SentenceModule,
     OptionsList,
     PreviewDialogueNPC,
-    SentenceMulModule
+    SentenceMulModule,
+    OneSentenceTemp
   },
   props: [
     "context",
@@ -1122,6 +1176,50 @@ export default {
         // }
         _this.cur = _this.contextData;
         _this.cur.cur_fn_data.forEach((item, index) => {
+            if(item.hasOwnProperty("z_title_detail")){
+              if (item.z_title_detail.wordsList.length > 0) {
+                item.z_title_detail.wordsList.forEach((sItem, sIndex) => {
+                  this.mergeWordSymbol(sItem);
+                  sItem.fontColor=this.themeColor==='green'?'#24b99e':this.themeColor==='brown'?'#bd8865':'#e35454'
+                  sItem.fontSize = '16px'
+                  sItem.fontWeight = 'bold'
+                });
+              }
+              this.$set(item.z_title_detail, "config", {
+                fontColor:this.themeColor==='green'?'#24b99e':this.themeColor==='brown'?'#bd8865':'#e35454',
+                fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+                fontSize: '16px',
+                fontWeight: 'bold'
+              });
+            }
+            if(item.hasOwnProperty("f_title_detail")){
+              if (item.f_title_detail.wordsList.length > 0) {
+                item.f_title_detail.wordsList.forEach((sItem, sIndex) => {
+                  this.mergeWordSymbol(sItem);
+                  sItem.fontColor='#000000'
+                  sItem.fontSize = '16px'
+                });
+              }
+              this.$set(item.f_title_detail, "config", {
+                fontColor:'#000000',
+                fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+                fontSize: '16px'
+              });
+            }
+            if(item.hasOwnProperty("l_title_detail")){
+              if (item.l_title_detail.wordsList.length > 0) {
+                item.l_title_detail.wordsList.forEach((sItem, sIndex) => {
+                  this.mergeWordSymbol(sItem);
+                  sItem.fontColor='#000000'
+                  sItem.fontSize = '16px'
+                });
+              }
+              this.$set(item.l_title_detail, "config", {
+                fontColor:'#000000',
+                fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+                fontSize: '16px'
+              });
+            }
           this.groupCheckList.push(false);
           selectGropuIdList.forEach((itemId) => {
             itemId.forEach((itemIds) => {
@@ -1210,6 +1308,14 @@ export default {
       }
       this.$forceUpdate();
     },
+    //词和标点合一起
+    mergeWordSymbol(sItem) {
+      if (this.chsFhList.indexOf(sItem.chs) > -1) {
+        sItem.isShow = false;
+      } else {
+        sItem.isShow = true;
+      }
+    },
     // 上一页
     handleNNPEprev() {
       let _this = this;

+ 6 - 5
src/components/Adult/common/SegwordConfig.vue

@@ -7,7 +7,8 @@
         curQue &&
         type != 'sentence_segtemp_chs' &&
         type != 'sort_chs' &&
-        type != 'sentence_listen_read_chs'
+        type != 'sentence_listen_read_chs' &&
+        type!=='adultinput'
       "
       style="margin-top: 10px"
     >
@@ -59,7 +60,7 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column label="拼音" width="220">
+      <el-table-column label="拼音" width="220" v-if="type!=='adultinput'">
         <template slot-scope="scope">
           <div class="adult-book-input-item">
             <el-input
@@ -79,11 +80,11 @@
         label="配置"
         v-if="
           type != 'sort_chs' &&
-          type != 'sentence_listen_read_chs'
+          type != 'sentence_listen_read_chs' 
         "
       >
         <template slot-scope="scope">
-          <div class="adult-book-input-item">
+          <div class="adult-book-input-item" v-if="type!=='adultinput'">
             <span class="adult-book-lable">字的大小:</span>
             <el-radio-group v-model="scope.row.fontSize">
               <el-radio label="12px">12px</el-radio>
@@ -123,7 +124,7 @@
               </el-radio>
             </el-radio-group>
           </div>
-          <div class="adult-book-input-item">
+          <div class="adult-book-input-item" v-if="type!=='adultinput'">
             <span class="adult-book-lable">设置下划线:</span>
             <el-checkbox v-model="scope.row.underLine">显示下划线</el-checkbox>
           </div>

+ 1 - 1
src/components/Adult/common/SentenceSegwordChs/components/SegbywordChs.vue

@@ -57,7 +57,7 @@
             <el-button type="danger" size="small" @click="_sureSegWord"
               >确定分词结果</el-button
             >
-            <el-button type="danger" size="small" @click="_createPinyin"
+            <el-button type="danger" size="small" @click="_createPinyin" v-if="type!=='adultinput'"
               >确定生成拼音</el-button
             >
           </div>

+ 133 - 27
src/components/Adult/preview/PreviewDialogueNPC.vue

@@ -54,35 +54,87 @@
               "
             >
               <template v-if="itemJ != 'standardAnswer'">
+              <div
+                v-if="item.number || item.z_title || item.f_title || item.z_title_detail&&item.z_title_detail.sentence || item.f_title_detail&&item.f_title_detail.sentence"
+                class="title-big"
+              >
+                <b v-if="item.number">{{ item.number }}</b>
                 <div
-                  v-if="item.number || item.z_title || item.f_title"
-                  class="title-big"
-                >
-                  <b v-if="item.number">{{ item.number }}</b>
-                  <div
-                    class="title-box-right"
-                    :class="[item.is_textIndex ? 'title-box-right-index' : '']"
-                  >
-                    <h2 v-if="item.z_title" v-html="item.z_title" />
-                    <h3
-                      v-if="item.f_title"
-                      :style="{ marginTop: item.z_title ? '8px' : '0' }"
-                      v-html="item.f_title"
-                    />
-                  </div>
-                </div>
-                <div
-                  class="title-little"
-                  :class="[
-                    item.little_title_number || item.little_title
-                      ? 'marginTop'
-                      : '',
-                  ]"
+                  class="title-box-right"
+                  :class="[item.is_textIndex ? 'title-box-right-index' : '']"
                 >
-                  <b v-html="item.little_title_number" />
-                  <p v-html="item.little_title" />
+                  <template v-if="item.z_title_detail&&item.z_title_detail.sentence">
+                    <div class="item-intro">
+                        <OneSentenceTemp
+                            :detail="item.z_title_detail"
+                            :TaskModel="TaskModel"
+                            :Bookanswer="[]"
+                            :correctAnswer="[]"
+                            :isInput="
+                                false
+                            "
+                            :fn_check_list="[]"
+                            :pyNumber="0"
+                            :record_check="[]"
+                            :maxFontsize="'16'"
+                        />
+                    </div>
+                  </template>
+                  <h2 v-else-if="item.z_title" v-html="item.z_title" />
+                  <template v-if="item.f_title_detail&&item.f_title_detail.sentence">
+                    <div class="item-intro">
+                        <OneSentenceTemp
+                            :detail="item.f_title_detail"
+                            :TaskModel="TaskModel"
+                            :Bookanswer="[]"
+                            :correctAnswer="[]"
+                            :isInput="
+                                false
+                            "
+                            :fn_check_list="[]"
+                            :pyNumber="0"
+                            :record_check="[]"
+                            :maxFontsize="'16'"
+                            :style="{ marginTop: item.z_title||item.z_title_detail&&item.z_title_detail.sentence ? '8px' : '0' }"
+                        />
+                    </div>
+                  </template>
+                  <h3
+                    v-else-if="item.f_title"
+                    :style="{ marginTop: item.z_title||item.z_title_detail&&item.z_title_detail.sentence ? '8px' : '0' }"
+                    v-html="item.f_title"
+                  />
                 </div>
-              </template>
+              </div>
+              <div
+                class="title-little"
+                :class="[
+                  item.little_title_number || item.little_title || item.l_title_detail&&item.l_title_detail.sentence
+                    ? 'marginTop'
+                    : '',
+                ]"
+              >
+                <b v-html="item.little_title_number" />
+                <template v-if="item.l_title_detail&&item.l_title_detail.sentence">
+                    <div class="item-intro">
+                        <OneSentenceTemp
+                            :detail="item.l_title_detail"
+                            :TaskModel="TaskModel"
+                            :Bookanswer="[]"
+                            :correctAnswer="[]"
+                            :isInput="
+                                false
+                            "
+                            :fn_check_list="[]"
+                            :pyNumber="0"
+                            :record_check="[]"
+                            :maxFontsize="'16'"
+                        />
+                    </div>
+                  </template>
+                <p v-html="item.little_title" v-else-if="item.little_title" />
+              </div>
+            </template>
               <div
                 :class="[
                   'NNPE-tableList',
@@ -711,6 +763,7 @@ import SentenceModule from "./SentenceModule.vue"; // 图片模板
 import PlayRecordView from "./PlayRecordView.vue";
 import OptionsList from "./OptionsList.vue"; // 选项模板
 import SentenceMulModule from "./SentenceMulModule.vue" // 多题干模板
+import OneSentenceTemp from "./components/OneSentenceTemp.vue";
 
 import { getToken } from "../../../utils/auth";
 
@@ -755,7 +808,8 @@ export default {
     PlayRecordView,
     SentenceModule,
     OptionsList,
-    SentenceMulModule
+    SentenceMulModule,
+    OneSentenceTemp
   },
   props: [
     "context",
@@ -961,6 +1015,50 @@ export default {
         // }
         _this.cur = _this.contextData;
         _this.cur.cur_fn_data.forEach((item, index) => {
+            if(item.hasOwnProperty("z_title_detail")){
+              if (item.z_title_detail.wordsList.length > 0) {
+                item.z_title_detail.wordsList.forEach((sItem, sIndex) => {
+                  this.mergeWordSymbol(sItem);
+                  sItem.fontColor=this.themeColor==='green'?'#24b99e':this.themeColor==='brown'?'#bd8865':'#e35454'
+                  sItem.fontSize = '16px'
+                  sItem.fontWeight = 'bold'
+                });
+              }
+              this.$set(item.z_title_detail, "config", {
+                fontColor:this.themeColor==='green'?'#24b99e':this.themeColor==='brown'?'#bd8865':'#e35454',
+                fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+                fontSize: '16px',
+                fontWeight: 'bold'
+              });
+            }
+            if(item.hasOwnProperty("f_title_detail")){
+              if (item.f_title_detail.wordsList.length > 0) {
+                item.f_title_detail.wordsList.forEach((sItem, sIndex) => {
+                  this.mergeWordSymbol(sItem);
+                  sItem.fontColor='#000000'
+                  sItem.fontSize = '16px'
+                });
+              }
+              this.$set(item.f_title_detail, "config", {
+                fontColor:'#000000',
+                fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+                fontSize: '16px'
+              });
+            }
+            if(item.hasOwnProperty("l_title_detail")){
+              if (item.l_title_detail.wordsList.length > 0) {
+                item.l_title_detail.wordsList.forEach((sItem, sIndex) => {
+                  this.mergeWordSymbol(sItem);
+                  sItem.fontColor='#000000'
+                  sItem.fontSize = '16px'
+                });
+              }
+              this.$set(item.l_title_detail, "config", {
+                fontColor:'#000000',
+                fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
+                fontSize: '16px'
+              });
+            }
           this.groupCheckList.push(false);
           selectGropuIdList.forEach((itemId) => {
             itemId.forEach((itemIds) => {
@@ -1024,6 +1122,14 @@ export default {
       }
       this.$forceUpdate();
     },
+    //词和标点合一起
+    mergeWordSymbol(sItem) {
+      if (this.chsFhList.indexOf(sItem.chs) > -1) {
+        sItem.isShow = false;
+      } else {
+        sItem.isShow = true;
+      }
+    },
     // 上一页
     handleNNPEprev() {
       let _this = this;

+ 19 - 2
src/components/Adult/preview/components/OneSentenceTemp.vue

@@ -21,6 +21,16 @@
         ]"
         v-for="(pItem, pIndex) in detail.wordsList"
         :key="'wordsList' + pIndex"
+        :style="{
+            paddingLeft:
+              pItem.wordPadding.indexOf('left') > -1 
+                ? '2px'
+                : '',
+            paddingRight:
+              pItem.wordPadding.indexOf('right') > -1
+                ? '2px'
+                : '',
+        }"
       >
         <template v-if="pItem.isShow">
           <template
@@ -57,6 +67,7 @@
                     color: pItem.fontColor != 'sub' ? pItem.fontColor : '',
                     fontFamily: pItem.fontFamily,
                     lineHeight: (maxFontsize * 3) / 2 + 'px',
+                    fontWeight: pItem.fontWeight
                   }"
                   >{{ pItem.chs }}</span
                 >
@@ -210,6 +221,7 @@
                       color: pItem.fontColor != 'sub' ? pItem.fontColor : '',
                       fontFamily: pItem.fontFamily,
                       lineHeight: (maxFontsize * 3) / 2 + 'px',
+                      fontWeight: pItem.fontWeight
                     }"
                     :class="[
                       pItem.chs != '“' && pItem.padding ? 'padding' : '',
@@ -265,6 +277,7 @@
                       : '',
                   fontFamily: detail.wordsList[pIndex + 1].fontFamily,
                   lineHeight: (maxFontsize * 3) / 2 + 'px',
+                  fontWeight: pItem.fontWeight
                 }"
                 >{{ detail.wordsList[pIndex + 1].chs }}</span
               >
@@ -321,6 +334,7 @@
                   color: pItem.fontColor != 'sub' ? pItem.fontColor : '',
                   fontFamily: detail.wordsList[pIndex + 2].fontFamily,
                   lineHeight: (maxFontsize * 3) / 2 + 'px',
+                  fontWeight: pItem.fontWeight
                 }"
                 >{{ detail.wordsList[pIndex + 2].chs }}</span
               >
@@ -366,6 +380,7 @@
                   color: pItem.fontColor != 'sub' ? pItem.fontColor : '',
                   fontFamily: pItem.fontFamily,
                   lineHeight: (maxFontsize * 3) / 2 + 'px',
+                  fontWeight: pItem.fontWeight
                 }"
                 :class="[
                   pItem.chs != '“' && pItem.padding ? 'padding' : '',
@@ -523,6 +538,7 @@
                     textAlign: 'left',
                     fontFamily: pItem.fontFamily,
                     lineHeight: (maxFontsize * 3) / 2 + 'px',
+                    fontWeight: pItem.fontWeight
                   }"
                   :class="[
                     pItem.chs != '“' && pItem.padding ? 'padding' : '',
@@ -553,7 +569,7 @@
       <div
         :class="[
           'sentence',
-          detail.config.fontColor == 'sub' ? 'sentenceColor' : '',
+          detail.config&&detail.config.fontColor == 'sub' ? 'sentenceColor' : '',
         ]"
         v-for="(item, index) in detail.sentenceArr"
         :key="'sentenceArr' + index"
@@ -570,7 +586,7 @@
       <div
         :class="[
           'sentence',
-          detail.config.fontColor == 'sub' ? 'sentenceColor' : '',
+          detail.config&&detail.config.fontColor == 'sub' ? 'sentenceColor' : '',
         ]"
         v-html="detail.sentence"
         :style="[
@@ -664,6 +680,7 @@ export default {
           color: config.fontColor != "sub" ? config.fontColor : "",
           fontSize: config.fontSize,
           fontFamily: config.fontFamily,
+          fontWeight: config.fontWeight
         };
       }
       return styleConfig;

+ 69 - 8
src/views/adultInput.vue

@@ -182,7 +182,7 @@
                   @blur="onBlur(topic, 'number')"
                 />
               </div>
-              <div class="adult-book-input-item">
+              <!-- <div class="adult-book-input-item">
                 <span class="adult-book-lable">正标题:</span>
                 <el-input
                   v-model="topic.z_title"
@@ -193,8 +193,9 @@
                   show-word-limit
                   @blur="onBlur(topic, 'z_title')"
                 />
-              </div>
-              <div class="adult-book-input-item">
+              </div> -->
+              <sentence-segword-chs-detail :name="'正标题'" :curQue="topic.z_title_detail" type='adultinput' />
+              <!-- <div class="adult-book-input-item">
                 <span class="adult-book-lable">副标题:</span>
                 <el-input
                   v-model="topic.f_title"
@@ -205,9 +206,10 @@
                   show-word-limit
                   @blur="onBlur(topic, 'f_title')"
                 />
-              </div>
+              </div> -->
+              <sentence-segword-chs-detail :name="'副标题'" :curQue="topic.f_title_detail" type='adultinput' />
               <div class="adult-book-input-item">
-                <span class="adult-book-lable">标题:</span>
+                <span class="adult-book-lable">标题:</span>
                 <div style="width: 100%">
                   <div
                     style="
@@ -226,7 +228,7 @@
                       @input="forupdata"
                       @blur="onBlur(topic, 'little_title_number')"
                     />
-                    <el-input
+                    <!-- <el-input
                       v-model="topic.little_title"
                       style="width: 70%; margin-left: 10px"
                       type="textarea"
@@ -235,10 +237,11 @@
                       show-word-limit
                       @input="forupdata"
                       @blur="onBlur(topic, 'little_title')"
-                    />
+                    /> -->
                   </div>
                 </div>
               </div>
+              <sentence-segword-chs-detail :name="'标题内容'" :curQue="topic.l_title_detail" type='adultinput' />
               <div class="Big-Book-top">
                 <span>正副标题缩进</span>
                 <el-radio v-model="topic.is_textIndex" :label="true"
@@ -946,6 +949,7 @@
 </template>
 
 <script>
+import SentenceSegwordChsDetail from "@/components/Adult/common/SentenceSegwordChs/index.vue";
 import Header from "@/components/Header.vue";
 import Catelog from "@/components/Adult/inputModules/Catelog";
 import ArticleTemChs from "@/components/Adult/inputModules/ArticleTemChs/index.vue";
@@ -1091,6 +1095,7 @@ export default {
     SentenceModule,
     OptionsList,
     SentenceMulModule,
+    SentenceSegwordChsDetail
   },
   data() {
     return {
@@ -1224,7 +1229,6 @@ export default {
   watch: {},
   // 生命周期 - 创建完成(可以访问当前this实例)
   created() {
-    console.log("2022.07.04");
     this.fn_data = fn.fnData;
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
@@ -1475,9 +1479,33 @@ export default {
         ).substring(0, 32);
         let arr = {
           z_title: "",
+          z_title_detail:{
+            type: "detail",
+            pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+            sentence: "", //句子
+            segList: [], //分词结果
+            seg_words: "",
+            wordsList: [],
+          },
           f_title: "",
+          f_title_detail:{
+            type: "detail",
+            pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+            sentence: "", //句子
+            segList: [], //分词结果
+            seg_words: "",
+            wordsList: [],
+          },
           little_title_number: "",
           little_title: "",
+          l_title_detail:{
+            type: "detail",
+            pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+            sentence: "", //句子
+            segList: [], //分词结果
+            seg_words: "",
+            wordsList: [],
+          },
           is_bg: false, // 是否有背景色
           is_layout: false, // 是不是按背景图布局
           is_textIndex: false,
@@ -1580,6 +1608,39 @@ export default {
             if (!item.hasOwnProperty("contentShow")) {
               item.contentShow = true;
             }
+            if (!item.hasOwnProperty("z_title_detail")) {
+                let obj = {
+                    type: "detail",
+                    pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+                    sentence: item.z_title, //句子
+                    segList: [], //分词结果
+                    seg_words: "",
+                    wordsList: [],
+                }
+                this.$set(item, "z_title_detail", obj);
+            }
+            if (!item.hasOwnProperty("f_title_detail")) {
+                let obj = {
+                    type: "detail",
+                    pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+                    sentence: item.f_title, //句子
+                    segList: [], //分词结果
+                    seg_words: "",
+                    wordsList: [],
+                }
+                this.$set(item, "f_title_detail", obj);
+            }
+            if (!item.hasOwnProperty("l_title_detail")) {
+                let obj = {
+                    type: "detail",
+                    pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+                    sentence: item.little_title, //句子
+                    segList: [], //分词结果
+                    seg_words: "",
+                    wordsList: [],
+                }
+                this.$set(item, "l_title_detail", obj);
+            }
           });
           data.detailList.forEach((item) => {
             if (!item.detail) {