<template>
	<view class="page">
		<view class="top">
			<view class="left">
				<avatar :userName="userInfo.real_name" size="90"></avatar>
			</view>
			<view class="user-info">
				<view class="other-info">
					<view class="follow">
						<view class="one-top">{{userInfo.followNumber}}</view>
						<view class="one-bottom">关注</view>
					</view>
					<view class="fans">
						<view class="one-top">{{userInfo.fansNumber}}</view>
						<view class="one-bottom">粉丝</view>
					</view>
					<view class="score">
						<view class="one-top">{{userInfo.integral}}</view>
						<view class="one-bottom">积分</view>
					</view>
				</view>
				<view class="info-bottom">
					<view class="follow-button" v-if="userInfo.isFollow === 0" @tap="addFollow(userInfo)">关注</view>
					<view class="follow-button-ed" v-if="userInfo.isFollow === 1" @tap="cancelFollow(userInfo)">已关注</view>
				</view>
			</view>
		</view>
		<view class="middle">
			<view class="cu-item content">
				<textarea v-model="userInfo.signature"
							auto-height="true"
							maxlength=2000
							disabled="false"
				></textarea>
			</view>
		</view>
		<view class="bottom">
			<view class="noData" v-if="noData === true">
				<noData :custom="true"><view class="title" @tap="update()">暂无数据,点击重新加载</view></noData>
			</view>
			<view class="list cu-card article dynamic" v-else-if="noData === false">
				<view class="cu-item" style="padding:0" v-for="(item,index) in noticeList" :key="index" v-if="item.is_pass === '1'">
					<view class="cu-list menu solid-bottom" @click="goToDetails(item)">
						<view class="cu-item arrow" style="min-height: 90rpx;padding-top: 10rpx;">
							<view class="action">
								<view class="action">
									<view class='cu-tag radius bg-orange light margin-right-xs' v-if="item.type === '校园通知'">{{item.type}}</view>
									<view class='cu-tag radius bg-blue light margin-right-xs' v-if="item.type === '家长建议'">{{item.type}}</view>
									<view class='cu-tag radius bg-green light margin-right-xs' v-if="item.type === '学生想法'">{{item.type}}</view>
									<text class="text-black text-lg">{{item.title}}</text>
								</view>
							</view>
						</view>
					</view>
					<view class="text-content" style="margin:10rpx 0 0 0;">
						<text class="text-gray">文章标签:</text>
						<text class="">{{item.label}}</text>
					</view>
					<view class="text-content" style="margin:10rpx 0 0 0;">
						<text class="text-gray">发表时间:</text>
						<text class="">{{item.release_time}}</text>
					</view>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	import request from '@/util/request.js';
	import noData from '@/components/noData/noData.vue';
	import { sortBy } from '@/static/js/public.js';	
	import avatar from "@/pages/components/avatar/avatar.vue";
	export default {
		components: {
			noData,
			avatar
		},
		data() {
			return {
				//用户ID
				userId: '',
				//用户信息
				userInfo: {},
				//无数据
				noData: false,
				//个人文章列表
				noticeList: [],
			}
		},
		onLoad(option) {
			this.userId = option.userId;
		},
		mounted() {
			this.getUserInfo();
		},
		onPullDownRefresh () {
			this.getUserInfo();
		},
		onNavigationBarButtonTap() {
			uni.setStorageSync("otherInfo",this.userInfo);
			uni.navigateTo({
				url: "/pages/tabbar/message/chat-page"
			})
		},
		methods: {
			/**
			 * 加关注
			 * @param {Object} userInfo
			 */
			addFollow(userInfo) {
				request.post("/hs/addFollow",{
					userId: uni.getStorageSync("userInfo").user_id,
					followId: userInfo.user_id
				}).then(res => {
					this.getUserInfo();
					console.log("加关注",res)
				},err => {
					console.log("err",err)
				})
			},
			/**
			 * 取消关注
			 * @param {Object} userInfo
			 */
			cancelFollow(userInfo) {
				let _this = this;
				uni.showModal({
					title: "取消关注",
					content: "确认取消关注?",
					success(res) {
						if (res.confirm) {
							request.post("/hs/cancelFollow",{
								userId: uni.getStorageSync("userInfo").user_id,
								followId: userInfo.user_id
							}).then(res => {
								_this.getUserInfo();
								console.log("取消关注",res)
							},err => {
								console.log("err",err)
							})
						}
					}
				})
			},
			/**
			 * 跳转详情页面
			 * @param {Object} item
			 */
			goToDetails(item) {
				uni.navigateTo({
					url: '/pages/tabbar/homepage/data-details?noticeId='+item.id
				})
			},
			/**
			 * 获取个人信息
			 */
			getUserInfo() {
				request.post("/hs/getPersonalInfo",{
					userId: uni.getStorageSync("userInfo").user_id,
					releaseId: this.userId
				}).then(res => {
					uni.startPullDownRefresh();
					console.log("个人信息",res);
					this.userInfo = res.data.personalInfo;
					this.userInfo.headerPhoto = this.userInfo.real_name.slice(0,1);
					this.noticeList = res.data.personalList;
					this.noData = res.data.personalList.length === 0 ? true : false;
					uni.setNavigationBarTitle({
						title: this.userInfo.real_name
					})
				},err => {
					console.log("err",err);
				}) 
			}
		}
	}
</script>

<style scoped>
	.middle{
		padding-bottom: 20rpx;
		border-bottom: 1rpx solid rgba(18,150,219,0.5);
	}
	.cu-item{
		background-color: #cfcfcf!important;
		margin: 16rpx 0!important;
	}
	.follow-button-ed{
		width: 80%;
		border: 1rpx solid #969696;
		color: #8d8d8d;
		text-align: center;
		border-radius: 10rpx;
	}
	.top .left{
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.info-bottom{
		display: flex;
		justify-content: center;
		align-items: center;
		margin-bottom: 10rpx;
	}
	.follow-button{
		color: #FFFFFF;
		width: 80%;
		background-color: #269FDE;
		text-align: center;
		border-radius: 10rpx;
	}
	.grade .r, .grade .l{
		font-size: 14rpx;
		padding: 5rpx;
		border-radius: 5rpx;
	}
	.grade .l{
		background-color: #9DC75F;
	}
	.grade .r{
		background-color: #2D5315;
	}
	.user-info view{
		padding: 10rpx 10rpx;
	}
	.other-info .one-top, .other-info .one-bottom{
		text-align: center;
	}
	.other-info{
		display: flex;
		justify-content: space-between;
		padding: 20rpx 40rpx;
		color: #9a9a9a;
		font-size: 30rpx;
	}
	.info-top{
		display: flex;
		flex-flow: nowrap;
		color: #7f7f7f;
	}
	.user-info{
		display: flex;
		flex-flow: column;
		justify-content: center;
		border-radius: 10rpx;
		width: 70%;
		font-size: 32rpx;
	}
	.content {
		background-color: #F1F1F1;
		width: 100%;
		padding: 20rpx;
		border-radius: 10rpx;
	}
	textarea{
		line-height: 1.5;
		width: 100%;
		height: 100%;
	}
	.top{
		display: flex;
		justify-content: space-between;
	}
	.page{
		padding: 20rpx;
		display: flex;
		flex-flow: column;
		background-color: #FFFFFF;
	}
</style>