<template>
	<view class="container">
		<view class="header">
			<!-- 顶部导航栏 -->
			<z-nav-bar title="书评详情" bgColor="red"></z-nav-bar>
		</view>
		<view class="bookInfo flexbox">
			<image :src="productInfo.images" mode="aspectFill"></image>
			<view>
				<span class="title">{{productInfo.name}}</span>
				<view class="description">{{productInfo.description}}</view>
			</view>
			
		</view>
		<view class="mainContent">
			
			<view class="item">
				<image v-if="commentInfo.image != ''" class="feng" :src="commentInfo.image" mode="scaleToFill" style=""></image>
				<text class="title">{{commentInfo.title}}</text>
				<!-- <view class="description">
					
				</view> -->
				<view class="mbtns flexbox">
					<span class="time">{{commentInfo.updateTime}}</span>
					<span class="flexbox opbtns">
						<!-- <span class="flexbox" @click="dianzan('1')">
							<u-icon name="heart" color="#55aa00" size="22"></u-icon>
							<text>2656</text>
						</span> -->											
					</span>
				</view>
				<view class="zhengwen" v-html="commentInfo.content"></view>
			</view>
			
					
		</view>
		<view class="pinglunMain" >
			<u-button class="addPl" type='success' plain @click="pinglun()">添加评论</u-button>
			<h4>~ 精彩热评 ~</h4>
			<view v-if="plList.length > 0">
			<view class="item mb30" v-for="item in plList" :key="item.id">
				<view class="content" v-html="item.phtml"></view>
				<view class="btns flexbox">
					<span class="time">{{item.createTime}}</span>
					<!-- <span class="flexbox opbtns">						
						<span class="flexbox pingjia" @click="pinglun(item.id)">
							<u-icon name="chat" color="#888" size="26"></u-icon>							
						</span>					
					</span> -->
				</view>
			</view>
			</view>
			<view class="quesheng" v-else>
				<text>暂无评论内容~</text>
			</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>
		<u-divider v-if="status == 1" text="已加载全部评论"></u-divider>		
		<!-- 评价对话框 -->
		<u-popup :show="pingjiaShow" :round="10" @close="closePingjia">
			<view class="tanchu">
				<view class="dp_title">添加评论</view>
				<view style="max-height: 1000rpx;overflow-y: scroll;">				
					<!-- <u-button type="success" @click="submitPJ">提交评价</u-button> -->
					<!-- 提交 -->
					<view class="padding-bottom-sm flex padding-lr-sm" style="border-bottom: 1px solid #EEEEEE;">	
					
						<view class="flex-sub flexbox">							
							<i @click="showEmj()" :class="emojiIcon" ></i>
							<!-- <input type="text" @focus="InputFocus" @blur="InputBlur" v-model="message"  @input="textareaBInput"  placeholder-style="font-size:24rpx;color:#aaaaaa;"  placeholder="请输入您要发送的内容"></input> -->
							<textarea class="textarea"  v-model="Pform.comment" @focus="InputFocus" @blur="InputBlur" @input="textareaBInput" placeholder-style="font-size:24rpx;color:#aaaaaa;"  placeholder="请输入您要发送的内容"></textarea>
						</view>
						<view class="">				
						<u-button type="success" @click="submitPJ">提交</u-button>
						</view>
					</view>
							
					<view style="position: relative;">
						<emotion @emotion="handleEmj" :height="220" v-if="isShowEmj" :windowWidth="windowWidth"></emotion>
					</view>
				</view>				
			</view>
		</u-popup>
		<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 emojiList1 from '../../bkhumor-emojiplus/emoji/biaoqin.js'
   import {
   	mapState
   } from 'vuex';
	export default {
		data() {
			return {
				playData:{},
				isShowEmj: false,
				emojiIcon:'cuIcon-emoji',
				windowWidth:0,
				bookid:null,
				bfa_id:null, //书评id
				productInfo:{},
				status:3,
				pingjiaShow:false, //添加评价 
				Pform:{ // 评价表单
					//star:0,
					comment:'',
					//img:[],
					html:''
				},
				emoji:[],
				Files:[],
				commentInfo:{},
				pPage:1,
				pTotal:0, // 评论的总条数
				pinglunId:null,
				plList:[],  // 书评的评论list
			}
		},
		onLoad(e) {
			this.windowWidth = uni.getSystemInfoSync().windowWidth;
			console.log(e,'onload')
			this.bookid = e.bookid
			this.bfa_id = e.bfa_id			
		},
		onShow() {
			this.getProDetail()
			this.getbookComInfo()
			this.getCommPL()
		},
		onReachBottom() {
			console.log('到底了')
			if(this.pPage+1 <= this.pTotal){
				this.status = 0
				this.pPage++
				this.getCommPL()
			}else{
				this.status = 3
			}
		},
		computed:{
			...mapState(['userInfo']),
		},
		methods: {
			// 获得书评评论列表
			getCommPL(){
				let data = {
					'bfa_id':this.bfa_id,
					'limit': 5,
					'page': this.pPage,
				}
				console.log(data,'data')				
				this.$http
					.post('forum/comment/list', data)
					.then(res => {						
						if(res.code == 0){
							console.log(res,'书评评论')							
							this.plList = this.plList.concat(res.page.list)
							this.pTotal = res.page.totalPage
							this.status = 3
							// 评论格式化
							var newarr = []
							this.plList.forEach((item1)=>{	
								   var pjstr = ''								   
									pjstr = this.getHtmlComment(item1.content)									
									 item1.phtml = pjstr
									 // console.log(pjstr)									
									 newarr.push(item1)
							
							})
							this.plList = newarr
							console.log('改变格式后', this.plList)
						}
					}).catch((e)=>{
						console.log(e)
					})
			},
			// 获得书评详情
			getbookComInfo(){
				this.$http
					.post(`forum/articles/appinfo/${this.bfa_id}`)
					.then(res => {
						if(res.code == 0){
							console.log(res,'书评详细内容')
							this.commentInfo = res.BookForumArticlesEntity
						}
					}).catch((e)=>{
						console.log(e)
					})
			},
			getProDetail(){
				// 获取商品详情
				uni.showLoading({
					title: '加载中'
				});		
				//console.log(e.id,'e.id')	
				this.$http
					.post('book/book/appinfo/' + this.bookid + '/' + this.userInfo.id)
					.then(res => {	
						console.log(res,'res')
						this.productInfo = res.book				
						uni.hideLoading();
					}).catch((e)=>{
						console.log(e,'e')
					})
			},	
			// 获得输入的表情数组
			handleEmj(i) {
			 console.log(i,'i---------'); 
				this.inputValue = i
				// console.log(this.inputValue);
				if(i.emotioni == '[em_98]') {
					//匹配最后一个表情符号并删除11。
					this.Pform.comment = this.Pform.comment.replace(/(\[[^\]]+\]|[\s\S])$/, '');
					if(this.emoji.length > 0){
						this.emoji = this.emoji.slice(0,-1)
					}
				} else {
					this.emoji.push({'tag' : i.emotion, 'name':i.emotioni})	
					// console.log(this.emoji,'this.emoji')
					this.Pform.comment += i.emotioni;
					/// this.Pform.html += i.emotion
				}
			},
			textareaBInput(e) {
				console.log(e,'e')
				this.Pform.comment = e.detail.value
				/// this.Pform.html = e.detail.value
			},
			showEmj() {
				let bool = !this.isShowEmj;
				if(bool) {
					this.emojiIcon = 'cuIcon-keyboard';
				} else {
					this.emojiIcon = 'cuIcon-emoji';
				}
				
				this.isShowEmj = bool;
				this.$emit('show')
			},			
			InputBlur(e){
				
			},
			InputFocus(e){
				this.isShowEmj = false;
				this.emojiIcon = 'cuIcon-emoji';
				this.$emit('foc')
			},
			
			// end
			deleteImg(e){					
				// var arr = this.Pform.img.slice(0,-1)
				this.Pform.img.pop()	
			  //  console.log('删除文件',arr)
				console.log(this.Pform)
			},
			getStar(i){
				this.Pform.star = i
			},
			select(e){
				 console.log('选择文件：',e)
				let arr =  e.tempFiles.map(item => {
					  return {'url':item.url,'name':item.name}
				  })
				 this.Pform.img = this.Pform.img.concat(...arr)
				//this.Pform.img = arr
				 console.log(this.Pform,'img')				
			},
			upSuccess(e){
				console.log(e)
			},
			// 获取html格式的评论1
			getHtmlComment(comment){
				 // 格式化html
				//	 console.log(comment,'comment')
				         // 这里处理 链接   换行符
				         let replacedStr = comment.replace(/\[([^(\]|\[)]*)\]/g, (item, index) => {
							// console.log(item, index)
							 var indexss = emojiList1.findIndex(item1 => item1.alt === item)
							 // console.log(indexss, 'indexss')
				           return '<img src="https://www.nuttyreading.com/emojis/emojis/qq/' + emojiList1[indexss].url + '" width="18rpx">';
				         });
						// console.log(replacedStr,'replacedStr')
				         return replacedStr.replace(/(\r\n)|(\n)/g, '<br>');
				       
						
			},
			deletePic() {
				let that = this
				that.Pform.img.splice(0, 1)
				//console.log(that.Pform.img)
			},
			afterRead(e) {
				//console.log(e)
				let that = this
				for (var i=0; i< e.file.length; i++) {
					//console.log(i,e.file[i].url)
					uni.uploadFile({
						url: this.$baseUrl + 'oss/fileoss',
						filePath: e.file[i].url,
						//files:e.file,
						 name: 'file',
						formData: {},
						success: (res) => {
							that.Pform.img.push({
								url: JSON.parse(res.data).url
							})
						}
					});
				}
			},			
			closePingjia(){
				this.pingjiaShow = false
				this.Pform.comment = ''
				this.Pform.html = ''
				this.emoji = []
			},
			// 点赞
			dianzan(val){},
			
			// 显示评论框
			pinglun(val){
				console.log(val)
				this.pinglunId = val || null
				this.pingjiaShow = true
			},
			// 提交评论
			submitPJ(){
				if(this.Pform.comment != ''){				
				
					let data={
						'content':this.Pform.comment,
						'userid':this.userInfo.id,
						'bookid':this.bookid,
						'bfaid' : this.bfa_id,
						// 'id': this.pinglunId
					}
					 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.getCommPL()
								this.pingjiaShow = false
								this.Pform.comment = ''
								this.pinglunId = null
							}
						})
				}else{
					uni.showToast({
						title:'请先输入您的评价内容 ！',
						icon:'none'
					})
				}
			},
		},
		components:{
			musicPlay,			
			emotion
			
		}
	}
</script>

<style lang="scss" scoped>
	.addPl{padding-top: 20rpx; margin-bottom: 20rpx;}
	.pinglunMain{
		
		.content{margin-bottom: 15px; line-height: 40rpx; color: #666; }
		background-color: #fff; padding: 10px;
		h4{color: #55aa00; font-size: 40rpx;  margin:30rpx 0 ; text-align: center;}
		.time{color: #888; font-size: 24rpx;}
		.btns{
			color: #666;  justify-content: space-between;
		}
		
	}
	.mbtns{padding: 5px; background-color: #f4fff5; border-radius: 10px; font-size: 34rpx; color: #8b8a91; margin:15px 0; justify-content: space-between;}
	.zhengwen{line-height: 50rpx; font-size: 30rpx;}
	.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;}
	.bookInfo{justify-content: space-between; margin-bottom: 15px; background-color: #fff; padding:10px; border: 1px splid #999;
		
		view{ padding-left: 30rpx;width: calc(100% - 150rpx); box-sizing: border-box;
			.title{font-size: 38rpx; margin-top: 20rpx; margin-bottom: 20rpx; display: block;}
			.description{line-height: 20px; width: 100%;  color:#888; padding-left: 0;}
			text{margin-left: 10px; line-height: 20px; color: #888; padding-left: 0;}
		}
		image{width: 150px; height: 150px;}
		
	}
	.mainContent{background-color: #fff; 
	.item{padding: 10px; margin-bottom: 30rpx;}
		.feng{margin-bottom: 15px; overflow: hidden;}
		.title{font-size: 38rpx; font-weight: blod; color: #55aa00; overflow: hidden;}
		.description{ overflow: hidden; color: #666;
			font-size: 28rpx; margin-bottom: 15px; margin-top:5px;
		}
		.btns{font-size: 24rpx; justify-content: space-between;
			.time{font-size: 24rpx; color: #888; }
			.opbtns{
				.pingjia{margin-left: 10px;}
			}
		}
	}
	.mb30{margin-bottom: 30rpx; overflow: hidden;}
</style>
