添加讲书
This commit is contained in:
197
pages/talkBook/talkBookDetail.vue
Normal file
197
pages/talkBook/talkBookDetail.vue
Normal file
@@ -0,0 +1,197 @@
|
||||
<template>
|
||||
<view>
|
||||
<z-nav-bar :title="bookInfo.name+'-讲书'"></z-nav-bar>
|
||||
<view class="mainContent">
|
||||
<view class="title">{{talkBookDetail.title}}</view>
|
||||
<view class="voices" v-if="talkBookDetail.voices != '' && audioShow">
|
||||
<audio style="text-align: left" :src="talkBookDetail.voices" poster="../../static/icon/fengziIcon.jpg"
|
||||
:name="talkBookDetail.title" :author="bookInfo.authorName" :action="audioAction" controls></audio>
|
||||
</view>
|
||||
<view class="content" v-if="talkBookDetail.content != ''" v-html="talkBookDetail.content"></view>
|
||||
<view class="content" v-else></view>
|
||||
<view class="time">
|
||||
<text>{{talkBookDetail.createTime}}</text>
|
||||
</view>
|
||||
<view class="tuijin" v-if="!isBuy">
|
||||
<p>觉得这本书还不错?</p>
|
||||
<view class="flexbox" style="justify-content: space-between; border: 1px solid #55aa7f; padding: 10rpx; border-radius: 10rpx;">
|
||||
<view class="flexbox">
|
||||
<view class="img">
|
||||
<image v-if="bookInfo.images != ''" :src="bookInfo.images" mode="aspectFit"></image>
|
||||
<image v-else src="../../static/icon/wufeng.jpg" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view>
|
||||
<text style=" display: inline-block; margin-top: 40rpx;">{{bookInfo.name}}</text><br/>
|
||||
<text>作者:{{bookInfo.authorName}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn" @click="gotoBuy()">
|
||||
<text>立即购买</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="opbtn flexbox">
|
||||
<view class="">上一章</view>
|
||||
<view class="">下一章</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<music-play :playData="playData"></music-play>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import musicPlay from '@/components/music.vue'
|
||||
import {
|
||||
mapState,
|
||||
mapMutations
|
||||
} from 'vuex';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
audioAction: {
|
||||
method: 'pause'
|
||||
},
|
||||
audioShow: false,
|
||||
voicesImg:'',
|
||||
isBuy: false,
|
||||
playData: {},
|
||||
teachId: null, // 讲书id
|
||||
bookId: null, // 书籍id
|
||||
bookInfo: {}, // 书籍信息
|
||||
talkBookDetail: {},
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
console.log(e, 'onLoad')
|
||||
this.bookId = e.bookId
|
||||
this.teachId = e.teachId
|
||||
},
|
||||
onShow() {
|
||||
this.getBookInfo()
|
||||
this.getTalkBookDetail()
|
||||
},
|
||||
computed: {
|
||||
...mapState(['userInfo'])
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['setUserInfo']),
|
||||
// 购买
|
||||
gotoBuy(){
|
||||
uni.navigateTo({
|
||||
url: '../bookShop/settlementBook?type=2&list=' + this.bookId
|
||||
});
|
||||
},
|
||||
getBookInfo() {
|
||||
// 获取书本基本信息
|
||||
this.$http
|
||||
.post('book/book/appinfo/' + this.bookId + '/' + this.userInfo.id)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
console.log(res, 'res')
|
||||
this.bookInfo = res.book
|
||||
this.voicesImg = res.book.images
|
||||
// this.bookInfo.name = res.book.name
|
||||
this.isBuy = res.book.isBuy
|
||||
console.log(this.voicesImg,'this.voicesImg')
|
||||
// this.freeChapterCount = res.book.freeChapterCount
|
||||
} else {
|
||||
console.log(res.msg)
|
||||
}
|
||||
console.log(res, '书籍基本信息')
|
||||
}).catch((error) => {
|
||||
console.log(error)
|
||||
})
|
||||
},
|
||||
// 获取讲书详情
|
||||
getTalkBookDetail() {
|
||||
this.audioShow = false
|
||||
this.$http
|
||||
.post('book/teach/getTeachDetail', {
|
||||
'teachId': this.teachId
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
console.log(res, 'res')
|
||||
this.talkBookDetail = res.bookTeach
|
||||
|
||||
// this.isBuy = res.book.isBuy
|
||||
// this.freeChapterCount = res.book.freeChapterCount
|
||||
} else {
|
||||
console.log(res.msg)
|
||||
}
|
||||
this.audioShow = true
|
||||
console.log(res, '讲书信息')
|
||||
}).catch((error) => {
|
||||
console.log(error)
|
||||
this.audioShow = true
|
||||
})
|
||||
},
|
||||
},
|
||||
components: {
|
||||
musicPlay
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.mainContent {
|
||||
margin: 20rpx 10rpx;
|
||||
padding: 20rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.flexbox {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.voices {
|
||||
margin: 10rpx auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.title {
|
||||
font-size: 30rpx;
|
||||
color: #55aa7f;
|
||||
font-weight: bold;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.time{
|
||||
text-align: right; font-size: 24rpx; margin-top: 20rpx; color: #999;
|
||||
}
|
||||
.content {
|
||||
font-size: 28rpx; text-align:justify;
|
||||
color: #666;
|
||||
line-height: 48rpx;
|
||||
}
|
||||
|
||||
.tuijin {
|
||||
font-size: 26rpx;
|
||||
|
||||
margin-top: 20rpx;
|
||||
|
||||
.img {
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
image {
|
||||
height: 150rpx;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 28rpx; margin-bottom: 20rpx;
|
||||
color: #55aa7f;
|
||||
}
|
||||
}
|
||||
.btn{ margin-right: 20rpx;
|
||||
text{ display: inline-block; margin-top:52rpx; font-size: 30rpx;
|
||||
padding: 5px 8px;
|
||||
background: #55aa7f; color: #fff;
|
||||
border-radius: 5px;
|
||||
}}
|
||||
// .opbtn{font-size: 14rpx;}
|
||||
</style>
|
||||
Reference in New Issue
Block a user