<template>
	<view>
		<!-- 状态栏 -->
		<status-nav v-if="invite_code==''" :titleVal="'分类'" :statusTitle="true"></status-nav>
		<view v-if="invite_code!=''" class="status-box statusHNH" style="background-color: #FFFFFF;">
			<view :style="{height:statusBarHeight+'px'}"></view>
			<view class="status-nav">
				<!-- 标题 -->
				<view class="tab-title tcenter" style="color: #000000;">分类</view>
			</view>
		</view>
		<!-- 列表 -->
		<view :style="{top: statusHeight+'px'}" class="posiszy" style="height: 50px;">
			<view class="bacf pad-zy32 pad-sx20">
				<cate-pu @choosecateEv="choosecateEv" :activeb="invite_code!=''?'#3875F6':publicColor"
					:newCurrent="cateCurrent*1" :newbmo="'#F2F2F2'" :isCenter="false" :newcateList="cateList"></cate-pu>
			</view>
		</view>
		<view class="pad-x180" :style="{paddingTop: (statusHeight+50)+'px'}">
			<view v-if="isLoading" class="pad-s30">
				<view v-show="cateCurrent==isNum">
					<view class="pad-zy32">
						<!-- 自定义轮播 -->
						<swiper-pu v-if="ifSwiper" :browseP="true" :isplay="isAutoPlay" :bannerList="bannerList" :newHeight="newHeight"
							:newRadius="'10'" :newBottom="'5'"></swiper-pu>
						<!-- 标题 -->
						<view class="fon36 col3 bold mar-sx20 clips2" style="line-height: 50rpx;">{{detailObj.title}}​​​</view>
						<view class="disjbac">
							<view class="disac">
								<!-- 发布者头像 -->
								<image lazy-load class="flexs" :src="fabImg || '/static/public/logo.png'"
									style="width: 60rpx;height: 60rpx;border-radius: 100%;" mode="aspectFill"></image>
								<view class="mar-z10">
									<!-- 发布者昵称 -->
									<view class="fon28 col3 clips1">{{detailObj.published_by || '恒美植发'}}</view>
									<!-- 发布时间 -->
									<view class="fon20 col9" style="margin-top: 6rpx;">{{detailObj.published_at}}发布
									</view>
								</view>
							</view>
							<view class="disac flexs">
								<view class="disac fc" @tap="tapLike" style="width: 60rpx;">
									<image v-if="isDetailLike" src="/static/public/detail-like.png"
										style="width: 42rpx;height: 42rpx;" mode=""></image>
									<image v-else src="/static/public/detail-nlike.png"
										style="width: 42rpx;height: 42rpx;" mode=""></image>
									<view class="fon24 col9 tc">{{likeCon}}</view>
								</view>
								<view class="disac fc mar-zy36 posir">
									<image src="/static/public/weix.png" style="width: 42rpx;height: 42rpx;" mode=""></image>
									<view class="fon24 col9">分享</view>
									<button class="posia" open-type="share"
										style="top: 0;right: 0;left: 0;bottom: 0;opacity: 0;">分享</button>
								</view>
								<view class="disac fc" @tap="tapConllection">
									<image v-if="isDetailConllection" src="/static/public/yconllection.png"
										style="width: 44rpx;height: 44rpx;" mode=""></image>
									<image v-else src="/static/public/conllection.png"
										style="width: 44rpx;height: 44rpx;" mode=""></image>
									<view class="fon24 col9">收藏</view>
								</view>
							</view>
						</view>
						<!-- 内容详情 -->
						<view class="fon28 mar-s20" style="color: #1A1A1A; line-height: 40rpx;">
							<rich-text :nodes="detailInfo"></rich-text>
						</view>
					</view>
					<view class="pad-zy20">
						<view class="fon30 bold tc mar-sx40" :style="{color:publicColor}" v-if="detailObj.diary_id>0">日记合集</view>
						<view class="fon30 bold tc mar-sx40" :style="{color:publicColor}" v-else>相关推荐</view>
						<!-- 相关推荐||日记合集列表 -->
						<list-pu @chooseLike="chooseLikex" @praise="praisexgEv" @comfirmev="comfirmevx" :list="xgList"></list-pu>
					</view>
					<view class="tc fon28 bold" style="color: #fff;background-color: #3875f6;padding: 20rpx;" @tap="gopage(cateCurrent)">更多{{contentVal}}>></view>
					<view class="pad-zy20">
						<view class="fon30 bold tc mar-sx40" :style="{color:publicColor}">推荐医生</view>
						<!-- 推荐医生列表 -->
						<list-doctor v-if="dataList.length!=0" :list="dataList"></list-doctor>
						<view v-if="dataList.length==0" class="disjcac fc" style="margin-top: 10%;">
							<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
						</view>
					</view>
				</view>
				<view v-if="cateCurrent!=isNum">
					<view v-if="allList.length!=0" class="pad-zy20">
						<list-pu @chooseLike="chooseLike" @praise="praiseEv" @comfirmev="comfirmev" :list="allList"></list-pu>
					</view>
					<view v-else class="disjcac fc" style="margin-top: 40%;">
						<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
						<view class="fon24 col3">暂无内容</view>
					</view>
				</view>
			</view>
			<!-- 分享 -->
			<view @tap="shareImgEv" class="detail-cart-box" style="display: flex;justify-content: center;align-items: center;width: 112rpx;height: 112rpx;border-radius: 100%;background-color: #0fac29;bottom: 160rpx;color: #FFFFFF;">
				<image class="zanw-img" src="/static/public/share-pyq.png" mode="aspectFill" style="width: 64rpx;height: 81rpx;"></image>
			</view>
			<!-- 返回顶部 -->
			<!-- <back-top :showTop="showTop" @backTop="backTop"></back-top> -->
			<!-- 用户信息授权,手机号授权 -->
			<auth-userInfo-mobileInfo></auth-userInfo-mobileInfo>
			<!-- 底部导航 -->
			<view class="posixzy">
				<bottom-tab></bottom-tab>
			</view>
		</view>
	</view>
</template>

<script>
	import listDoctor from '@/components/list-doctor.vue';
	import swiperPu from '@/components/swiper-pu.vue';
	import bottomTab from '@/components/bottom-tab.vue';
	import {
		collectionEV,
		cancleCollectionEV
	} from '@/jsFile/publicAPI.js';
	import { base64ToPath } from '@/jsFile/base64-src.js';
	export default {
		components: {
			listDoctor,
			swiperPu,
			bottomTab,
		},
		data() {
			return {
				statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
				isLoading: false,
				cateCurrent: 0,
				cateList: [],
				bannerList: [], //轮播
				xgList: [ //相关推荐
				],
				dataList: [ //推荐医生
				],
				showTop: false,
				isDetailLike: false, //是否喜欢
				likeCon: '点赞',
				isDetailConllection: false, //是否已收藏
				isNum: 0,
				listArrone: [], //问题
				listArrtwo: [ //案例日记
				],
				listArrthree: [ //效果模拟
				],
				listArrfour: [ //科普视频
				],
				detailObj: {}, //详情
				detailInfo: '', //富文本
				category_id: '', //栏目ID
				active: '', //是否是详情页
				share_id: 0,
				invite_code: '',
				isAutoPlay: false,
				fabImg: '' ,//发布者头像
				allArr:[],
				page:1,
				size:20,
				total:0,
				isZanw:true,
				allList:[],
				contentVal:'',
				newHeight:'450',
				ifSwiper:0,//是否显示swiper
				shareFlag:true,
			}
		},
		computed: {
			// 主题颜色
			publicColor() {
				return this.$store.state.publicColor
			},
			statusHeight() {
				return this.$store.state.statusHeight
			}
		},
		onPageScroll(e) {
			e.scrollTop > 360 ? this.showTop = true : this.showTop = false
		},
		onReachBottom() { //触底事件
			if(this.cateCurrent!=this.isNum){
				if(this.total!=this.allList.length){
					this.page++
					this.checkList(this.cateCurrent)//调用自主预约列表事件
				} else {
					if(this.isZanw) this.$toolAll.tools.showToast('暂无更多列表','none',1000)
					this.isZanw = false
				}
			}
		},
		onShareAppMessage(res) {
			var ya = this;
			this.$requst.post('user/record', {
				type: 'content',
				action: 'share',
				id: this.detailObj.id
			}).then(res => {
				console.log('分享成功:', res);
			}, error => {})
			
			// 调用tools.js中的种植埋点事件
			this.$toolAll.tools.plantPoint(4,this.detailObj.id);
			console.log(`/pagesB/problemDetail/problemDetail?id=${this.detailObj.id}&category_id=${this.category_id}&share_id=${uni.getStorageSync('userId')}&invite_code=${uni.getStorageSync('invite_code')}`);
			var shareObj = {
				title: `${ya.detailObj.title}`, // 默认是小程序的名称(可以写slogan等)
				path: `/pagesB/problemDetail/problemDetail?id=${this.detailObj.id}&category_id=${this.category_id}&share_id=${uni.getStorageSync('userId')}&invite_code=${uni.getStorageSync('invite_code')}`, // 默认是当前页面,必须是以‘/’开头的完整路径
				imageUrl: `${ya.$http}${ya.detailObj.share_img || ya.detailObj.cover}`  //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
			};
			return shareObj;
		},
		onShow() {
			this.isAutoPlay = true;
		},
		onHide() {
			this.isAutoPlay = false;
		},
		onUnload() {
			this.isAutoPlay = false;
		},
		onLoad(options) {
			if(uni.getStorageSync('phone_active')!=0 && uni.getStorageSync('is_active')!=0){
				if (options.category_id != undefined) {
					this.category_id = options.category_id
					if(options.invite_code!=undefined){this.invite_code = options.invite_code;} 
					if (options.share_id != undefined){this.share_id = options.share_id;} 
					this.checkDetail(options.id);
					// 调用tools.js中的种植埋点事件
					this.$toolAll.tools.plantPoint(1,options.id);
				}
			}
		},
		methods: {
			// 分享图分享
			shareImgEv(){
				this.$toolAll.tools.showToast('分享图生成中...','none',10000);
				if(this.shareFlag){
					this.shareFlag = false;
					this.$requst.post('archives/share',{id:this.detailObj.id}).then(res=>{
						base64ToPath(res.data.share_img).then(path=>{
							uni.hideToast();
							this.$toolAll.tools.showToast('正在调起分享...');
							wx.showShareImageMenu({
								path: path,
								success:(res=>{
									this.shareFlag = true;
									this.$requst.post('user/record', {
										type: 'content',
										action: 'share',
										id: this.detailObj.id
									}).then(res => {
										console.log('分享成功:', res);
									}, error => {})
									// 调用tools.js中的种植埋点事件
									this.$toolAll.tools.plantPoint(4);
								}),
								fail:(err=>{
									this.shareFlag = true;
								})
							})
						})
					})
				} else {this.$toolAll.tools.showToast('请勿重复点击');}
			},
			// 去更多列表页
			gopage(index){
				uni.navigateTo({
					url:`/pagesB/problemList/problemList?title=${this.cateList[index].title}&category_id=${this.cateList[index].id}`
				})
			},
			chooseLike(e) { //收藏事件
				// console.log(this.dataList[e].is_collected);
				if (this.allList[e].is_collected == 0) {
					this.allList[e].is_collected = 1
					// 调用收藏事件
					collectionEV({
						action: 'collect',
						archive_id: this.allList[e].id
					})
				}
			},
			comfirmev(e) { //确认取消收藏事件
				this.allList[e].is_collected = 0;
				this.$toolAll.tools.showToast('正在取消...', 'loading')
				// 调用取消收藏事件
				cancleCollectionEV({
					action: 'collect',
					archive_id: this.allList[e].id
				})
			},
			chooseLikex(e) { //收藏事件
				if (this.xgList[e].is_collected == 0) {
					this.xgList[e].is_collected = 1
					// 调用收藏事件
					collectionEV({
						action: 'collect',
						archive_id: this.xgList[e].id
					})
				}
			},
			comfirmevx(e) { //确认取消收藏事件
				this.xgList[e].is_collected = 0
				this.$toolAll.tools.showToast('正在取消...', 'loading')
				// 调用取消收藏事件
				cancleCollectionEV({
					action: 'collect',
					archive_id: this.xgList[e].id
				})
			},
			checkDetail(newId) {
				this.$requst.post('archives/detail', {
					id: newId,
					share_id: this.share_id
				}).then(res => {
					// console.log('详情数据:',res);
					if (res.code == 0) {
						this.isLoading = true
						// 栏目类别
						if (res.data.category.length != 0) {
							res.data.category.forEach((item, index) => {
								let cateObj = {
									id: item.id, //栏目ID 
									title: item.title, //栏目名称
									active: item.active, //是否选中
									model_id: item.model_id, //模型ID
									model_name: item.model_name, //模型标识
									sort: item.sort,
								}
								this.cateList.push(cateObj)
								this.allArr.push([]);
								// 默认选中的栏目
								if (item.active == 1) this.active = this.cateCurrent = index
								// 默认展示栏目详情
								if (this.category_id == item.id) this.isNum = index
							})
							this.contentVal = this.cateList[this.cateCurrent].title.slice(2);
							if(this.cateList[this.cateCurrent].title== '毛发百科' || this.cateList[this.cateCurrent].title== '科普视频') {
								this.newHeight = '200';
							}
						}
						// 详情
						this.detailObj = res.data.detail;
						// 是否显示swiper
						this.ifSwiper = this.detailObj.images_show;
						if (this.detailObj.published_headimgurl != '') {
							this.fabImg = this.$http + this.detailObj.published_headimgurl;
						}
						if (this.detailObj.is_liked == 1) {
							if (this.detailObj.likes >= 1000) this.likeCon = '999+'
							else this.likeCon = this.detailObj.likes
						}
						// 轮播
						// 图片字符串转数组
						let arrImg = this.detailObj.images.split(',')
						arrImg.forEach(item => {
							let newImgObj = {
								imgSrc: this.$http + item,
								url: '',
								isVideo: false,
								poster: '',
							}
							// 存图片
							this.bannerList.push(newImgObj)
						})
						// 存视频
						if (this.detailObj.video != '') {
							this.bannerList[0] = {
								imgSrc: this.$http + arrImg[0],
								url: this.$http + this.detailObj.video,
								isVideo: true,
								poster: '',
							}
						}
						// 默认显示是否收藏
						if (this.detailObj.is_collected == 0) this.isDetailConllection = false
						if (this.detailObj.is_collected == 1) this.isDetailConllection = true
						if (this.detailObj.is_liked == 0) this.isDetailLike = false
						if (this.detailObj.is_liked == 1) this.isDetailLike = true
						// 富文本
						this.detailInfo = this.$toolAll.tools.escape2Html(this.detailObj.content)
						// 相关推荐xgList
						if(this.cateList[this.cateCurrent].title=='日记分享') {
							if (res.data.diary.length != 0) {
								res.data.diary.forEach(item => {
									let fabImg = '';
									if (item.published_headimgurl != '' && item.published_headimgurl != null) {
										fabImg = this.$http + item.published_headimgurl
									}
									let tObj = {
										category_id: item.category_id, //栏目ID
										id: item.id,
										is_collected: item.is_collected, //是否已收藏
										collects: item.collects, //收藏量
										views: item.views, //查看量
										main_img: this.$http + item.cover, //封面图
										video: this.$http + item.video, //视频地址
										title: item.title, //标题
										content: item.subtitle, //副标题
										head_img: fabImg || '/static/public/logo.png', //发布者头像
										name: item.published_by || '恒美植发', //发布者昵称
										isVideo: item.video.includes(".mp4"), //是否是视频
										likes:item.likes,//点赞数量
										is_liked:item.is_liked//是否已点赞
									}
									if (item.cover != '' && item.video == '') {
										this.xgList.push(tObj)
									}
								})
							}
						} else {
							this.relevant();
						}
						// 推荐医生
						if (res.data.doctor.length != 0) {
							res.data.doctor.forEach(item => {
								let doObj = {
									id: item.id,
									imgSrc: item.headimg != null ? item.headimg : '',
									name: item.name,
									cyear: parseFloat(item.work_time),
									bmen: item.dept_name,
									zcheng: '主任医师',
									goodAt: item.diseases,
									show_detail: item.show_detail
								}
								this.dataList.push(doObj)
							})
						}
						this.choosecateEv(this.cateCurrent)
					} else this.$toolAll.tools.showToast(res.msg);
				}, error => {this.$toolAll.tools.showToast(error.msg);})
			},
			relevant(){
				this.$requst.post('archives/category', {
					category_id: this.cateList[this.cateCurrent].id,
					keyword: '',
					page:this.page,
					size:this.size
				}).then(res => {
					if(res.code==0){
						if (res.data.list.list.length != 0) {
							res.data.list.list.forEach(item => {
								let fabImg = '';
								if (item.published_headimgurl != '' && item.published_headimgurl != null)
									fabImg = this.$http + item.published_headimgurl
								let tObj = {
									category_id: item.category_id, //栏目ID
									id: item.id,
									is_collected: item.is_collected, //是否已收藏
									collects: item.collects, //收藏量
									views: item.views, //查看量
									main_img: this.$http + item.cover, //封面图
									video: this.$http + item.video, //视频地址
									title: item.title, //标题
									content: item.subtitle, //副标题
									head_img: fabImg || '/static/public/logo.png', //发布者头像
									name: item.published_by || '恒美植发', //发布者昵称
									isVideo: item.video.includes(".mp4"), //是否是视频
									likes:item.likes,//点赞数量
									is_liked:item.is_liked//是否已点赞
								}
								if (item.cover != '' && item.video == '') {
									this.xgList.push(tObj)
								}
							})
						}
					} else this.$toolAll.tools.showToast(res.msg);
				}).catch(err=>{this.$toolAll.tools.showToast(err.msg);})
			},
			choosecateEv(e) {
				this.page = 1;
				this.isZanw = true;
				this.checkList(e);
			},
			checkList(e){
				this.$requst.post('archives/category', {
					category_id: this.cateList[e].id,
					keyword: '',
					page:this.page,
					size:this.size
				}).then(res => {
					// console.log('该分类下的列表:',res);
					if (res.code == 0) {
						if(this.page==1) {
							if(this.active != e) this.allList = [];
							uni.pageScrollTo({
								scrollTop:0,
								duration:0
							})
						}
						this.total = res.data.list.total;
						if (res.data.list.list.length != 0) {
							res.data.list.list.forEach(item => {
								let num = item.video.search(".mp4")
								let isVideo = false
								if (num != '-1') isVideo = true
								let fabImg = '';
								if (item.published_headimgurl != '' && item.published_headimgurl != null)
									fabImg = this.$http + item.published_headimgurl
								let arrObj = {
									category_id: item.category_id, //栏目ID
									id: item.id,
									is_collected: item.is_collected, //是否已收藏
									collects: item.collects, //收藏量
									views: item.views, //查看量
									main_img: this.$http + item.cover, //封面图
									video: this.$http + item.video, //视频地址
									title: item.title, //标题
									content: item.subtitle, //副标题
									head_img: fabImg || '/static/public/logo.png', //发布者头像
									name: item.published_by || '恒美植发', //发布者昵称
									isVideo: isVideo ,//是否是视频
									likes:item.likes,//点赞数量
									is_liked:item.is_liked // 是否已点赞
								}
								if (item.cover != '') {
									this.allList.push(arrObj);
								}
							})
						}
						this.cateCurrent = e;
					} else this.$toolAll.tools.showToast(res.msg);
				}, error => {this.$toolAll.tools.showToast(error.msg);})
			},
			praiseEv(e){ // 点赞事件
				if(this.allList[e].is_liked==0){
					this.allList[e].is_liked = 1;
					this.allList[e].likes++;
					if(this.allList[e].likes>1000) this.allList[e].likes = '999+'
					// 调用收藏事件
					collectionEV({action:'like',archive_id:this.allList[e].id})
				}
			},
			// 相关列表的点赞事件
			praisexgEv(e){
				if(this.xgList[e].is_liked==0){
					this.xgList[e].is_liked = 1;
					this.xgList[e].likes++;
					if(this.xgList[e].likes>1000) this.xgList[e].likes = '999+'
					// 调用收藏事件
					collectionEV({action:'like',archive_id:this.xgList[e].id})
				}
			},
			tapLike() { //喜欢、不喜欢事件
				this.isDetailLike = !this.isDetailLike
				if (this.isDetailLike) {
					this.detailObj.likes++
					this.likeCon = this.detailObj.likes
					if (this.likeCon >= 1000) this.likeCon = '999+'
				} else {
					this.detailObj.likes--
					this.likeCon = '喜欢'
				}
				let isLikeCon = 'like'
				//调用点赞事件
				if (this.isDetailLike) collectionEV({
					action: isLikeCon,
					archive_id: this.detailObj.id
				})
				//调用取消点赞事件
				else cancleCollectionEV({
					action: isLikeCon,
					archive_id: this.detailObj.id
				})
			},
			tapConllection() { //收藏、取消收藏事件
				let isLikeCon = 'collect'
				// 调用收藏事件
				if (!this.isDetailConllection) collectionEV({
					action: isLikeCon,
					archive_id: this.detailObj.id
				})
				// 调用取消收藏事件
				else cancleCollectionEV({
					action: isLikeCon,
					archive_id: this.detailObj.id
				})
				this.isDetailConllection = !this.isDetailConllection
			},
			backTop() { //回到顶部事件
				uni.pageScrollTo({
					scrollTop: 0,
					duration: 300
				});
			},
			backEv(){
				uni.navigateBack({delta:1})
			}
		}
	}
</script>

<style>

</style>