<template>
	<view class="container">
		<view class="header">
			<!-- 顶部导航栏 -->
			<z-nav-bar title="书评列表"></z-nav-bar>
            <view class="orderTabs">
			    <view v-for="(item,index) in commentsTabs" @click="commentsTabCLi(item.value)" :key="index"
				:class="commentsListTab==item.value?'orderdefine ordStyle':'orderdefine'">{{item.name}}</view>
		    </view>
		</view>
        <!-- 站位 -->
        <view class="orderTabs" style="z-index:0;position:unset;">
            <view class="orderdefine">1</view>
        </view>
        <view v-if="commentsListTab == 1">
            <view v-if="newList.length > 0">
                <view class="bookInfo" v-for="(item,index) in newList" :key="index">
                    <view class="mainContent">
                        <view class="item" @click.stop="toDetail(item)">
                            
                            <view class="title">{{item.title}}</view>
                            <image class="feng" v-if="item.bookimage" :src="item.bookimage" mode="aspectFill"></image>
                            <view class="description" v-html="item.content">
                            </view>
                            <view class="btns flexbox">
                                <span class="left">{{item.bookname}}</span>
                                <span class="right flexbox opbtns" style="color:#3c9cff;">
                                    全文
                                </span>
                            </view>
                            <view class="btns flexbox" style="margin-top:10rpx;">
                                <span class="left" style="color: #C0C4CC;">{{formatTimeDifferenceFromT(item.createTime)}}</span>
                                <span class="right flexbox opbtns">
                                    <image class="gzicon" v-if="item.ilike" src="../../static/icon/gz2.png" mode="aspectFill" @click.stop="clickLike(item)"></image>
                                    <image class="gzicon" v-else src="../../static/icon/gz.png" mode="aspectFill" @click.stop="clickLike(item)"></image>
                                    <view style="color: #C0C4CC;">{{item.contlike}}</view>
                                    <image class="gzicon" v-if="1" src="../../static/icon/pinglun.png" mode="aspectFill"></image>
                                    <view style="color: #C0C4CC;">{{item.commentNum}}</view>
                                </span>
                            </view>
                            <view style="border-bottom:2rpx solid #e9e9e9;height:50rpx;" v-if="index<item.length-1"></view>
                        </view>	
                    </view>
                </view>
            </view>
            <view class="quesheng" v-else>
                暂无书评内容~
            </view>
        </view>
        <view v-if="commentsListTab == 2">
            <view v-if="hotList.length > 0">
                <view class="bookInfo" v-for="(item,index) in hotList" :key="index">
                    <view class="mainContent">
                        <view class="item" @click.stop="toDetail(item)">
                            
                            <view class="title">{{item.title}}</view>
                            <image class="feng" v-if="item.bookimage" :src="item.bookimage" mode="aspectFill"></image>
                            <view class="description" v-html="item.content">
                            </view>
                            <view class="btns flexbox">
                                <span class="left">{{item.bookname}}</span>
                                <span class="right flexbox opbtns" style="color:#3c9cff;">
                                    全文
                                </span>
                            </view>
                            <view class="btns flexbox" style="margin-top:10rpx;">
                                <span class="left" style="color: #C0C4CC;">{{formatTimeDifferenceFromT(item.createTime)}}</span>
                                <span class="right flexbox opbtns">
                                    <image class="gzicon" v-if="item.ilike" src="../../static/icon/gz2.png" mode="aspectFill" @click.stop="clickLike(item)"></image>
                                    <image class="gzicon" v-else src="../../static/icon/gz.png" mode="aspectFill" @click.stop="clickLike(item)"></image>
                                    <view style="color: #C0C4CC;">{{item.contlike}}</view>
                                    <image class="gzicon" v-if="1" src="../../static/icon/pinglun.png" mode="aspectFill"></image>
                                    <view style="color: #C0C4CC;">{{item.commentNum}}</view>
                                </span>
                            </view>
                            <view style="border-bottom:2rpx solid #e9e9e9;height:50rpx;" v-if="index<item.length-1"></view>
                        </view>	
                    </view>
                </view>
            </view>
            <view class="quesheng" v-else>
                暂无书评内容~
            </view>
        </view>
        <view v-if="commentsListTab == 3">
			<view class="" style="padding:40rpx 20rpx;">
				<view class="mytabs flexbox">
					<view :class="['item','item1', contentShow == 1 ? 'active' :'']" @click="setData(1)">
						已购图书
					</view>
					<view :class="['item','item2', contentShow == 2 ? 'active' :'']" @click="setData(2)">
						推荐图书
					</view>
				</view>
			</view>
            <view v-if="bookList.length > 0">
                <view class="bookInfo3" v-for="(item,index) in bookList" :key="index">
                    <view class="mainContent3">
                        <view class="item">
                            <view class="btns flexbox" @click.stop="toMore(item)">
                                <view class="title">{{item.name}}</view>
                                <view class="pianshuping">{{item.forumNum}}篇书评</view>
                            </view>
                            <image class="feng" v-if="item.images" :src="item.images" mode="aspectFill" @click.stop="toMore(item)"></image>
                            <view class="shupingList">
                                <view class="description" v-for="(item1,index1) in item.forums" :key="index1" @click.stop="toDetail(item1)">{{item1.title}}</view>
                            </view>
                            <view class="btns flexbox" @click.stop="toMore(item)">
                                <span class="left"></span>
                                <span class="right flexbox opbtns" style="color:#3c9cff;">
                                    全部
                                </span>
                            </view>
                        </view>	
                    </view>
                </view>
            </view>
            <view class="quesheng" v-else>
                暂无书评内容~
            </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,
                commentsTabs: [{
					name: '最新',
					value: 1
				}, {
					name: '最热',
					value: 2
				}, {
					name: '书集',
					value: 3
				}],
				commentsListTab: 1,
                newestpage: 1,
                hotestpage: 1,
                booksetpage: 1,
                newList:[],
                hotList:[],
                bookList:[],
				contentShow: 1,

			}
		},
		onPullDownRefresh() {
			console.log('下拉刷新了')
			uni.stopPullDownRefresh(); 
			  
            this.newestpage = 1
            this.hotestpage = 1
            this.booksetpage = 1
            this.newList = []
            this.hotList = []
            this.bookList = []
            this.getBookList(this.commentsListTab, false)
			   
		},
		onReachBottom() {
            this.newestpage++
            this.hotestpage++
            this.booksetpage++
            this.getBookList(this.commentsListTab, false)
		},
		onLoad(e) {
			this.windowWidth = uni.getSystemInfoSync().windowWidth;
			console.log(e,'onload')
			// this.bookid = e.bookid
			this.getBookList(1, false)
		},
		computed:{
			...mapState(['userInfo']),
		},
		methods: {
			setData(e) {
				this.contentShow = e
				this.getBookList(this.commentsListTab, true)
			},
            formatTimeDifferenceFromT(dateTimeT) {
                const now = new Date();
                const t = new Date(dateTimeT);
                const differenceInSeconds = Math.floor((now - t) / 1000);

                if (differenceInSeconds <= 3600) {
                    const minutes = Math.floor(differenceInSeconds / 60);
                    return `${minutes} 分钟前`;
                } else if (differenceInSeconds <= 86400) {
                    const hours = Math.floor(differenceInSeconds / 3600);
                    return `${hours} 小时前`;
                } else if (differenceInSeconds <= 2592000) {
                    const days = Math.floor(differenceInSeconds / 86400);
                    return `${days} 天前`;
                } else {
                    const currentYear = now.getFullYear();
                    const tYear = t.getFullYear();
                    if (currentYear === tYear) {
                        const month = t.getMonth() + 1;
                        const day = t.getDate();
                        return `${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;
                    } else {
                        const year = t.getFullYear();
                        const month = t.getMonth() + 1;
                        const day = t.getDate();
                        return `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;
                    }
                }
            },
            // 切换tab状态
			commentsTabCLi(e) {
				this.commentsListTab = e
                this.newestpage = 1
                this.hotestpage = 1
                this.booksetpage = 1
                this.newList = []
                this.hotList = []
                this.bookList = []
				this.getBookList(this.commentsListTab, false)
			},
			// 查看本书更多书评
			toMore(val){
				console.log(val,'val')
				uni.navigateTo({
					url: '../comments/comments?bookid='+val.id,
				});
			},
			// 书评详情
			toDetail(val){
				console.log(val,'val')
				uni.navigateTo({
					url:'../comments/commentsDetail?bookid='+val.bookid+'&bfa_id='+val.id
				})
			},
            clickLike(item){
                this.$http
					.post("forum/articles/chickForumContlike?forum_id=" + item.id,)
					.then(res => {
                        if (res.code == 0) {
                            uni.showToast({
                                title:'点赞成功！',
                                icon:'success'
                            })
                            
                            item.contlike++
                        }
					}).catch((e)=>{
						console.log(e,'e')
					})
            },
			getBookList(flag, tushuflag){
				// 根据tab不同，获取最新书评、最热书评、书集列表
				uni.showLoading({
					title: '加载中'
				});
                var httpurl = "" 
                if(flag == 1){
                    httpurl = "forum/articles/getForumsNew?page=" + this.newestpage + '&limit=10'
                }else if(flag == 2){
                    httpurl = "forum/articles/getForumsHot?page=" + this.hotestpage + '&limit=10'
                }else{
					if(tushuflag){ // 点击切换已购和推荐
                		this.booksetpage = 1
                		this.bookList = []
					}
					if(this.contentShow == 1){
                    	httpurl = "forum/articles/getHasForumsAndBook?page=" + this.booksetpage + '&limit=10&userId=' + this.userInfo.id
					} else {
						httpurl = "forum/articles/getBestForumsAndBook?page=" + this.booksetpage + '&limit=10&userId=' + this.userInfo.id
					}
                }
				this.$http
					.post(httpurl)
					.then(res => {

                        if(flag == 1){
                            this.newList = this.newList.concat(res.page.records)
                        }else if(flag == 2){
                            this.hotList = this.hotList.concat(res.page.records)
                        }else{
                            this.bookList = this.bookList.concat(res.page.records)
                        }
                        console.log(this.newList,'this.newList')
						// let list = res.page.records
						// 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(res.page.records.size != 10){
							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>
// @import '@/style/mixin.scss';
.orderTabs {
    // margin: 70rpx 0 0 0;
    width: 100%;
    // padding: 0 3% 3% 3%;
    position: fixed;
    // top: 80rpx;
    background-color: #f7faf9;
    z-index: 100;

    .orderdefine {
        display: inline-block;
        padding: 20rpx 0 20rpx 0;
        // margin: 40rpx 0 15rpx 0;
        width:230rpx;
        text-align: center;
        font-size: 30rpx;
    }

    .ordStyle {
        // border-bottom: 4rpx solid #54a966;
        // color: #54a966;
        font-weight: bold;
    }
}


	.flexbox{display: flex;}
	.container{padding: 0 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:20rpx;
		border: 1px splid #999;
		box-sizing: border-box;
		// padding-bottom: 20rpx;
		border-radius: 20rpx;
		margin-bottom: 20rpx;

		// .imageradius{
		// 	border-radius: 20rpx;
		// 	border:1rpx solid #e9e9e9;
		// }
		
		// .bookInfo-inner{ padding-left: 30rpx;  box-sizing: border-box;  width: calc(100% - 150px);
		// 	.title{font-size: 32rpx; margin-top: 0rpx; margin-bottom: 20rpx;font-weight: 700; display: block;}
		// 	.author{font-size: 30rpx;margin-top: 0rpx;margin-bottom: 20rpx;font-weight: 500; display: block; }

		// 	.description{
		// 		font-size: 28rpx;
		// 		line-height: 20px;
		// 		width: 100%;
		// 		color:#888;
		// 		padding-left: 0;
		// 		overflow:hidden;
		// 		text-overflow: ellipsis;
		// 		-webkit-line-clamp: 9;
		// 		display: -webkit-box;
		// 		-webkit-box-orient: vertical;
		// 	}
		// }
		// .bookinfoimage{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:10rpx 20rpx 0 0;
            height: 160rpx;
            width: 140rpx;
            float:left;
            border-radius: 20rpx;
            border:1rpx solid #e9e9e9;
        }
		.title{font-size: 30rpx; font-weight: 700; color: #000; overflow: hidden;}
		/deep/.description{
			overflow: hidden;
			color: #666;
			text-overflow: -o-ellipsis-lastline;
			overflow: hidden;
			text-overflow: ellipsis;
			display: -webkit-box;
			-webkit-line-clamp: 5;
			line-clamp: 5;
			-webkit-box-orient: vertical;
			font-size: 26rpx;
			margin-bottom: 20rpx;
			margin-top:10rpx;
			height: 172rpx;
			img{
				width: 100% !important;
			}
		}
		.btns{
			font-size: 22rpx;
			justify-content: space-between;
			align-items: center;
			.left{
                width: 300rpx;
                color: #a1a1a1;
            }
            .right{
                width: 300rpx;
                display: flex;
                justify-content: flex-end;
                align-items: center;
            }
            .gzicon{
                margin:0 0 0 20rpx;
                height: 40rpx;
                width: 40rpx;
                // float:left;
                // border-radius: 20rpx;
                // border:1rpx solid #e9e9e9;
            }
			.opbtns{
				.pingjia{margin-left: 10px;}
			}
		}
	}
	.mb30{margin-bottom: 30rpx; overflow: hidden;}

    .bookInfo3{
        justify-content: space-between;
		// margin-bottom: 15px;
		background-color: #fff;
		padding:20rpx;
		border: 1px splid #999;
		box-sizing: border-box;
		// padding-bottom: 20rpx;
		border-radius: 20rpx;
		margin-bottom: 20rpx;
        .mainContent3{
            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:10rpx 20rpx 0 0;
                height: 240rpx;
                width: 164rpx;
                float:left;
                border-radius: 20rpx;
                border:1rpx solid #e9e9e9;
            }
            .title{font-size: 30rpx; font-weight: 700; color: #000; overflow: hidden;}
            .pianshuping{
                font-size: 24rpx;
                color: red;
            }
            .shupingList{
                min-height: 212rpx;
            }
            /deep/.description{
                overflow: hidden;
                color: #666;
                text-overflow: -o-ellipsis-lastline;
                overflow: hidden;
                text-overflow: ellipsis;
                display: -webkit-box;
                -webkit-line-clamp: 1;
                line-clamp: 1;
                -webkit-box-orient: vertical;
                font-size: 26rpx;
                margin-bottom: 20rpx;
                margin-top:10rpx;
				img{
					width: 100% !important;
				}
            }
            .btns{
                font-size: 22rpx;
                justify-content: space-between;
                align-items: center;
                .left{
                    width: 300rpx;
                    color: #a1a1a1;
                }
                .right{
                    width: 300rpx;
                    display: flex;
                    justify-content: flex-end;
                    align-items: center;
                }
                .gzicon{
                    margin:0 0 0 20rpx;
                    height: 40rpx;
                    width: 40rpx;
                    // float:left;
                    // border-radius: 20rpx;
                    // border:1rpx solid #e9e9e9;
                }
                .opbtns{
                    .pingjia{margin-left: 10px;}
                }
            }
        }
    }
		
	.mytabs {
		// background: url('@/static/icon/bgtushu.png') no-repeat left top;
		height: 80rpx;
		// margin-bottom: 30rpx;

		.item {
			border-radius: 10rpx;
			background-color: #c6ead0;
			width: 48%;
			// margin: 0 10rpx;
			text-align: center;
			color: #3c7f56;
			font-size: 36rpx;
			line-height: 80rpx;
		}

		.item.active {
			background-color: #3c7f56;
			color: #fff;
		}

		.item1 {
			margin-right: 20rpx;
		}
	}
</style>
