<template>
	<view class="bg" id="bg" v-if="info">
		<view class="swipe-box">
			<swiper class="swiper" :indicator-dots="false" :autoplay="true" :interval="3000" :duration="1000" circular>
				<swiper-item v-for="(item, index) in info.list_images.split(',')" :key="item.id">
					<view class="swiper-item">
						<image class="item-img" :src="showImg(item)" mode="aspectFill"></image>
					</view>
				</swiper-item>
			</swiper>
			<!-- <view class="swiper-item-num">{{ info.list_images.split(',').length }}张</view> -->
		</view>
		
		<view class="w-full relative" style="padding: 26rpx;top: -52rpx;">
			<view class="price-box ">
				<view class="price-zan">
					<view class="price">
						<view class="present-price">{{ info.money / 100 }}</view>
					</view>
				</view>
				<view class="title text-overflowRows">{{ info.title }}</view>
				<view class="tag no-scrollbar" v-if="info.goods_new_tag">
					<view class="tag-item" v-for="(item, index) in info.goods_new_tag.split(',')" :key="index">
						{{ item }}
					</view>
				</view>
			</view>
			<view class="sp-box" @click="openPop">
				<view class="sp-box-left flex-1">
					<view class="flex-shrink-0">
						选择：
					</view>
					<view class="flex-1">
						{{sku[productIndex].title}}
					</view>
				</view>
				<uni-icons class="flex-shrink-0" style="height: 36rpx;margin-right: 20rpx;" type="right" size="18"></uni-icons>
			</view>
		
			<view class="pro-title">产品简介</view>
			<view class="notice" >
				<view class="rich-text" v-html="formateRichText(info.special_content)"></view>
			</view>
		</view>
		
		<view class="btn-list">
			<view class="left-box">
				<view class="img-box" @click="collect">
					<image
						:src="(isCollect?'https://tongli.sz-trip.com/uploads/20240827/47e86bfd7dd5c1b73d58adaa2b35f55a.png':
						`https://tongli.sz-trip.com/uploads/20240827/95359568a28b0cae7accc437070eded4.png`)"
						mode="aspectFill"></image>
					<view class="text">
						收藏
					</view>
				</view>
				<button id="contact" open-type="contact" bindcontact="handleContact" session-from="sessionFrom">
					<view class="img-box">
						<image src="https://tongli.sz-trip.com/uploads/20240827/ae5fd4482c56e2655ecae6059171aab0.png"
							mode="aspectFill"></image>
						<view class="text">
							客服
						</view>
					</view>
				</button>
				
			</view>
			<view class="btn-buy" @click="openPop">
				立即购买
			</view>
		</view>

		<uni-popup ref="popup" type="bottom" @change="changPopShow">
			<view class="popup-content" v-if="sku.length>0">
				<view  @click="closePopup" style="padding: 31rpx 0 0 639rpx;width: 50rpx;height: 80rpx;">
					<uni-icons  type="closeempty" size="24"></uni-icons>
				</view>
				
				<view class="bottom-productImg">
					<img :src="showImg(sku[productIndex].image)" alt="">
					<view class="right-content">
						<view class="bottom-productPrice com-price">{{showPrice(sku[productIndex].money)}}</view>
						<view class="bottom-content text-overflow">已选择：{{sku[productIndex].title}}</view>
					</view>
				</view>
				<view>
					<view class="sp">
						规格
					</view>
					<view style="display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;">
						<view style="position:relative;" v-for="(botItem,botIndex) in sku" :key="botIndex">
							<view :class="['botProduct','text-overflow',{'noStore':botItem.store==0},{'botProducts':productIndex==botIndex}]"
								@click="changeProduct(botItem,botIndex)">
								{{botItem.title}}
							</view>
							<view class="noStore-text" v-if="botItem.store==0">
								不可购买
							</view>
						</view>

					</view>
				</view>
				<view class="buy-num com-flex-tao">
					数量
					<view class="number-btn">
						<view>
							<text @click="delNumber">-</text>
						</view>
						<view style="width: 96rpx;height: 69rpx;margin: 0 14rpx;">{{ buyNum }}</view>
						<view>
							<text @click="addNumber">+</text>
						</view>
					</view>
				</view>
			</view>
			<view style="height: 100rpx;"></view>
			<!-- <view class="btn-box">
				<view class="buy-btn" @click="order">
					下一步
				</view>
			</view> -->
		</uni-popup>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				id: null,
				info: null,
				sku: [],
				productIndex: 0,

				isCollect: false,
				showLength: 0,
				buyNum: 1,
				popShow: false
			};
		},
		onLoad(option) {
			this.id = option.id;
			this.getInfo();
			this.getSpecificationsByGoodsId();
		},
		methods: {
			changPopShow (e) {
				this.popShow = e.show
			},
			// 价格显示
			showPrice(price) {
				return (price && price != 0) ? (price / 100).toFixed(2) : '0.00'
			},
			

			getInfo() {
				this.Post({
						goods_id: this.id
					},
					'/api/goods/getGoodDetail'
				).then(res => {
					if (res.data.flag == 0) {
						setTimeout(() => {
							uni.showToast({
								title: '商品不存在或已下架',
								icon: 'none'
							})
						}, 0)
						setTimeout(() => {
							this.goBack()
						}, 2000)
					}
					this.info = res.data;
					this.isCollect = this.info.is_collect;
				});
			},
			getSpecificationsByGoodsId() {
				this.Post({
						goods_id: this.id
					},
					'/api/goods/getSpecificationsByGoodsId'
				).then(res => {
					if (res) {
						this.sku = res.data;
					}
				});
			},

			// 收藏
			collect() {
				this.Post({
						type: 5,
						id: this.id
					},
					'/api/scenic/collect'
				).then(res => {
					if (res) {
						uni.showToast({
							title: res.msg,
							icon: 'none'
						});
						this.isCollect = !this.isCollect
					}
				});
			},

			//数量加减
			addNumber() {
				this.buyNum += 1;
			},
			delNumber() {
				if (this.buyNum <= 1) {
					return;
				}
				this.buyNum -= 1;
			},
			closePopup() {
				this.$refs.popup.close()
			},
			openPop() {
				if (!this.popShow) {
					this.$refs.popup.open()
				} else {
					this.order()
				}
			},
			order(item) {
				let goods = this.sku[this.productIndex]
				goods.buyNum = this.buyNum
				uni.setStorageSync('order', JSON.stringify(goods)); //规格
				uni.setStorageSync('info', JSON.stringify(this.info)); //商品
				uni.navigateTo({
					url: '/subPackages/techan/order'
				});
			},
			goUser() {
				uni.switchTab({
					url: '/pages/index/user'
				})
			},
			changeProduct(item,index) {
				if (item.store==0) {
					uni.showToast({
						title:"库存不足！",
						icon:'none'
					})
					return
				}
				this.productIndex = index
			},
		},
		onReachBottom() {

		}
	};
</script>

<style lang="scss" scoped>
	.bg {
		min-height: 100vh;
		overflow-x: hidden;
		background: #f2f4f7;
		padding-bottom: 210rpx;
	}

	view {
		box-sizing: border-box;
	}

	button {
		margin: 0;
		padding: 0;
		outline: none;
		border-radius: 0;
		background-color: transparent;
		line-height: inherit;
	}

	button::after {
		border: none;
	}

	.swipe-box {
		height: 484rpx;
		position: relative;

		.swiper-item-num {
			width: 90rpx;
			height: 40rpx;
			background: rgba(0, 0, 0, 0.5);
			border-radius: 20rpx;
			font-size: 24rpx;
			font-family: PingFangSC-Regular, PingFang SC;
			font-weight: 400;
			color: #ffffff;
			text-align: center;
			line-height: 40rpx;
			position: absolute;
			right: 30rpx;
			bottom: 50rpx;
		}
	}

	.swiper {
		height: 484rpx;
		position: relative;

		.swiper-item {
			width: 100%;
			height: 484rpx;

			.item-img {
				width: 750rpx;
				height: 484rpx;
			}
		}
	}
	
	.common-container{
		width: 100%;
		padding: 32rpx;
	}
	
	.pro-title{
		font-weight: bold;
		font-size: 37rpx;
		color: #000000;
		margin: 66rpx 0 19rpx 0;
	}
	
	.price-box {
		width: 100%;
		background: #ffffff;
		border-radius: 20rpx 20rpx 0 0;
		padding: 24rpx 30rpx;

		.price-zan {
			display: flex;
			align-items: center;
			justify-content: space-between;

			.price {
				display: flex;

				.present-price {
					font-size: 42rpx;
					font-family: PingFang SC;
					font-weight: 400;
					color: rgba(248, 74, 86, 1);

					&:before {
						content: '¥';
						display: inline-block;
						font-size: 26rpx;
					}

					&:after {
						content: '起';
						display: inline-block;
						font-size: 24rpx;
						font-family: PingFangSC;
						font-weight: 400;
						color: #8D8D8D;
					}
				}
			}
		}

		.tag {
			margin:24rpx 0 15rpx 0;
			display: flex;
			align-items: center;
			flex-wrap: nowrap;
			overflow-x: auto;

			.tag-item {
				border-radius: 7rpx;
				border: 1px solid #71B580;
				margin-right: 14rpx;
				font-size: 24rpx;
				font-family: PingFangSC;
				font-weight: 500;
				color: #71B580;
				padding: 8rpx 16rpx;
				flex-shrink: 0;
			}
		}

		.title {
			margin-top: 20rpx;
			font-family: PingFang;
			font-weight: 500;
			font-size: 31rpx;
			color: #000000;
		}
	}

	.notice {
		padding: 35rpx;
		width: 100%;
		background: #ffffff;
		border-radius: 20rpx;
	}

	.tab {
		width: 750rpx;
		height: 88rpx;
		background: #ffffff;
		box-shadow: 0px 1rpx 0px 0px rgba(227, 229, 232, 1);
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 32rpx;
		position: fixed;
		top: 0;

		.tab-item {
			height: 88rpx;
			position: relative;
			line-height: 88rpx;

			.tab-text {
				font-size: 30rpx;
				font-family: PingFangSC-Regular, PingFang SC;
				font-weight: 400;
				color: #393b3e;
			}

			.act-text {
				font-size: 30rpx;
				font-family: PingFangSC-Medium, PingFang SC;
				font-weight: 500;
				color: #000000;
			}

			.tab-line {
				width: 60rpx;
				height: 6rpx;
				background: #08c59b;
				border-radius: 3rpx;
				position: absolute;
				bottom: 0;
				left: 50%;
				transform: translate(-30rpx, 0);
			}
		}
	}

	.more {
		width: 100%;
		height: 93rpx;
		line-height: 93rpx;
		text-align: center;
		border-top: solid 1rpx rgba(227, 229, 232, 1);
		font-size: 26rpx;
		font-family: PingFangSC-Regular, PingFang SC;
		font-weight: 400;
		color: #4D526C;
		margin-top: 50rpx;
	}

	.xzPopup {
		width: 750rpx;
		padding: 33rpx 26rpx 20rpx;
		box-sizing: border-box;
		background-color: #FFFFFF;
		position: relative;
		max-height: 70vh;
		overflow-y: auto;

		view {
			padding: 0 20rpx;
			box-sizing: border-box;
			margin-top: 35rpx;
		}

		img {
			width: 32rpx;
			height: 32rpx;
			position: absolute;
			top: 33rpx;
			right: 27rpx;
		}
	}

	.comment {
		display: flex;
		align-items: center;
		justify-content: space-between;
		box-sizing: border-box;
		width: 710rpx;
		height: 100rpx;
		background: #FFFFFF;
		border-radius: 13rpx;
		margin: 0 auto;
		margin-top: 20rpx;
		padding: 0 20rpx;

		.comment-left {
			display: flex;
			align-items: center;

			font-size: 36rpx;
			font-family: PingFangSC;
			font-weight: bold;
			color: #000000;
		}
	}

	.btn-list {
		position: fixed;
		z-index: 9999;
		bottom: 0;
		width: 750rpx;
		height: 180rpx;
		background: #FFFFFF;
		box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
		display: flex;
		justify-content: space-between;
		padding: 30rpx 50rpx 0 50rpx;

		.left-box {
			display: flex;
			align-items: flex-start;

			.img-box {
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				margin-right: 64rpx;

				image {
					width: 48rpx;
					height: 48rpx;
				}

				.text {
					font-size: 24rpx;
					font-family: PingFangSC;
					font-weight: 400;
					color: #666666;
				}

			}
		}

		.btn-buy {
			width: 254rpx;
			height: 78rpx;
			background: #F84A56;
			border-radius: 40rpx;
			text-align: center;
			line-height: 78rpx;
			font-size: 32rpx;
			font-family: PingFangSC;
			font-weight: 500;
			color: #FFFFFF;
		}
	}

	.popup-content {
		background-color: white;
		padding: 0rpx 39rpx 51rpx 39rpx;
		height: auto;
		border-radius: 20rpx 20rpx 0 0;
	}

	.bottom-productImg {
		display: flex;
		margin-bottom: 23rpx;
	}

	.bottom-productImg img {
		width: 218rpx;
		height: 179rpx;
		background: #666666;
		border-radius: 13rpx;
	}

	.right-content {
		margin: 10rpx 0 0 41rpx;
	}

	.bottom-productPrice {
		font-size: 40rpx;
		color: #FC524B;

		&:before {
			content: "￥";
			font-size: 26rpx;
		}
	}

	.bottom-content {
		width: 331rpx;
		font-size: 27rpx;
		font-family: PingFang SC;
		font-weight: 400;
		color: #666666;
	}

	.botProduct {
		width: 320rpx;
		// height: 78rpx;
		border-radius: 13rpx;
		background-color: #F5F5F5;
		font-size: 29rpx;
		font-family: PingFang SC;
		font-weight: 400;
		color: #333333;
		line-height: 78rpx;
		text-align: center;
		margin-bottom: 25rpx;
		display: inline-block;
		position: relative;
		padding: 0 40rpx;
	}
	.noStore{
		background-color: rgba(239, 239, 239, 1);
		color: rgba(153, 153, 153, 1);
	}
	.noStore-text{
		width: 113rpx;
		height: 43rpx;
		background: #C0C0C0;
		border-radius: 7rpx 0rpx 7rpx 0rpx;
		text-align: center;
		line-height: 43rpx;
		position: absolute;
		right: -14rpx;
		top: -20rpx;
		font-size: 23rpx;
		font-family: PingFangSC;
		font-weight: 400;
		color: #FFFFFF;
	}


	.botProducts {
		// border: 1rpx solid #00AAFF;
		// background-color: rgba(254, 180, 25, 1);
		background-image: linear-gradient(135deg, #9EE4FE, #7FD491);
		color: rgba(0, 0, 0, 1);
	}

	.buy-num {
		font-size: 29rpx;
		font-family: PingFang SC;
		font-weight: 400;
		color: #333333;
		// border-top: 1rpx solid #CCCCCC;
		padding: 39rpx 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.buy-num .number-btn {
		display: flex;
	}

	.buy-num .number-btn view {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 69rpx;
		height: 69rpx;
		border: 1rpx solid #CCCCCC;
		border-radius: 7rpx;
	}

	.buy-num .number-btn>view text {
		font-size: 46rpx;
	}

	.buy-btn {
		width: 670rpx;
		height: 78rpx;
		text-align: center;
		line-height: 78rpx;
		background: linear-gradient(90deg, #F84A56, #FF9834);
		border-radius: 40rpx;

		font-size: 34rpx;
		font-family: PingFangSC;
		font-weight: 500;
		color: #FFFFFF;
	}

	.btn-box {
		width: 750rpx;
		height: 151rpx;
		background: #FFFFFF;
		box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.sp {
		width: 100%;
		height: 30rpx;
		font-size: 32rpx;
		font-family: PingFangSC;
		font-weight: 400;
		color: #060001;
		line-height: 30rpx;
		border-top: solid 2rpx #ccc;
		margin: 60rpx 0;
		padding-top: 30rpx;
	}

	.sp-box {
		width: 100%;
		height: 120rpx;
		background: #fff;
		display: flex;
		align-items: center;
		justify-content: space-between;
		border-radius: 0 0 12rpx 12rpx;
		border-top: solid 2rpx rgba(216, 216, 216, 1);

		.sp-box-left {
			display: flex;
			margin-left: 38rpx;
			align-items: center;

			:first-child {
				font-family: PingFang;
				font-weight: 500;
				font-size: 31rpx;
				color: #666666;
			}

			:last-child {
				width: 403rpx;
				font-family: PingFang SC;
				font-weight: 400;
				font-size: 31rpx;
				color: #000000;
			}
		}

		image {
			width: 16rpx;
			height: 28rpx;
			margin-right: 38rpx;
		}
	}


</style>