<template>
	<view>
		<div class="header">
			<div class="searchBox" :style="{ height: localHeight + 'px', paddingTop: top + 'px' }">
				<div class="searchBox_left" @click="back">
					<u-icon name="arrow-left" size="20px" color="#000"></u-icon>
				</div>
			</div>
		</div>
		<div class="swiper">
			<swiper :indicator-dots="false" :autoplay="true" :interval="3000" :duration="1000" @change="changeIndex">
				<swiper-item v-for="(item, index) in currentGG.goods_carousel" :key="index">
					<image :src="picUrl + item"></image>
				</swiper-item>
			</swiper>

			<div class="NumDot">
				{{ currentIndex }} /{{ currentGG.goods_carousel.length }}
			</div>
		</div>

		<div class="Money">
			<div class="MoneyMark">￥</div>{{ currentGG.sales_price }} <div class="MoneyUnit">/{{ currentGG.goods_unit }}
			</div>

			<div class="oldMoney">￥{{ currentGG.market_price }}</div>
		</div>

		<!-- 规格 -->
		<!-- @click="changeGG2(item, index)" :class="index == currentGGIndex ? 'active' : ''"> -->
		<div class="GGBox">
			<div class="GG_left">
				<div class="GG_Item" v-for="(item, index) in info.commodity_goods_info_list" :key="item.id"
					@click="changeGG(item, index)" :class="index == currentGGIndex ? 'active' : ''">
					{{ item.goods_spec }} / {{ item.goods_unit }}
				</div>
			</div>
			<div class="GG_rigth">共{{ info.commodity_goods_info_list.length }}款<u-icon size="26rpx"
					name="arrow-right"></u-icon></div>
		</div>

		<div class="Tit">{{ currentGG.goods_name }}</div>
		<div class="Msg">{{ currentGG.commodity_brief }}</div>
		<div class="GoodsMsg">
			商品详情
		</div>

		<div class="Msg_Item">
			<div class="Msg_ItemTit">商品编号</div>
			<div class="Msg_ItemCon" @click="copys(currentGG.goods_no)">{{ currentGG.goods_no }} <image
					src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_copy.png"></image>
			</div>
		</div>
		<div class="Msg_Item">
			<div class="Msg_ItemTit">规格说明</div>
			<div class="Msg_ItemCon">{{ currentGG.goods_spec }}</div>
		</div>
		<div class="Msg_Item">
			<div class="Msg_ItemTit">售卖单位</div>
			<div class="Msg_ItemCon">{{ currentGG.goods_unit }}</div>
		</div>

		<div class="GoosMsg">
			<image v-for="item in currentGG.goods_detail_pic" :src="picUrl + item" mode="widthFix"></image>
		</div>



		<!-- 底部购物车 -->
		<div class="Car">
			<div class="car_left">
				<div class="share" @click="share">
					<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_share.png"
						mode="widthFix"></image>
					分享
				</div>
				<div class="cars" @click="car">
					<u-badge numberType="limit" :type="type" max="99" :value="carNum"></u-badge>

					<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_car.png"
						mode="widthFix"></image>
					购物车
				</div>
			</div>

			<div class="car_right"
				v-if="!info.commodity_goods_info_list[currentGGIndex].cart_count || info.commodity_goods_info_list[currentGGIndex].cart_count.count == 0"
				@click="addCar">
				加入购物车
			</div>

			<div class="car_right" v-if="info.commodity_goods_info_list[currentGGIndex].cart_count.count > 0">

				<u-number-box v-model="info.commodity_goods_info_list[currentGGIndex].cart_count.count"
					@change="changeCar" min="0">
					<view slot="minus" class="minus">
						<u-icon name="minus" size="36" bold></u-icon>
					</view>
					<text slot="input" style="width: 200rpx;text-align: center;" class="input">
						{{ info.commodity_goods_info_list[currentGGIndex].cart_count.count }}</text>
					<view slot="plus" class="plus">
						<u-icon name="plus" color="#FFFFFF" size="36" bold></u-icon>
					</view>
				</u-number-box>
			</div>
		</div>

		<!-- 分享 -->
		<div class="shadow" @click.stop="changeShadow" v-if="boxshadow1">
			<div class="shadowBox1">
				<div class="shadowBox1Item" @click="shareFriend">
					<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_WX.png"
						mode="aspectFill"></image>
					微信好友
				</div>
				<div class="shadowBox1Item" @click="openSave">
					<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_saveImg.png"
						mode="aspectFill"></image>
					生成海报
				</div>
			</div>
		</div>
		<!-- 海报 -->
		<div class="shadow" @click="changeShadow2" v-if="boxshadow2">
			<div class="shadowBox2">
				<div class="shadowBox_img">
					<div class="boxshadow_tit">今日商品推荐</div>
					<div class="boxshadow_img">
						<image
							src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_share_img.png">
						</image>
					</div>
					<div class="line"></div>
					<div class="shadowBoxInfo">
						<div class="shadowboxInfo_left">二维码</div>
						<div class="shadowboxInfo_right">
							<div class="shadowboxInfo_right_1">正鲜生</div>
							<div class="shadowboxInfo_right_2">
								长按识别小程序 <br>
								数量有限马上抢购</div>
						</div>
					</div>
				</div>
				<div class="shadowBox_btn" @click.stop="saveImg">保存海报</div>
			</div>
		</div>

	</view>
</template>

<script>
import {
	apiArr
} from '../../../api/shop';
import {
	picUrl,
	menuButtonInfo,
	request,
	NavgateTo
} from '../../../utils';
export default {
	data() {
		return {
			picUrl,
			top: "",
			localHeight: "",
			carNum: '',
			prevCarNum: "",
			currentNum: "0",//当前商品的数量
			type: "error",
			boxshadow1: false,
			boxshadow2: false,
			id: "",
			info: "",
			currentIndex: "1",//当前轮播图

			currentGG: "", //当前选中规格
			currentGGIndex: "", //当前规格index

			carOrderList: [],
		}
	},
	methods: {

		changeIndex(e) {
			this.currentIndex = e.detail.current + 1
		},

		back() {
			uni.navigateBack({
				delta: 1
			});
		},
		// 分享微信
		shareFriend() {
			this.boxshadow2 = false
			return
			// uniapp 分享微信好友
			uni.share({
				provider: 'weixin',
				type: 'link',
				scene: 'session',
				link: 'https://uniapp.dcloud.net.cn/',
				title: '商品名称',
				imageUrl: '',
				success: (res) => {
					uni.showToast({
						title: '分享成功',
						icon: 'success',
						duration: 2000
					});
					this.boxshadow1 = false
				},
				fail: (err) => {
					console.log('分享失败', err);
					this.boxshadow1 = false
				}
			});
		},
		changeShadow() {
			this.boxshadow1 = false
		},
		openSave() {
			this.boxshadow1 = false
			this.boxshadow2 = true
		},
		// 保存海报
		saveImg() {
			this.boxshadow2 = false
			// 微信小程序保存图片
			uni.downloadFile({
				url: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_share_img.png',
				success: (res) => {
					if (res.statusCode === 200) {
						uni.saveImageToPhotosAlbum({
							filePath: res.tempFilePath,
							success: (res) => {
								uni.showToast({
									title: '保存成功',
									icon: 'success',
									duration: 2000
								});
							},
							fail: (err) => {
								console.log('保存失败', err);
							}
						});
					}
				},
				fail: (err) => {
					console.log('下载失败', err);
				}
			});
		},
		changeShadow2() {
			this.boxshadow2 = false
		},

		// 点分享按钮
		share() {
			this.boxshadow1 = true
		},
		//商品详情
		getGoodsInfo() {
			request(apiArr.getGoodsInfo, "POST", {
				id: this.id
			}).then(res => {
				console.log(res);

				// 分割图片
				res.commodity_goods_info_list.forEach(item => {
					item.goods_detail_pic = item.goods_detail_pic.split(',')
					item.goods_carousel = item.goods_carousel.split(',')
					item.commodity_pic = item.commodity_pic.split(',')
				});



				//根据购物车列表 和 当前商品列表 来更新当前商品列表在购物车中的数量
				if (this.carOrderList) {
					this.carOrderList.forEach(items => {
						res.commodity_goods_info_list.forEach(item => {
							if (items.goods_id == item.id) {
								item.cart_count = {count:0}
								item.cart_count.count = items.count
							}
						})
					})
				}
				this.info = res
				this.currentGG = res.commodity_goods_info_list[0]
				this.currentGGIndex = 0

			})
		},

		copys(e) {
			uni.setClipboardData({
				data: e,
				success: (res) => {
					uni.showToast({
						title: '复制成功',
						icon: 'success',
						duration: 2000
					});
				}
			});
		},


		// 切换规格
		changeGG(item, index) {
			this.currentGG = item
			this.currentGGIndex = index
			if (this.currentGG.cart_count) {
				this.currentNum = this.currentGG.cart_count.count
			} else {
				this.currentGG.cart_count = { count: 0 }
			}
		},
		car() {
			NavgateTo('../shopCar/index')
		},

		//获取购物车数量
		getShopCar() {
			request(apiArr.getCarCount, 'POST', {}).then(res => {
				this.carNum = res.total
				this.prevCarNum = res.total
			})
		},


		getShopCarList() {
			request(apiArr.getCar, 'POST', {}).then(res => {
				this.carOrderList = res.commodity_cart_list
			})
		},

		addCar() {
			let that = this
			//如果没有当前商品 直接添加一个
			let goods_id_and_count = []
			this.info.commodity_goods_info_list[this.currentGGIndex].cart_count = { count: 1 }
			this.info.commodity_goods_info_list.forEach(item => {
				console.log(item.cart_count);
				goods_id_and_count.push({
					goods_id: item.id,
					count: item.cart_count ? item.cart_count.count : 0
				})
			})

			console.log(goods_id_and_count);
			//因为是当前商品没有 调用update就是增加商品。增加商品之后再获取购物车数量
			request(apiArr.updateCar, "POST", {
				goods_id_and_count
			}).then(res => {
				that.getShopCar()
				that.getShopCarList()
			})
		},

		// 购物车更改
		changeCar(newValue) {
			// 修改当前商品在购物车中的数量
			this.info.commodity_goods_info_list[this.currentGGIndex].cart_count.count = newValue.value
			// 修改购物车列表中的数量
			this.carOrderList.forEach(item => {
				if (item.commodity_goods_info.id == this.info.commodity_goods_info_list[this.currentGGIndex].id) {
					item.count = newValue.value
				}
			})
			// 计算购物车数量
			let carNum = 0
			this.carOrderList.forEach(item => {
				carNum += item.count
			})
			this.carNum = carNum
		},


	},
	onLoad(options) {
		const meun = menuButtonInfo();
		this.top = meun.top;
		this.localHeight = meun.height;

		this.id = options.id

	},
	onReachBottom() {

	},
	onShow() {
		this.getShopCarList()
		this.getGoodsInfo()
		this.getShopCar()
	},

	//离开页面的时候直接更新购物车数量(目前接口是 传入商品id 数量。如果有当前商品就更新数量。如果没有就增加商品。如果删除某个商品 count 为0 就删除)
	onHide() {
		let goods_id_and_count = []
		this.info.commodity_goods_info_list.forEach(item => {
			goods_id_and_count.push({
				goods_id: item.id,
				count: item.cart_count ? item.cart_count.count : 0
			})
		})

		request(apiArr.updateCar, "POST", {
			goods_id_and_count
		})
		return
	},


}
</script>

<style>
@import url("./index.css");
</style>