|
@@ -2,12 +2,49 @@
|
|
<template>
|
|
<template>
|
|
<div class="NNPE-Big-Book-preview adult-book-preview-sty preview-red">
|
|
<div class="NNPE-Big-Book-preview adult-book-preview-sty preview-red">
|
|
<div class="NNPE-title">
|
|
<div class="NNPE-title">
|
|
- <h1>{{ fatherName }}</h1>
|
|
|
|
|
|
+ <!-- 页眉 -->
|
|
|
|
+ <!-- <div class="NNPE-title-left">
|
|
|
|
+ <div class="NNPE-title-item" v-for="(item,index) in cur.detailList" :key="index">
|
|
|
|
+ <template v-if="item.wordsList.length==0">
|
|
|
|
+ <p :class="['content-con']" v-if="item.sentence">{{item.sentence}}</p>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <div class="con-box">
|
|
|
|
+ <div :class="['con-item',indexCon===0?'con-item-0':'']" v-for="(itemCon,indexCon) in curQue.detail.resArr" :key="indexCon" v-show="itemCon.isShow">
|
|
|
|
+ <template v-if="item.wordsList[indexCon + 1] && item.wordsList[indexCon + 1].chs && chsFhList.indexOf(item.wordsList[indexCon + 1].chs) > -1">
|
|
|
|
+ <div class="synthesis-box">
|
|
|
|
+ <div>
|
|
|
|
+ <span class="pinyin">{{itemCon.pinyin}}</span>
|
|
|
|
+ <span class="hanzi content-con">{{itemCon.chs}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div style="text-align: left">
|
|
|
|
+ <span class="pinyin">{{item.wordsList[indexCon + 1].pinyin}}</span>
|
|
|
|
+ <span class="hanzi content-con">{{item.wordsList[indexCon + 1].chs}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <span class="pinyin">{{itemCon.pinyin}}</span>
|
|
|
|
+ <span class="hanzi content-con">{{itemCon.chs}}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div> -->
|
|
|
|
+ <h1>{{fatherName}}</h1>
|
|
<div class="NNPE-operate">
|
|
<div class="NNPE-operate">
|
|
<a class="btn-prev" @click="handleNNPEprev" />
|
|
<a class="btn-prev" @click="handleNNPEprev" />
|
|
<a class="btn-next" @click="handleNNPEnext" />
|
|
<a class="btn-next" @click="handleNNPEnext" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="classTopic-box">
|
|
|
|
+ <span v-for="(item,index) in cur.classTopic" :key="index" :class="item.font">
|
|
|
|
+ {{item.con}}
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
<div v-if="cur" class="NNPE-Book-content-inner">
|
|
<div v-if="cur" class="NNPE-Book-content-inner">
|
|
<div v-for="(item, index) in cur.cur_fn_data" :key="index">
|
|
<div v-for="(item, index) in cur.cur_fn_data" :key="index">
|
|
<h2 v-if="item.z_title">{{ item.z_title }}</h2>
|
|
<h2 v-if="item.z_title">{{ item.z_title }}</h2>
|
|
@@ -152,7 +189,10 @@
|
|
/>
|
|
/>
|
|
</template>
|
|
</template>
|
|
<template v-if="itemss.type == 'CourseStart_chs'">
|
|
<template v-if="itemss.type == 'CourseStart_chs'">
|
|
- <CourseStart :cur-que="itemss.data" />
|
|
|
|
|
|
+ <CourseStart :cur-que="itemss.data" :handleNNPEnext="handleNNPEnext" />
|
|
|
|
+ </template>
|
|
|
|
+ <template v-if="itemss.type == 'tinydemo_chs'">
|
|
|
|
+ <Tinydemo :cur-que="itemss.data" />
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
@@ -191,6 +231,7 @@ import RecordModule from "./preview/RecordModule.vue"; // 录音组件
|
|
import UploadControlView from "./preview/UploadControlView.vue"; //预览控件
|
|
import UploadControlView from "./preview/UploadControlView.vue"; //预览控件
|
|
import DialogueAnswerViewChs from "./preview/DialogueArticleViewChs/DialogueAnswerViewChs.vue"; // 文章模板
|
|
import DialogueAnswerViewChs from "./preview/DialogueArticleViewChs/DialogueAnswerViewChs.vue"; // 文章模板
|
|
import CourseStart from "./preview/CourseStart.vue" // 封面
|
|
import CourseStart from "./preview/CourseStart.vue" // 封面
|
|
|
|
+import Tinydemo from "./preview/TinyModule.vue" // 富文本
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "Preview",
|
|
name: "Preview",
|
|
@@ -222,6 +263,7 @@ export default {
|
|
UploadControlView,
|
|
UploadControlView,
|
|
DialogueAnswerViewChs,
|
|
DialogueAnswerViewChs,
|
|
CourseStart,
|
|
CourseStart,
|
|
|
|
+ Tinydemo,
|
|
},
|
|
},
|
|
props: [
|
|
props: [
|
|
"context",
|
|
"context",
|
|
@@ -264,6 +306,7 @@ export default {
|
|
bg: "rgba(255, 138, 0, 0.1)",
|
|
bg: "rgba(255, 138, 0, 0.1)",
|
|
},
|
|
},
|
|
],
|
|
],
|
|
|
|
+ chsFhList: [",", "。", "“", ":", "》", "《", "?", "!", ";"],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {},
|
|
computed: {},
|
|
@@ -286,6 +329,7 @@ export default {
|
|
const _this = this;
|
|
const _this = this;
|
|
if (_this.context) {
|
|
if (_this.context) {
|
|
_this.initContextData();
|
|
_this.initContextData();
|
|
|
|
+ // _this.handleTitleData();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
beforeCreate() {}, // 生命周期 - 创建之前
|
|
beforeCreate() {}, // 生命周期 - 创建之前
|
|
@@ -297,6 +341,21 @@ export default {
|
|
activated() {},
|
|
activated() {},
|
|
// 方法集合
|
|
// 方法集合
|
|
methods: {
|
|
methods: {
|
|
|
|
+ // 处理数据
|
|
|
|
+ handleTitleData(){
|
|
|
|
+ let _this = this
|
|
|
|
+ let curQue = JSON.parse(JSON.stringify(this.cur.detailList));
|
|
|
|
+ let paraArr = []
|
|
|
|
+ curQue.wordsList.forEach((sItem, sIndex) => {
|
|
|
|
+ let obj = {
|
|
|
|
+ pinyin: sItem.pinyin,
|
|
|
|
+ chs: sItem.chs,
|
|
|
|
+ isShow: true,
|
|
|
|
+ };
|
|
|
|
+ paraArr.push(obj);
|
|
|
|
+ })
|
|
|
|
+ this.$set(_this.curQue.detail,'resArr',paraArr)
|
|
|
|
+ },
|
|
initContextData() {
|
|
initContextData() {
|
|
const _this = this;
|
|
const _this = this;
|
|
_this.contextData = JSON.parse(JSON.stringify(_this.context));
|
|
_this.contextData = JSON.parse(JSON.stringify(_this.context));
|
|
@@ -559,6 +618,29 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ .classTopic-box{
|
|
|
|
+ background: #E35454;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ width: 780px;
|
|
|
|
+ margin: 24px auto 0 auto;
|
|
|
|
+ text-align: center;
|
|
|
|
+ padding: 8px 24px;
|
|
|
|
+ span{
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ line-height: 150%;
|
|
|
|
+ color: #FFFFFF;
|
|
|
|
+ padding: 0 1px;
|
|
|
|
+ &.cn{
|
|
|
|
+ font-family: 'FZJCGFKTK';
|
|
|
|
+ }
|
|
|
|
+ &.en{
|
|
|
|
+ font-family: 'robot';
|
|
|
|
+ }
|
|
|
|
+ &.pinyin{
|
|
|
|
+ font-family: 'GB-PINYINOK-B';
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.NNPE-Book-content-inner {
|
|
.NNPE-Book-content-inner {
|
|
padding: 0 40px;
|
|
padding: 0 40px;
|
|
> div {
|
|
> div {
|