<template name="cm-parameter">
	<!-- 相关规格 -->
	<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup()">
		<view class="tui-popup-box clearfix">
			<view class="tui-shopping-main" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
				<view class="tui-sku-title">
					<view class="tui-sku-image"> <image :src="product.image" mode=""></image> </view>
					<view class="tui-sku-price">
						<view class="sku-price-viw">
							<view class="sku-price-text"
								  :class="PromotionsFormat(product.promotions) || product.svipProductFlag == 1 ? 'none' : ''"
							>
								￥{{
									(PromotionsFormat(product.promotions) || product.svipProductFlag == 1
										? product.originalPrice
										: product.price) | NumFormat
								}}
							</view>
						</view>
						<view class="sku-price-vip">
							<view class="floor-item-act">
								<view class="coupon-tags" v-if="product.couponsLogo">优惠券</view>
								<template v-if="product.actStatus == 1 && product.promotions">
									<view v-if="PromotionsFormat(product.promotions)" class="floor-tags">
										{{ product.promotions.name }}
										<text v-if="product.promotions != null && product.promotions.type != 3">
											:￥{{
												product.promotions == null
													? '0.00'
													: product.promotions.touchPrice | NumFormat
											}}
										</text>
									</view>
									<view v-else-if="product.promotions.type != 3" class="floor-tags">
										{{ product.promotions.name }}
									</view>
								</template>
								<template v-if="product.actStatus == null && product.ladderFlag == 1">
									<view class="floor-tags">阶梯价格</view>
								</template>
								<template v-if="product.svipProductFlag == 1">
									<view class="svip-tags">
										<view class="tags" :class="{ none: vipFlag != 1 }">SVIP</view>
										<view class="price" v-if="isShowVipFlag(product)">{{
											product.svipPriceTag
										}}</view>
									</view>
								</template>
							</view>
						</view>
					</view>
				</view>
				<view class="tui-sku-unit">
					<view class="sku-unit-h1">规格：</view>
					<view class="sku-unit-li">
						<view
							class="unit-li"
							v-for="(sku, index) in skuList"
							@click="handleChoisSku(sku, index)"
							:key="index"
							:class="skuIndex === index ? 'active' : ''"
						>
							{{ sku.unit }} <text class="tips">缺货</text>
						</view>
					</view>
				</view>
				<view class="sku-unit-nunbox">
					<view class="sku-unit-nunbox" v-if="product.step === 2">
						<view class="text">*该商品只能以起订量的整数倍购买</view>
					</view>
					<view class="sku-unit-nunbox-t">
						<view class="sku-unit-nunbox-text">购买数量:</view>
						<view class="sku-unit-nunbox-num">
							<view class="number-box">
								<view
									class="iconfont icon-jianhao"
									@click="changeCountSub"
								></view>
								<input
									class="btn-input"
									type="number"
									v-model="product.number"
									maxlength="4"
									@blur="changeNumber($event)"
								/>
								<view
									class="iconfont icon-jiahao"
									@click="changeCountAdd"
								></view>
							</view>
						</view>
					</view>
				</view>
			</view>
			<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
				<view class="tui-modal-flex">
					<view class="tui-modal-button cancel" @click="hidePopup">取消</view>
					<view class="tui-modal-button confirm" @click="handleConfirm">确定</view>
				</view>
			</view>
		</view>
	</tui-bottom-popup>
</template>

<script>
import { mapState, mapMutations } from 'vuex'
import uniGrader from '@/components/uni-grade/uni-grade.vue'
export default {
	name: 'cm-unit-popup',
	components: {
		uniGrader
	},
	props: {
		product: {
			type: Object
		},
		popupShow: {
			type: Boolean,
			default: false
		},
		type: {
			type: Number,
			default: 1
		}
	},
	data() {
		return {
			isBtnDisabled:false,
			vipFlag: 0, // 是否是超级会员 0否 1是
			skuIndex: 0,
			number: 0,
			buyRetailPrice: 0,
			ladderPriceList: [],
			isQuantity: false,
			skuList: [
				{
					unit: '135ml70ml', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: ' 精华70ml', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '精华70ml', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【70ml】2瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【50ml】3瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				},
				{
					unit: '【35ml】4瓶', // 规格
					normalPrice: 1000, // 市场价
					price: 500, // 售价
					costPrice: 500, // 结算价
					stock: 100 // 库存
				}
			]
		}
	},
	filters: {
		NumFormat(value) {
			//处理金额
			return Number(value).toFixed(2)
		}
	},	
	created() {
		this.number = this.product.minBuyNumber
		this.buyRetailPrice = this.product.price
		this.ladderPriceList = this.product.ladderPriceList ? this.product.ladderPriceList : null
		this.initData()
	},
	computed: {
		...mapState(['hasLogin'])
	},
	methods: {
		async initData(data) {
			const userInfo = await this.$api.getStorage()
			this.vipFlag = userInfo.vipFlag ? userInfo.vipFlag : 0
			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
			//处理禁用按钮商品
			this.isBtnDisabled = this.isDisabledFlag(this.product)
		},
		isDisabledFlag(pros){
			// 非会员
			if (!this.vipFlag === 1) return true
			// 商品已下架 || 库存为0 
			if (pros.validFlag == 3 || pros.stock == 0) return true
			// 商品价格不公开
			if (pros.priceFlag === 1) return true
			// 商品价格仅资质机构可见 && 机构为普通机构
			if (pros.priceFlag === 2 && this.userIdentity === 4 ) return true
			// 商品价格仅医美机构可见 && 机构为普通机构 
			if (pros.priceFlag === 3 && this.userIdentity === 4 ) return true
			// 商品价格仅医美机构可见 && 机构为资质机构 && 不是医美机构
			if (pros.priceFlag === 3 && this.userIdentity === 2 && this.firstClubType != 1) return true
			//其他
			return false
		},
		PromotionsFormat(promo) {
			//促销活动类型数据处理
			if (promo != null) {
				if (promo.type == 1 && promo.mode == 1) {
					return true
				} else {
					return false
				}
			}
			return false
		},
		isShowVipFlag(pros) {
			// 未登录 || 非会员
			if (!this.hasLogin || !this.vipFlag === 1) return false
			// 商品所有机构可见
			if (pros.priceFlag === 0) return true
			// 商品价格仅资质机构可见
			if (pros.priceFlag === 2 && this.userIdentity === 2) return true
			// 商品价格仅医美机构可见
			if (pros.priceFlag === 3 && this.userIdentity === 2 && this.firstClubType == 1) return true
			// 其它
			return false
		}, 
		handleConfirm() {
			this.$emit('buyConfirm', data)
			this.$parent.popupShow2 = false
		},
		handleChoisSku(sku, index) {
			// 选择SKU
			this.skuIndex = index
		},
		hidePopup() {
			this.$parent.popupShow2 = false
		}
	}
}
</script>

<style lang="scss">
.tui-popup-box {
	padding: 40rpx 24rpx 0 24rpx;
}
.tui-shopping-main {
	width: 100%;
	.tui-sku-title {
		width: 100%;
		height: 136rpx;
		float: left;
		margin-bottom: 30rpx;
		.tui-sku-image {
			width: 138rpx;
			height: 138rpx;
			float: left;
			border-radius: 8rpx;
			margin-right: 30rpx;
			box-sizing: border-box;
			border: 1px dashed #e1e1e1;
			image {
				width: 134rpx;
				height: 134rpx;
				border-radius: 10rpx;
			}
		}
		.tui-sku-price {
			height: 136rpx;
			float: left;
			.sku-price-viw {
				width: 100%;
				height: 40rpx;
				margin-bottom: 24rpx;
				.sku-price-text {
					font-size: 28rpx;
					line-height: 40rpx;
					color: #f94b4b;
					font-weight: bold;
					.sku-price-l{
						float: left;
						font-weight: normal;
					}
					&.none {
						text-decoration: line-through;
						color: #999999;
						font-weight: normal;
					}
				}
			}
			.sku-price-vip {
				width: 100%;
				height: 40rpx;
			}
		}
	}
	.tui-sku-unit {
		width: 100%;
		height: auto;
		float: left;
		.sku-unit-h1 {
			font-size: 28rpx;
			line-height: 40rpx;
			color: #333333;
			font-weight: bold;
		}
		.sku-unit-li {
			width: 100%;
			height: auto;
			.unit-li {
				padding: 0 24rpx;
				line-height: 48rpx;
				text-align: center;
				font-size: 24rpx;
				color: #666666;
				background: #f5f5f5;
				float: left;
				margin-right: 16rpx;
				margin-top: 12rpx;
				margin-bottom: 12rpx;
				border-radius: 24rpx;
				position: relative;
				box-sizing: border-box;
				border: 1px solid #f5f5f5;
				&.active {
					border-color: $color-system;
					background: #fff1eb;
					color: $color-system;
					.tips {
						background: #e15616;
					}
				}
				.tips {
					padding: 0 10rpx;
					line-height: 32rpx;
					text-align: center;
					font-size: 22rpx;
					color: #ffffff;
					background: #cccccc;
					float: left;
					border-radius: 16rpx;
					position: absolute;
					right: -12rpx;
					top: -15rpx;
				}
			}
		}
	}
	.sku-unit-nunbox {
		justify-content: space-between;
		align-items: center;
		width: 100%;
		height: auto;
		float: left;
		margin-top: 30rpx; 
		.sku-unit-nunbox-t {
			width: 100%;
			height: 44rpx;
			position: relative;
			margin-bottom: 20rpx;
			.text {
				font-size: $font-size-24;
				line-height: 48rpx;
				color: #999999;
			}
			.sku-unit-nunbox-text {
				line-height: 44rpx;
				font-size: $font-size-28;
				float: left;
				font-weight: bold;
			}
			.sku-unit-nunbox-num{
				float: right;
				.number-box {
					display: flex;
					justify-content: center;
					align-items: center;
					border: 2rpx solid #ffe6dc;
					border-radius: 30rpx;
					height: 48rpx;
					margin-left: 20rpx;
					.iconfont {
						font-size: $font-size-24;
						padding: 0 18rpx;
						color: #999999;
						text-align: center;
						line-height: 48rpx;
						font-weight: bold;
						background: #fef6f3;
						&.icon-jianhao {
							border-radius: 30rpx 0 0 30rpx;
						}
						&.icon-jiahao {
							border-radius: 0 30rpx 30rpx 0;
						}
					}
					.btn-input {
						width: 62rpx;
						height: 48rpx;
						line-height: 48rpx;
						background: #ffffff;
						border-radius: 4rpx;
						text-align: center;
						font-size: $font-size-28;
					}
				}
			}
		}
	}
}
.tui-popup-btn{
	width: 100%;
	float: left;
	.tui-modal-flex {
		width: 100%;
		height: 84rpx;
		margin-top: 40rpx;
		display: flex;
		.tui-modal-button {
			flex: 1;
			line-height: 84rpx;
			font-size: $font-size-28;
			text-align: center;
			border-radius: 42rpx;
			padding: 0;
			margin: 0 15rpx;
			box-sizing: border-box;
			&.cancel {
				background: #ffe6dc;
				color: #e15616;
			}
			&.confirm {
				background: $btn-confirm;
				color: #ffffff;
			}
		}
	}
}
</style>
