332 lines
8.8 KiB
Vue
332 lines
8.8 KiB
Vue
<template>
|
||
<view class="container">
|
||
<view class="header">
|
||
<!-- 顶部导航栏 -->
|
||
<z-nav-bar title="书评列表" bgColor="red"></z-nav-bar>
|
||
</view>
|
||
<view class="bookInfo" v-for="(productInfo,index) in productList" :key="index">
|
||
<view class="flexbox" style="margin-bottom: 20px;">
|
||
<image :src="productInfo.bookimage" mode="aspectFill"></image>
|
||
<view class="bookInfo-inner">
|
||
<span class="title">{{productInfo.bookName}}</span>
|
||
<span class="title">作者:{{productInfo.authorName}}</span>
|
||
<view class="description">简介:{{productInfo.content}}</view>
|
||
</view>
|
||
</view>
|
||
<view class="mainContent">
|
||
<view v-if="productInfo.shupingList.length > 0">
|
||
<view class="item" @click.stop="toDetail(item)" v-for="(item,index1) in productInfo.shupingList" :key="index1">
|
||
<image class="feng" v-if="item.image == ''" src="../../static/icon/home_bg.jpg" mode="scaleToFill" style="width: 100%;"></image>
|
||
<image class="feng" v-else :src="item.image" mode="scaleToFill" style="width: 100%;"></image>
|
||
<text class="title">{{item.title}}</text>
|
||
<!-- <view class="description" v-html="item.content">
|
||
{{item.content}}
|
||
</view> -->
|
||
<view class="btns flexbox">
|
||
<span class="time">{{item.updateTime}}</span>
|
||
<span class="flexbox opbtns">
|
||
</span>
|
||
</view>
|
||
</view>
|
||
<view class="gengduoshuping" @click.stop="toMore(productInfo)">
|
||
查看更多
|
||
</view>
|
||
</view>
|
||
<view class="quesheng" v-else>
|
||
暂无书评内容~
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-if="status==0" style="text-align: center;">
|
||
<u-loading-icon style="display: inline-block;"></u-loading-icon>
|
||
<font style='vertical-align: super;margin-left: 10px;font-size: 26rpx;color: #909399;'>努力加载中</font>
|
||
</view>
|
||
<view v-if="status==1" style="padding-bottom: 20rpx;">
|
||
<u-divider text="全部加载完成"></u-divider>
|
||
</view>
|
||
|
||
<music-play :playData="playData"></music-play>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import $http from '@/config/requestConfig.js';
|
||
import emotion from '@/bkhumor-emojiplus/components/bkhumor-emojiplus/bkhumor-emojiplus.vue';
|
||
import musicPlay from '@/components/music.vue'
|
||
import { data } from 'jquery';
|
||
import {
|
||
mapState
|
||
} from 'vuex';
|
||
export default {
|
||
data() {
|
||
return {
|
||
// loadingNow : false,
|
||
playData:{},
|
||
emojiIcon:'cuIcon-emoji',
|
||
windowWidth:0,
|
||
bookid:null,
|
||
booklistpage: 1,
|
||
productList:[],
|
||
productInfo:{},
|
||
pingjiaShow:false, //添加评价
|
||
Pform:{ // 评价表单
|
||
star:0,
|
||
comment:'',
|
||
img:[],
|
||
html:''
|
||
},
|
||
emoji:[],
|
||
Files:[],
|
||
page:1,
|
||
pageSize:10,
|
||
total:0,
|
||
status:3,
|
||
shupingList:[],
|
||
bfaid:null,
|
||
}
|
||
},
|
||
onPullDownRefresh() {
|
||
console.log('下拉刷新了')
|
||
uni.stopPullDownRefresh();
|
||
|
||
this.booklistpage=1, // 页码
|
||
this.productList = []
|
||
this.getBookList()
|
||
|
||
},
|
||
onReachBottom() {
|
||
// this.loadingNow = true
|
||
this.booklistpage++
|
||
this.getBookList()
|
||
// if(this.page < this.total){
|
||
// this.page++
|
||
// console.log('加载',this.page)
|
||
// this.status = 0
|
||
// this.getBookCom()
|
||
|
||
// }else{
|
||
// this.status = 1
|
||
// console.log('加载完成了',this.page)
|
||
// return
|
||
// }
|
||
},
|
||
onLoad(e) {
|
||
this.windowWidth = uni.getSystemInfoSync().windowWidth;
|
||
console.log(e,'onload')
|
||
// this.bookid = e.bookid
|
||
this.getBookList()
|
||
},
|
||
computed:{
|
||
...mapState(['userInfo']),
|
||
},
|
||
methods: {
|
||
// 查看本书更多书评
|
||
toMore(val){
|
||
console.log(val,'val')
|
||
uni.navigateTo({
|
||
url: '../comments/comments?bookid='+val.bookid,
|
||
});
|
||
},
|
||
// 书评详情
|
||
toDetail(val){
|
||
console.log(val,'val')
|
||
uni.navigateTo({
|
||
url:'../comments/commentsDetail?bookid='+val.bookid+'&bfa_id='+val.id
|
||
})
|
||
},
|
||
getBookList(){
|
||
// 获取商品详情
|
||
uni.showLoading({
|
||
title: '加载中'
|
||
});
|
||
this.$http
|
||
.post('forum/articles/desc/' + this.booklistpage)
|
||
.then(res => {
|
||
let list = res.descupdatelist.list
|
||
console.log(list,'list')
|
||
for(let i=0; i < list.length; i++){
|
||
let data = {
|
||
'page': 1,
|
||
'limit': 3,
|
||
'bookid' : list[i].bookid
|
||
}
|
||
this.$http
|
||
.post('forum/articles/descupdatelist', data)
|
||
.then(res => {
|
||
// this.total = res.page.totalPage
|
||
// this.shupingList = this.shupingList.concat(res.page.list)
|
||
list[i].shupingList = res.page.list
|
||
console.log(res.page.list,'评论获取成功')
|
||
|
||
console.log(list,'list')
|
||
this.productList.push(list[i])
|
||
console.log(this.productList,'productList')
|
||
// this.status = 3
|
||
}).catch((e)=>{
|
||
console.log(e,'e')
|
||
})
|
||
}
|
||
if(list.length != 2){
|
||
this.status = 1
|
||
} else {
|
||
this.status = 0
|
||
}
|
||
uni.hideLoading();
|
||
}).catch((e)=>{
|
||
console.log(e,'e')
|
||
})
|
||
},
|
||
|
||
// 显示评论
|
||
pinglun(val){
|
||
this.bfaid = val
|
||
this.pingjiaShow = true
|
||
},
|
||
// 提交评论
|
||
submitPJ(){
|
||
if(this.Pform.comment != ''){
|
||
let data={
|
||
'content':this.Pform.comment,
|
||
'userid':this.userInfo.id,
|
||
'bookid':this.bookid,
|
||
'bfaid': this.bfaid
|
||
}
|
||
// console.log(data,'data')
|
||
$http.request({
|
||
url: "forum/comment/save",
|
||
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||
data,
|
||
header: { //默认 无 说明:请求头
|
||
'Content-Type': 'application/json'
|
||
},
|
||
}).then(res => {
|
||
if (res.code == 0) {
|
||
uni.showToast({
|
||
title:'评论成功!',
|
||
icon:'success'
|
||
})
|
||
|
||
this.pingjiaShow = false
|
||
this.Pform.comment = ''
|
||
this.pinglunId = null
|
||
}
|
||
})
|
||
}else{
|
||
uni.showToast({
|
||
title:'请先输入您的评价内容 !',
|
||
icon:'none'
|
||
})
|
||
}
|
||
},
|
||
},
|
||
components:{
|
||
musicPlay,
|
||
emotion
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.flexbox{display: flex;}
|
||
.container{padding: 10px;}
|
||
.star{display: inline-block; width: 20px; height: 20px; margin-right: 10rpx;}
|
||
.starGray{ background : url(../../static/icon/star_greey.png) no-repeat; background-size: contain; }
|
||
.starLight{ background : url(../../static/icon/star_light.png) no-repeat; background-size: contain;}
|
||
.cuIcon-emoji {
|
||
background : url(../../static/biaoqing.png) no-repeat; background-size: contain; display: block; margin-right: 20rpx;
|
||
width: 30px; }
|
||
.cuIcon-keyboard{background : url(../../static/biaoqing.png) no-repeat; background-size: contain; display: block;
|
||
width: 30px; }
|
||
.tanchu {
|
||
padding: 40rpx 30rpx 40rpx 30rpx;
|
||
position: relative;
|
||
|
||
|
||
.dp_title {
|
||
font-size: 32rpx;
|
||
margin-bottom: 50rpx;
|
||
color: #555;
|
||
text-align: center;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.dp_add {
|
||
position: absolute;
|
||
top: 40rpx;
|
||
right: 30rpx;
|
||
font-size: 22rpx;
|
||
background-color: #fd6004;
|
||
color: #fff;
|
||
border-radius: 10rpx;
|
||
padding: 5rpx 10rpx;
|
||
|
||
.u-icon {
|
||
display: inline-block;
|
||
margin-right: 5rpx;
|
||
}
|
||
}}
|
||
|
||
.quesheng{text-align: center; margin-top: 100rpx; color: #8b8a91; padding-bottom: 20rpx; padding-top: 20rpx;}
|
||
.gengduoshuping{text-align: right; color: #0044ff; padding-bottom: 20rpx; padding-top: 20rpx;}
|
||
.bookInfo{
|
||
justify-content: space-between;
|
||
margin-bottom: 15px;
|
||
background-color: #fff;
|
||
padding:10px;
|
||
border: 1px splid #999;
|
||
box-sizing: border-box;
|
||
padding-bottom: 20rpx;
|
||
border-radius: 20rpx;
|
||
margin-bottom: 20rpx;
|
||
|
||
|
||
.bookInfo-inner{ padding-left: 30rpx; box-sizing: border-box; width: calc(100% - 150px);
|
||
.title{font-size: 38rpx; margin-top: 20rpx; font-weight: blod; margin-bottom: 20rpx; display: block;
|
||
}
|
||
.description{
|
||
line-height: 20px;
|
||
width: 100%;
|
||
color:#888;
|
||
padding-left: 0;
|
||
overflow:hidden;
|
||
text-overflow: ellipsis;
|
||
-webkit-line-clamp: 7;
|
||
display: -webkit-box;
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
}
|
||
image{width: 150px !important; }
|
||
|
||
}
|
||
.mainContent{background-color: #fff;
|
||
.item{
|
||
padding: 10px;
|
||
margin-bottom: 30rpx;
|
||
border: 1px solid #999;
|
||
box-sizing: border-box;
|
||
padding-bottom: 20rpx;
|
||
border-radius: 20rpx;
|
||
margin-bottom: 20rpx;
|
||
}
|
||
.feng{margin-bottom: 15px; overflow: hidden;}
|
||
.title{font-size: 38rpx; font-weight: blod; color: #55aa00; overflow: hidden;}
|
||
.description{ overflow: hidden; color: #666;
|
||
text-overflow: -o-ellipsis-lastline;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 3;
|
||
line-clamp: 3;
|
||
-webkit-box-orient: vertical;
|
||
font-size: 28rpx; margin-bottom: 15px; margin-top:5px;
|
||
}
|
||
.btns{font-size: 24rpx; justify-content: space-between;
|
||
.time{font-size: 24rpx; color: #666; }
|
||
.opbtns{
|
||
.pingjia{margin-left: 10px;}
|
||
}
|
||
}
|
||
}
|
||
.mb30{margin-bottom: 30rpx; overflow: hidden;}
|
||
</style>
|