<template>
	<view>

		<view class="cu-list menu-avatar comment solids-top">
			<block v-for="(item,index) in plist" :key="item.id">
				<view class="cu-item">
					<view class="cu-avatar round" :style="'background-image:url('+item.user.avatar+');'"></view>
					<view class="content">
						<view class="padding-bottom-sm flex justify-between">
							<view class="text-grey">{{item.user.nickname}}</view>
							<view class="text-gray">
								{{item.createtime}}
								<text class="cuIcon-comment padding-left-sm" :data-puserid="item.userid" :data-nickname="item.user.nickname" @click="replyComment"></text>
							</view>
						</view>
						<view class="text-content padding-bottom-xs">
							<text v-if="item.puserid">回复 <text class="text-red">{{item.puser.nickname}}</text>：</text> 
							{{item.details}}
						</view>
					</view>
				</view>
			</block>
		</view>
		<uni-load-more :status="pstatus"></uni-load-more>
		
		<view class="cu-modal bottom-modal" :class="modalname=='commentModal'?'show':''">
			<view class="cu-dialog" style="height: calc(100vh)">
				<view class="cu-bar bg-white">
					<view class="action text-grey" @tap="hideModal">取消</view>
					<view class="action text-green" @click="sendComment">发表</view>
				</view>
				<view class="padding-xl text-left">
					<textarea class="solid padding-sm" style="width: 100%;" v-show="modalname=='commentModal'?true:false" :focus="modalfocus" :fixed="true" :placeholder="placeholder" @input="bindInput" maxlength="140" :value="details"></textarea>
				</view>
			</view>
		</view>
		
		
		<view class="padding"></view>
		<view class="padding"></view>
		<view class="cu-bar input foot">
			<input :placeholder="placeholder" @tap="showModal" disabled class="solid-bottom"></input>
			<button class="cu-btn bg-blue shadow-blur" @click="sendComment">发表</button>
		</view>
		
		
	</view>
</template>

<script>
	import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
	var _this;
	export default {
		components: {
			uniLoadMore
		},
		data() {
			return {
				isRotate: false,
				userinfo: {},
				
				articleid: 0,
				count: 0,
				
				pstatus: 'more',
				ppage: 1,
				psize: 20,
				plist: [],
				
				modalname: "",
				modalfocus: false,
				puserid: 0,
				placeholder: "说点什么吧...",
				details: ""
			}
		},
		onLoad: function(option) {
			_this = this;
			_this.articleid = option.articleid || 0;
			_this.modalname = option.modalname || "";
			_this.userinfo = uni.getStorageSync('userinfo');
			if (_this.articleid==0){
				uni.showModal({
					title: '信息提示',
					content: '文章资讯不存在',
					showCancel: false,
					success: function(res) {
						if (res.confirm) {
							uni.navigateBack({
								delta: 1
							});
						}
					}
				});
			}else{
				_this.getMore();
			}
			if (_this.modalname!=""){
				_this.showModal();
			}
		},
		onShareAppMessage: function(res) {
			return {
				title: "文章资讯评论",
				path: "/pages/article/comment?articleid="+_this.articleid
		    }
		},
		onShow: function() {
			_this.userinfo = uni.getStorageSync('userinfo');
		},
		onPullDownRefresh: function() {
			_this.ppage = 1;
			_this.pstatus = 'more';
			_this.plist = [];
			_this.getMore();
		},
		onReachBottom: function() {
			if (_this.pstatus !== 'more') {
				return;
			}
			_this.getMore();
		},
		methods: {
			showModal: function() {
				_this.userinfo = _this.checkLogin("/pages/article/comment?articleid="+_this.articleid);
				if (_this.userinfo===false){
					_this.sendInitialize();
					return false;
				}
				_this.modalname = "commentModal";
				setTimeout(function (){
					_this.modalfocus = true;
				}, 500);
			},
			hideModal: function() {
				_this.sendInitialize();
			},
			bindInput: function(e) {
				_this.details = e.detail.value;
			},
			replyComment: function(e) {
				_this.puserid = e.currentTarget.dataset.puserid;
				_this.placeholder = "回复 "+e.currentTarget.dataset.nickname+"：";
				_this.showModal();
			},
			sendInitialize: function() {
				_this.modalfocus = false;
				_this.modalname = "";
				_this.puserid = 0;
				_this.placeholder = "说点什么吧...";
				_this.details = "";
			},
			sendComment: function() {
				_this.userinfo = _this.checkLogin("/pages/article/comment?articleid="+_this.articleid);
				if (_this.userinfo===false){
					return false;
				}
				if(_this.isRotate){
					return false;
				}
				_this.isRotate = true;
				_this.$req.ajax({
					path: "article/sendcomment",
					data: {
						userid: _this.userinfo.id || 0,
						articleid: _this.articleid,
						puserid: _this.puserid, 
						details: _this.details
					}
				}).then((data) => {
					var comment = data.comment;
					_this.plist = comment.concat(_this.plist);
					_this.sendInitialize();
					_this.isRotate = false;
				}).catch((err) => {
					uni.showModal({
						title: '信息提示',
						content: err,
						showCancel: false
					});
					_this.isRotate = false;
				});
			},
			getMore: function() {
				_this.$req.ajax({
					path: "article/listcomment",
					data: {
						ppage: _this.ppage,
						psize: _this.psize,
						articleid: _this.articleid, 
						userid: _this.userinfo.id || 0
					}
				}).then((data) => {
					_this.count = data.count;
					_this.pstatus = data.pstatus;
					_this.plist = _this.plist.concat(data.plist);
					_this.ppage += 1;
					uni.stopPullDownRefresh();
				}).catch((err) => {
					uni.showModal({
						title: '信息提示',
						content: err,
						showCancel: false
					});
				});
			},
		}
	}
</script>

<style>
</style>
