<style>
	.quick_top {
		display: flex;
		margin: 10px auto;
	}

	.quick_slider {
		padding: 5px 17px;
		border-radius: 20px;
		background-color: #EBEBEB;
		color: #272727;
		display: inline-block;
		font-size: 12px;
		margin-left: 10px;
		letter-spacing: 2px;
	}

	.quick_arrow {
		width: 10%;
	}

	.quick_arrow .u_icon {
		margin-left: 20%;
		line-height: 30px;
		color: #cd9621;
		font-size: 20px;
	}

	.checkedItem {
		background-color: #ff4544;
		color: #fff;
	}

	.quick_arrow .allTags {
		margin: 20px;
	}

	.allTags_List {
		padding-bottom: 20px;
	}

	.allTags_List {
		display: flex;
	}

	.quick_Content {
		width: 100%;
	}

	.quick_Inner {
		display: flex;
		justify-content: space-between;
		padding:20px;
	}

	.quick_ImgDiv {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		overflow: hidden;
	}

	.quick_ImgDiv img {
		width: 100%;
		height: 100%;
	}

	.quick_Center {
		position: relative;
		width: 85%;
	}

	.share_Content {
		position: absolute;
		right: 0;
		top: 0;
		padding: 5px 10px;
		background-color: #faf3e3;
		border-radius: 20px;
		font-size: 12px;
		display: flex;
		min-width: 50px;
		align-items: center;
	}

	.Quick_Shareicon {
		width: 13px;
		height: 13px;
		margin-right: 5px;
	}

	.Quick_ImgContent {
		display: flex;
		justify-content: space-between;
	}
	.quick_page img {
		width: 650rpx;
		height: 700rpx;
	}
	.quick_page .hotsopt {
		position: absolute;
		background: transparent;
		border: none;
		outline: none;
	}
	.quick_page .hotsopt::after {
		border: none;
	}
	.qr_DialogBtn{
		position: absolute;
		bottom:30px;
		width:80%;
		background-color:#FF4048;
		color:#fff;
		margin:auto;
		left:50%;
		margin-left:-40%;
		border-radius: 20px;
	}
</style>
<template>
	<view :style="{ height: contentHeight }">
		<u-tabs name="Name" :list="dataFirst" :is-scroll="false" :current="active" :bar-width="80" :font-size="32"
		 :active-color="mainColor" @change="getChild"></u-tabs>
		<scroll-view scroll-x="true" style="white-space: nowrap;display: flex;margin:10px 0">
			<view @click="getSecond(item,index)" :class="{'checkedItem':index==active2}" class="quick_slider" v-for="(item,index) in dataSecond" :key="index">{{item.Name}}</view>
		</scroll-view>
		<view class="quick_top" v-if="dataThird.length>0">
			<scroll-view scroll-x="true" style="white-space: nowrap;display: flex;width:90%">
				<view @click="getThird(item,index)" :class="{'checkedItem':index==active3}" class="quick_slider" v-for="(item,index) in dataThird" :key="index">{{item.Name}}</view>
			</scroll-view>
			<view class="quick_arrow">
				<u-icon class="u_icon" name="arrow-up" v-if="show" @click="show=false"></u-icon>
				<u-icon class="u_icon" name="arrow-down" v-else @click="show=true"></u-icon>
				<u-popup v-model="show" mode="top">
					<view class="allTags">全部标签</view>
					<view class="allTags_List">
						<view @click="getThird(item,index)" :class="{'checkedItem':index==active3}" class="quick_slider" v-for="(item,index) in dataThird" :key="index">{{item.Name}}</view>
					</view>
				</u-popup>
			</view>
		</view>
		<scroll-view :scroll-y="true" style="background-color: #f0f4f7" :enable-back-to-top="true" :enable-flex="true" @scrolltolower="lower" :style="{ 'height': scrollHeight}">
			<view class="quick_Content" style="width: 100%;min-height:100%">
				<view class="quick_Inner" v-for="(item,index) in dataList" :key="index" style="margin-bottom:10px;background-color:#fff;">
					<view class="quick_ImgDiv">
						<img :src="item.HeadImg" alt="" />
					</view>
					<view class="quick_Center">
						<view style="margin-bottom:10px;">{{item.UserName}}</view>
						<view v-html="item.MaterialInfo" @click="goUrl(item)" style="margin-bottom:10px;"></view>
						<view v-if="item.LinkUrl!=''" @click="goUrl(item)" style="color:#b08b38;margin-bottom:10px;">查看详情</view>
						<view v-for="(sItem,i) in imgArr" :key="i">
							<view style="flex-direction:row;display:flex;">
								<!-- 横排布局 -->
								<view v-for="(subItem,index) in item.ImgList" :key="index" style="margin-bottom:3px;">
									<!-- 遍历数组 -->
									<view v-if="index>=i*3&&index<3*(i+1)" class="flex-item" style="margin-right:5px;">
										<!-- 分段显示 -->
										<img :src="subItem" style="height:190rpx;width:190rpx;"></img>
									</view>
								</view>
							</view>
						</view>
						<view class="share_Content" @click="openShare(item)">
							<image src="@/static/images/icon/icon-share.png" class="Quick_Shareicon" />
							{{item.ShareCount}}
						</view>
					</view>
				</view>
			</view>
			<u-loadmore :status="status" :load-text="loadText" :font-size="24" :margin-top="20" :margin-bottom="20" bg-color="#f3f4f6" />
		</scroll-view>
		<tabbar></tabbar>
		<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth"></auth>
		<u-popup v-model="showDialog" mode="center" :mask-close-able="false" custom-style="padding:0;background:none;">
			<view style="position: relative;">
				<img src="@/static/images/qrDialog.png" mode="widthFix" />
				<button class="qr_DialogBtn" @click="showDialog=false">确定</button>
			</view>
		</u-popup>
	</view>
</template>
<script>
	import auth from "@/components/auth/index";
	import tabbar from "@/components/tabbar/index";
	export default {
		data() {
			return {
				show: false,
				pageTitle: '分享',
				loading: true,
				showAuth: false,
				mainColor: '',
				u: {},
				contentHeight: 0,
				msg: {
					Name: "", //页面名称
					pageIndex: 1,
					pageSize: 10,
				},
				active: 0, //一级
				active2: -1, //二级选中
				active3: -1, //三级选中
				conMsg: {
					CateId: 0,
					QStartDate: "", //开始时间
					QEndDate: "", //结束时间
					KeyWords: "", //页面名称
					pageIndex: 1,
					pageSize: 10,
					total: 0,
				},
				//第一层数据
				dataFirst: [],
				//第二层
				dataSecond: [],
				//第三层
				dataThird: [],

				//内容数据
				dataList: [],
				imgArr: [0, 1, 2],
				showShare: false, // 显示分享
				showAuth: false, //是否登录弹窗
				scrollHeight: 0,
				status: "loadmore",
				pageCount: 1,
				loadText: {
					loadmore: "轻轻上拉，加载更多",
					loading: "努力加载中",
					nomore: "没有更多了",
				},
				goodTitle:'', //名称=>传子组件
				images:[], //图片=>传子组件
				qrHeight:180,
				showDialog:false
			};
		},
		components: {
			auth,
			tabbar
		},
		created() {
			this.contentHeight = this.$utils.calcContentHeight(-40) + 'px';
			// this.scrollHeight = this.$utils.calcContentHeight(-40+180) + 'px';
			this.scrollHeight = this.$utils.calcContentHeight(-40+this.qrHeight) + 'px';
			this.mainColor = this.$uiConfig.mainColor;
		},
		mounted() {
			let currentPages = getCurrentPages();
			let u = '/' + currentPages[currentPages.length - 1].route;
			let pages = wx.getStorageSync('basedata') ? wx.getStorageSync('basedata').bar_title : [];
			pages.forEach(x => {
				if (x.value == u) {
					this.pageTitle = x.new_name ? x.new_name : x.name;
				}
			});
			uni.setNavigationBarTitle({
				title: this.pageTitle
			});
		},
		onLoad(option) {
			this.getList();
			this.getContent();
			this.u = uni.getStorageSync("mall_UserInfo");
		},
		methods: {
			//点击切换
			changeHandler(i) {
				this.active = i;
			},
			//获取头部数据
			getList() {
				this.request2({
						url: '/api/Share/GetShareCategoryList',
						data: this.msg
					},
					res => {
						var data = res.data;
						this.dataFirst = data;
						if (data && data.length > 0) {
							this.dataSecond = data[0].children;
							if (data[0].children && data[0].children.length > 0) {
								this.dataThird = data[0].children[0].children
							}
						}
					}
				);
			},
			//获取内容
			getContent() {
				this.request2({
						url: '/api/Share/AppGetShareFriendPage',
						data: this.conMsg
					},
					res => {
						if (res.resultCode == 1) {
							this.dataList = this.dataList.concat(res.data.pageData);
							this.pageCount = res.data.pageCount;
						}
					}
				);
			},
			getChang(){
				if(this.dataThird.length==0){
					this.qrHeight=145
				}else{
					this.qrHeight=180
				}
				this.scrollHeight = this.$utils.calcContentHeight(-40+this.qrHeight) + 'px';
			},
			//点击一级分类
			getChild(index) {
				this.dataList=[];
				this.active = index;
				this.dataSecond = this.dataFirst[index].children;
				this.dataThird = [];
				this.active2 = -1;
				this.active3 = -1;
				this.conMsg.CateId = this.dataFirst[index].Id;
				this.getContent();
				this.getChang();
			},
			//点击二级分类
			getSecond(item, index) {
				this.dataList=[];
				this.active2 = index;
				this.dataThird = item.children;
				this.active3 = -1;
				this.conMsg.CateId = item.Id;
				this.getContent();
			},
			//点击三级分类
			getThird(item, index) {
				this.dataList=[];
				this.active3 = index;
				this.show = false;
				this.conMsg.CateId = item.Id;
				this.getContent();
			},
			reloadUserinfo() {
				this.u = uni.getStorageSync('mall_UserInfo');
			},
			//关闭登录窗口
			gbAuth() {
				this.showAuth = false;
			},
			closeShare() {
				this.showShare = false;
			},
			//点击分享
			openShare(item) {
				if (this.u) {
					this.request2({
							url: '/api/Share/SetShareCount',
							data: {
								Id:item.Id
							}
						},
						res => {
							if (res.resultCode == 1) {
								item.ShareCount++;
							}
						}
					);
					this.sendQuanHandler();
					this.goodTitle=item.MaterialInfo;
					this.images=item.ImgList;
					this.showShare = true;
				} else {
					this.showAuth = true;
				}
			},
			//滚动加载
			lower(e) {
				if (this.conMsg.pageIndex < this.pageCount) {
					this.conMsg.pageIndex++;
					this.status = "loading";
					this.getContent();
				} else {
					this.status = "nomore";
				}
			},
			//跳转
			goUrl(item){
				if (item.LinkUrl && item.LinkUrl.length > 0) {
				  uni.redirectTo({
				    url: item.LinkUrl
				  });
				}
			},
			//分享复制
			sendQuanHandler() {
				this.copyHandler();
				setTimeout(() => {
					this.savePicHandler();
				}, 1000);
			},
			//复制文字
			copyHandler() {
				uni.setClipboardData({
					data: this.goodTitle,
				});
			},
			savePicHandler() {
				uni.showLoading({
					title: "正在下载图片",
				});
				let arr = JSON.parse(JSON.stringify(this.images));
				this.downLoadImage(arr);
			},
			downLoadImage(arr) {
				let that = this;
				uni.downloadFile({
					url: arr[0],
					success: (res) => {
						if (res.statusCode === 200) {
							uni.saveImageToPhotosAlbum({
								filePath: res.tempFilePath,
								success: function() {
									arr.splice(0, 1);
									if (arr.length > 0) {
										that.downLoadImage(arr);
									} else {
										uni.hideLoading();
										uni.showToast({
											title: "下载成功",
										});
										that.showDialog=true;
									}
								},
								fail: function(e) {
									uni.hideLoading();
									that.$refs.uTips.show({
										title: "下载失败，请稍后重试",
										type: "error",
										duration: "2300",
									});
								},
							});
						} else {
							uni.hideLoading();
							that.$refs.uTips.show({
								title: "下载失败，请稍后重试",
								type: "error",
								duration: "2300",
							});
						}
					},
				});
			},
		}
	};
</script>
</script>
