<template>
	<view class="container">
		<view class="carousel-section">
			<!-- 背景色区域 -->
			<view class="bg"><image src="../../static/index/index13.png" mode=""></image></view>
			<!-- 标题栏和状态栏占位符 -->
			<view class="titleNview-placing"></view>
			<!-- 搜素栏 -->
			<view class="search flex">
				<image src="../../static/index/index09.png" class="address"></image>
				<!-- <view class="shop-name clamp" @click.stop="canChange == 0?nav('/pages/shoping/list'):''">{{ storeInfo.name }}</view> -->
				<view class="shop-name clamp">椒江区</view>
				<image class="shop-jt" src="../../static/index/index07.png" mode=""></image>
				<view class="input-box flex" @click.stop="clickSearch">
					<view class=" input-content flex">
						<view class="iconfont iconsearch"></view>
						<view class="input"><input type="text" disabled value="输入关键字搜索" /></view>
					</view>
				</view>
			</view>
			<swiper class="carousel" autoplay="true" duration="400" interval="5000" @change="swiperChange" :indicator-dots="true" indicator-active-color="#FFFFFF">
				<!-- <swiper class="carousel" autoplay="true" duration="400" interval="5000"> -->
				<swiper-item v-for="(item, index) in carouselList" :key="index" class="carousel-item">
					<image :src="item.pic" mode="aspectFill" @click="bannerNavToUrl(item)"></image>
				</swiper-item>
			</swiper>
		</view>
		<view class="navbar">
			<view class="navbar-box flex">
				<view class="navbar-item" @click="navTo('/pages/index/sign')">
					<image class="nitem-image" src="../../static/index/index05.png" mode=""></image>
					<view class="nitem-font">天天领红包</view>
				</view>
				<view class="navbar-item" @click="navTo('')">
					<image class="nitem-image" src="../../static/index/index04.png" mode=""></image>
					<view class="nitem-font">积分商城</view>
				</view>
				<view class="navbar-item" @click="navTo('/pages/product/list')">
					<image class="nitem-image" src="../../static/index/index03.png" mode=""></image>
					<view class="nitem-font">全部商品</view>
				</view>
				<view class="navbar-item" @click="navTo('/pages/user/shareQrCode')">
					<image class="nitem-image" src="../../static/index/index02.png" mode=""></image>
					<view class="nitem-font">邀请有礼</view>
				</view>
				<view class="navbar-item" @click="navTo('')">
					<image class="nitem-image" src="../../static/index/index01.png" mode=""></image>
					<view class="nitem-font">话费充值</view>
				</view>
			</view>
		</view>
		<view class="product-box" v-if="bastList.length != 0">
			<view class="product-title">
				<image class="pt-image" src="../../static/index/index15.png" mode=""></image>
				<view class="pt-title">会员礼包</view>
			</view>
			<view class="hotgoods">
				<view class="hotgoods-item" v-for="item in bastList" :key="item.id" @click="navToDetailPage(item)">
					<view class="image-wrapper"><image :src="item.image" mode="scaleToFill"></image></view>
					<view class="title clamp2">{{ item.store_name }}</view>
					<view class="hot-price">
						<view class="hotPrice-box">会员价</view>
						<view class="price">
							<text class="font-size-sm">￥</text>
							{{ item.price * 1 }}
						</view>
						<view class="yuanPrice">{{ item.ot_price }}</view>
					</view>
				</view>
			</view>
		</view>
		<view class="shop" v-if="shoplist.length != 0">
			<view class="shop-title">
				<view class="shop-item">
					<view class="sitem-font">智能排序</view>
					<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
				</view>
				<view class="shop-item">
					<view class="sitem-font">位置距离</view>
					<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
				</view>
				<view class="shop-item">
					<view class="sitem-font">折扣优惠</view>
					<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
				</view>
				<view class="shop-item">
					<view class="sitem-font">筛选</view>
					<image class="jt-down" src="../../static/index/index06.png" mode=""></image>
				</view>
			</view>
			
		</view>
		<view class="shop-main flex" v-for="(item, index) in shoplist" :key="index">
			<image class="main-left" src="../../static/index/index13.png" mode=""></image>
			<view class="main-right flex">
				<view class="shopm-info">
					<view class="shopm-title">
						<view class="shopmt-font clamp">李家烤肉11111111111111111111111111111111111111111111</view>
						<view class="shopmt-good">荐</view>
					</view>
					<view class="address">椒江区市府大道200号</view>
					<view class="shopmt-tip">消费最高可得10%积分</view>
				</view>
				<view class="right">
					<view class="mright-top">
						<image class="mrt-image" src="../../static/index/index10.png" mode=""></image>
						<view class="mrt-font">距离0.3KM</view>
					</view>
					<view class="mright-bottom">
						<image class="mrb-item" src="../../static/index/index14.png" mode=""></image>
						<image class="mrb-item" src="../../static/index/index11.png" mode=""></image>
					</view>
				</view>
			</view>
		</view>
		<u-tabbar activeColor="#EE0979" v-model="current" :list="tabbar" :mid-button="true"></u-tabbar>
	</view>
</template>

<script>
import { lookSubpoints, lookOneself } from '../../api/user.js';
import seckill from '../../components/seckill/seckill.vue';
import { loadIndexs } from '@/api/index.js';
import { getUserInfo, spread } from '@/api/user.js';
import { setCoupons } from '@/api/functionalUnit.js';
import { getBargainList } from '@/api/product.js';
import { interceptor } from '@/utils/loginUtils';
import { mapState, mapMutations } from 'vuex';
import { tabbar } from '@/utils/tabbar.js';
// #ifdef H5
import { weixindata, shareLoad } from '@/utils/wxAuthorized';
// #endif
export default {
	components: {
		seckill
	},
	data() {
		return {
			tabbar: tabbar,
			current: 0,
			shareShow: false, //分享海报
			pageProportion: 0, //保存页面基于750宽度的比例
			swiperHeight: 0,
			checkid: 0,
			titleNViewBackground: '',
			longitude: 0, //经度
			latitude: 0, //纬度
			swiperCurrent: 0,
			swiperLength: 0,
			carouselList: [], //轮播列表
			bastList: [], //会员礼包
			shoplist: [], //商店列表
			page: 1,
			limit: 5,
		};
	},
	computed: {
		...mapState(['loginInterceptor','baseURL']),
		...mapState('user', ['hasLogin', 'userInfo'])
	},
	onLoad: function(option) {
		this.getaddress();
		// #ifdef MP
		if (option.scene) {
			// 存储小程序邀请人
			uni.setStorage({
				key: 'spread_code',
				data: option.scene
			});
		}
		// #endif
		// #ifdef H5
		this.IndexShare();
		//#endif
	},
	onShow: function() {
		// 判断是否强制登录
		if (!this.hasLogin) {
			// 登录拦截
			interceptor();
		}
		this.loadData();
		this.getBargainList();
	},
	//下拉刷新
	onPullDownRefresh() {
		this.loadData();
	},
	// #ifndef MP
	// 监听导航栏输入框点击事件
	onNavigationBarSearchInputClicked(e) {
		//跳转到搜索页面
		this.clickSearch();
	},
	//点击导航栏 buttons 时触发
	onNavigationBarButtonTap(e) {
		const index = e.index;
		if (index === 0) {
			this.$api.msg('点击了扫描');
		} else if (index === 1) {
			// #ifdef APP-PLUS
			const pages = getCurrentPages();
			const page = pages[pages.length - 1];
			const currentWebview = page.$getAppWebview();
			currentWebview.hideTitleNViewButtonRedDot({
				index
			});
			// #endif
			uni.navigateTo({
				url: '/pages/user/notice'
			});
		}
	},
	// #endif
	methods: {
		...mapMutations(['setLat', 'setLon']),
		// #ifdef H5
		IndexShare() {
			let obj = this;
			let pages = getCurrentPages();
			// 获取当前页面
			let page = pages[pages.length - 1];
			let path = '#/' + page.route + '?';
			// 保存传值
			for (let i in page.options) {
				path += i + '=' + page.options[i] + '&';
			}
			console.log(obj.Path)
			// 保存邀请人
			path += 'spread=' + this.userInfo.uid;
			let data = {
				link: this.baseURL + '/index/' + path,
				title: this.userInfo.nickname + '邀请您进入响亮商城',
				desc:'欢迎加入响亮商城',
				imgUrl: 'https://xl.liuniu946.com/index/static/img/logo.jpg'
			};
			console.log(data,'分享数据');
			shareLoad(data);
		},
		// #endif
		getaddress() {
			console.log('dizhi+++++++++++');
			let obj = this;
			// uni.getLocation({
			// 	type: 'gcj02',
			// 	success: res => {
			// 		console.log(res, 123456);
			// 		obj.setLat(res.latitude);
			// 		obj.setLon(res.longitude);
			// 	},
			// 	fail: err => {
			// 		console.log(err, 'shi+++++++++++++++');
			// 		openMap().then(e => {
			// 			this.getaddress();
			// 		});
			// 	}
			// });
			weixindata().then(wxOjb => {
				console.log(wxOjb,'获取微信');
				wxOjb.getLocation({
					type: 'gcj02',
					success: res => {
						console.log(res, 123456);
						obj.setLat(res.latitude);
						obj.setLon(res.longitude);
					},
					fail: err => {
						console.log(err, 'shi+++++++++++++++');
						openMap().then(e => {
							this.getaddress();
						});
					}
				});
			});
		},
		//砍价商品推荐详情页
		navToDetailPages(item) {
			let id = item.product_id;
			//let type = 2;

			uni.navigateTo({
				url: '/pages/product/product?id=' + id
			});
		},
		navTo(url) {
			if (url == '') {
				this.$api.msg('暂未开通，敬请期待');
			} else {
				uni.navigateTo({
					url
				});
			}
		},
		openSubscribe: function(e) {
			let page = e;
			// #ifndef MP
			uni.navigateTo({
				url: page
			});
			// #endif
			// #ifdef MP
			uni.showLoading({
				title: '正在加载'
			});
			openBargainSubscribe()
				.then(res => {
					uni.hideLoading();
					uni.navigateTo({
						url: page
					});
				})
				.catch(err => {
					uni.hideLoading();
				});
			// #endif
		},
		getBargainList() {
			let that = this;

			getBargainList({
				page: that.page,
				limit: that.limit
			})
				.then(function(res) {
					that.$set(that, 'bargainlist', res.data.slice(0, 2));
				})
				.catch(res => {
					console.log(res, 'getBargainList');
				});
		},
		Mask() {
			this.MaskShow = false;
			this.shareShow = true;
			uni.setStorage({
				key: 'FirstEntry',
				data: true,
				success: function() {
					console.log(uni.getStorageSync('FirstEntry'), 'Mask');
				}
			});
		},
		Toshare() {
			if (this.userInfo == '') {
				getUserInfo({})
					.then(({ data }) => {
						this.setUserInfo(data);
						this.userInfo = data;
					})
					.catch(e => {});
			} else {
				this.shareShow = false;
				uni.navigateTo({
					url: '/pages/user/shareQrCode?spread=' + this.userInfo.uid
				});
			}
		},
		Tocancel() {
			this.shareShow = false;
		},
		// 监听切换事件
		listChange(e) {
			this.checkid = e.detail.current;
		},
		// 點擊搜索框
		clickSearch() {
			uni.navigateTo({
				url: '/pages/product/search'
			});
		},
		// 点击触发领取优惠券
		setCoupons(item) {
			// 判断是否已经领取了优惠券
			let obj = this;
			uni.showModal({
				title: '领取提示',
				content: '是否领取优惠券',
				success(e) {
					if (e.confirm) {
						setCoupons({
							couponId: item.id
						}).then(e => {
							item.is_use = true;
							uni.showToast({
								title: '领取成功',
								type: 'top',
								duration: 2000
							});
						});
					}
				}
			});
		},
		//商品种类切换
		change(item) {
			let id = item;
			this.checkid = id;
			if (this.checkid == 1) {
				// console.log(1);
				this.detail = this.selected_detail;
			} else if (this.checkid == 2) {
				// console.log(2);
				this.detail = this.new_product;
			} else {
				this.detail = this.cheap_good;
			}
		},
		// 监听图片加载完成
		onImageError(key, index) {
			this[key][index].image = '/static/error/errorImage.jpg';
		},
		// 请求载入数据
		async loadData() {
			loadIndexs({})
				.then(({ data }) => {
					let goods = data.info;
					this.carouselList = data.banner;
					this.swiperLength = this.carouselList.length;
					this.bastList = data.giftInfo; //会员礼包
					uni.stopPullDownRefresh();
				})
				.catch(e => {
					uni.stopPullDownRefresh();
				});
		},
		//轮播图切换修改背景色
		swiperChange(e) {
			const index = e.detail.current;
			this.swiperCurrent = index;
			this.titleNViewBackground = this.carouselList[index].background;
		},
		//详情页
		navToDetailPage(item) {
			let id = item.id;
			uni.navigateTo({
				url: '/pages/product/product?id=' + id + '&isVip=1'
			});
		},

		// 轮播图跳转
		bannerNavToUrl(item) {
			// #ifdef H5
			if (item.wap_url.indexOf('http') > 0) {
				window.location.href = item.wap_url;
			}
			// #endif
			//测试数据没有写id，用title代替
			uni.navigateTo({
				url: item.wap_url
			});
		}
	}
};
</script>

<style lang="scss">
.carousel-section {
	position: relative;
	padding-top: 10px;
	.bg {
		position: absolute;
		top: 0;
		left: 0;
		width: 750rpx;
		height: 378rpx;
		image {
			width: 100%;
			height: 100%;
		}
	}
	.titleNview-placing {
		height: var(--status-bar-height);
		box-sizing: content-box;
	}
	.search {
		justify-content: flex-start;
		padding: 10rpx 32rpx 20rpx;
		align-items: center;
		.address {
			width: 32rpx;
			height: 38rpx;
		}
		.shop-name {
			height: 38rpx;
			position: relative;
			top: -4rpx;
			z-index: 100;
			font-size: 30rpx;
			font-family: PingFang SC;
			font-weight: 500;
			color: #ffffff;
			padding-left: 10rpx;
		}
		.shop-jt {
			margin-left: 8rpx;
			width: 16rpx;
			height: 10rpx;
		}
		.input-box {
			margin-left: 10rpx;
			position: relative;
			z-index: 99;
			width: 520rpx;
			height: 60rpx;
			background: rgba(255, 255, 255, 0.4);
			border-radius: 30rpx;
			.input-content {
				position: relative;
				z-index: 11;
				border-radius: 99rpx;
				flex-grow: 1;
				padding: 5rpx 30rpx;
				background: rgba(255, 255, 255, 0.4);
				.iconsearch {
					font-size: 50rpx;
					color: #ffffff;
				}
				.input {
					margin-left: 19rpx;
					flex-grow: 1;
					color: #ffffff;
					input {
						font-size: 28rpx;

						color: #ffffff;
					}
				}
			}
			.input-button {
				padding-left: 20rpx;
				font-size: $font-base;
				height: 100%;
			}
		}
	}
}
.carousel {
	position: relative;
	z-index: 3;
	width: 100%;
	height: 360rpx;
	.carousel-item {
		width: 100%;
		height: 100%;
		padding: 0 28rpx;
		overflow: hidden;
	}
	image {
		width: 100%;
		height: 100%;
		border-radius: $border-radius-sm;
	}
}
.navbar {
	position: relative;
	z-index: 2;
	margin-top: -200rpx;
	width: 750rpx;
	height: 462rpx;
	background: #ffffff;
	border-radius: 40rpx;
	.navbar-box {
		padding-top: 250rpx;
		.navbar-item {
			display: flex;
			flex-direction: column;
			align-items: center;
			width: 20%;
			.nitem-image {
				width: 98rpx;
				height: 98rpx;
			}
			.nitem-font {
				margin-top: 22rpx;
				font-size: 26rpx;
				font-family: PingFang SC;
				font-weight: 500;
				color: #000000;
			}
		}
	}
}
.product-box {
	margin-top: 20rpx;
	background: #ffffff;
	padding: 26rpx 30rpx 20rpx;
	.product-title {
		display: flex;
		align-items: center;
		.pt-image {
			width: 36rpx;
			height: 36rpx;
		}
		.pt-title {
			margin-left: 8rpx;
			font-size: 32rpx;
			font-family: PingFang SC;
			font-weight: bold;
			color: #333333;
		}
		.pt-tip {
			margin-left: 16rpx;
			font-size: 20rpx;
			font-family: PingFang SC;
			font-weight: bold;
			color: #95a0b1;
		}
	}
	.hotgoods {
		margin-top: 38rpx;
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		padding: 0 0 30rpx;

		.hotgoods-item {
			width: 48%;
			background-color: #ffffff;
			border-radius: 12rpx;
			&:nth-child(2n + 1) {
				margin-right: 24rpx;
			}
			.image-wrapper {
				width: 100%;
				height: 330rpx;
				border-radius: 3px;
				overflow: hidden;
				image {
					width: 100%;
					height: 100%;
					opacity: 1;
					border-radius: 12rpx 12rpx 0 0;
				}
			}
			.title {
				margin-top: 24rpx;
				font-size: 28rpx;
				font-family: PingFang SC;
				font-weight: 500;
				color: #333333;
			}
			.hot-price {
				display: flex;
				justify-content: flex-start;
				align-items: center;
				padding: 14rpx 0 30rpx;
				.hotPrice-box {
					width: 70rpx;
					height: 28rpx;
					background: linear-gradient(90deg, #c79a4c, #f9df7f);
					border-radius: 5rpx;
					text-align: center;
					line-height: 28rpx;
					font-size: 20rpx;
					font-family: Source Han Sans CN;
					font-weight: 400;
					color: #ffffff;
				}
				.price {
					margin-left: 10rpx;
					font-size: 40rpx;
					color: #ff0000;
					font-weight: 500;
				}
				.yuanPrice {
					margin-left: 10rpx;
					font-size: 20rpx;
					font-family: PingFang SC;
					font-weight: 500;
					text-decoration: line-through;
					color: #999999;
				}
				.cart-icon {
					image {
						width: 44rpx;
						height: 44rpx;
					}
				}
			}
		}
	}
}
.shop {
	margin-top: 20rpx;
	background: #ffffff;
	padding: 0 12rpx;
	.shop-title {
		padding: 30rpx 0 20rpx;
		display: flex;
		align-items: center;
		border-bottom: 1px solid #e3e6e7;
		.shop-item {
			width: 25%;
			display: flex;
			align-items: center;
			justify-content: center;
			.sitem-font {
				font-size: 26rpx;
				font-family: PingFang SC;
				font-weight: bold;
				color: #333333;
			}
			.jt-down {
				width: 10rpx;
				height: 8rpx;
				margin-left: 12rpx;
			}
		}
	}
	
}
.shop-main {
		padding: 32rpx 18rpx 0 12rpx;
		align-items: flex-start;
		justify-content: flex-start;
		.main-left {
			width: 180rpx;
			height: 180rpx;
			border-radius: 10rpx;
		}
		.main-right {
			width: 500rpx;
			justify-content: space-between;
			align-items: flex-start;
			margin-left: 20rpx;
			padding: 13rpx 0 35rpx;
			border-bottom: 1px solid #eaeced;
			.shopm-info {
				max-width: 60%;
				line-height: 1;
				.shopm-title {
					display: flex;
					justify-content: flex-start;
					.shopmt-font {
						font-size: 34rpx;
						font-family: PingFang SC;
						font-weight: bold;
						color: #333333;
					}
					.shopmt-good {
						margin-left: 6rpx;
						width: 30rpx;
						height: 30rpx;
						border: 1px solid #ff4c4c;
						border-radius: 5rpx;
						font-size: 20rpx;
						font-family: PingFang SC;
						font-weight: 500;
						color: #ff4c4c;
						text-align: center;
						line-height: 30rpx;
					}
				}
				.address {
					margin-top: 16rpx;
					font-size: 24rpx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #666666;
				}
				.shopmt-tip {
					position: relative;
					display: inline-block;
					flex-grow: 0;
					margin-top: 52rpx;
					padding: 8rpx;
					background: #fcf3f0;
					border-radius: 16rpx 16rpx 16rpx 0px;
					font-size: 20rpx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #ff440d;
				}
			}
			.right {
				height: 100%;
				margin-top: 5rpx;
				display: flex;
				flex-direction: column;
				.mright-top {
					display: flex;
					justify-content: flex-end;
					align-items: center;
					.mrt-image {
						width: 20rpx;
						height: 28rpx;
					}
					.mrt-font {
						margin-left: 8rpx;
						font-size: 22rpx;
						font-family: PingFang SC;
						font-weight: 500;
						color: #666666;
					}
				}
				.mright-bottom {
					margin-top: 80rpx;
					display: flex;
					justify-content: flex-end;
					.mrb-item {
						width: 46rpx;
						height: 46rpx;
						margin-left: 14rpx;
					}
				}
			}
		}
	}
</style>
