<template>
	<view>
		<view class="inner-box">
			<!-- 收货人 -->
			<view class="address-box" v-if="address==null" @click="openAddress()">
				<view class="left">
					<view class="name-box">
						<text class="text name">添加收货地址</text>
					</view>
					</vie>
				</view>
				<view class="arrow-box">
					<image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/arrow_gray.png" mode=""></image>
				</view>
			</view>
			<view class="address-box" v-if="address!=null" @click="openAddress()">
				<view class="left">
					<view class="name-box">
						<text class="text name">{{address.realName}}</text>
						<text class="text" v-if="address.phone!=null">{{utils.parsePhone(address.phone)}}</text>
					</view>
					<view class="address">
						{{address.province}}{{address.city}}{{address.district}}{{address.detail}}
					</view>
				</view>
				<view class="arrow-box">
					<image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/arrow_gray.png" mode=""></image>
				</view>
			</view>
			<!-- 药品列表 -->
			<view class="goods-list">
				<view v-for="(item,index) in carts" :key="index" class="item">
					<view class="img-box">
						<image :src="item.productAttrImage||item.productImage" mode="aspectFill"></image>
					</view>
					<view class="info-box">
						<view>
							<view class="name-box ellipsis2">
								<view class="tag">{{utils.getDictLabelName("storeProductType",item.productType)}}</view>{{item.productName}}
							</view>
							<view class="spec ellipsis2">{{item.productAttrName}}</view>
						</view>
						<view class="price-num">
							<view class="price">
								<text class="unit">¥</text>
								<text class="num">{{item.price.toFixed(2)}}</text>
							</view>
							<view class="num">x{{item.cartNum}}</view>
						</view>
					</view>
				</view>
				<!-- 小计 -->
				<view class="sub-total">
					<text class="label">小计：</text>
					<view class="price">
						<text class="unit">¥</text>
						<text class="num">{{price.totalPrice.toFixed(2)}}</text>
					</view>
				</view>
			</view>
			<!-- 积分 -->
			<view class="points">
				<view class="left">
					<image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/points.png" mode=""></image>
					<text class="text">可用积分</text>
				</view>
				<view class="right">
					<text class="text">{{price.usedIntegral}}积分</text>
					<evan-switch @change="integralChange" v-model="checked" activeColor="#2BC7B9" inactiveColor="rgba(0, 0, 0, 0.1)"></evan-switch>
				</view>
			</view>
			<view class="points" @click="openCoupon()">
				<view class="left">
					<text class="text">优惠券</text>
				</view>
				<view class="right">
					<text class="text">{{couponText}}</text>
					<image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/arrow4.png" mode=""></image>
				</view>
			</view>
			<view class="points">
				<view class="left">
					<text class="text">运费</text>
				</view>
				<view class="right">
					<text class="text">{{price.payPostage==null||price.payPostage==0?'免运费':price.payPostage.toFixed(2)}}</text>
				</view>
			</view>
			<!-- 备注 -->
			<view class="remarks">
				<input type="text" v-model="form.mark" placeholder="备注留言（选填）" placeholder-class="input" />
			</view>
		</view>
		<!-- 底部按钮 -->
		<view class="btn-foot">
			<view class="right">
				<view class="total">
					<text class="label">合计：</text>
					<view class="price">
						<text class="unit">¥</text>
						<text class="num">{{price.payPrice.toFixed(2)}}</text>
					</view>
				</view>
				<view class="btn" @click="submitOrder">提交订单</view>
			</view>
		</view>
		<popupBottom ref="popup" :visible.sync="couponVisible" title=" " bgColor="#f5f5f5" radius="30"    maxHeight="60%">
		     <view class="coupon" style="height:650rpx;">
				 <div class="coupon-list" v-if="couponsList.length > 0">
				   <div class="item acea-row row-center-wrapper"  v-for="(item, index) in couponsList" :key="index">
				     <div class="money" >
				       <image v-if="item.status==0" class="img" src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/coupon1.png" mode="widthFix"></image>
				 	  <image v-if="item.status!=0" class="img" src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/coupon2.png" mode="widthFix"></image>
				 	  <div style="z-index: 999;">
				         ￥<span class="num">{{ item.couponPrice }}</span>
				       </div>
				       <div class="pic-num"  >满{{ item.useMinPrice }}元可用</div>
				     </div>
				     <div class="text">
				       <div class="condition line1">
				         {{ item.couponTitle }}
				       </div>
				       <div class="data acea-row row-between-wrapper">
							<div >{{ item.limitTime }}到期</div>
							<div class="bnt bg-color-red" @click="couponSelect(item)"  >选择</div>
				       </div>
				     </div>
				   </div>
				 </div>
				 <view v-if="couponsList.length == 0" class="no-data-box" >
				 	<image src="https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/no_data.png" mode="aspectFit"></image>
				 	<view class="empty-title">暂无数据</view>
				 </view>
			 </view>
			 
		</popupBottom>
	</view>
</template>

<script>
	import {getWeixinOrderTemps} from '@/api/common'
	
	import {confirm,computed,create} from '@/api/storeOrder'
	import { getMyEnableCouponList } from '@/api/coupon'
	 
	import EvanSwitch from '@/components/evan-switch/evan-switch.vue'
	import popupBottom from '@/components/px-popup-bottom/px-popup-bottom.vue'
	
	export default {
		components: {
			EvanSwitch,
			popupBottom
		},
		data() {
			return {
				temps:[],
				couponUserId:null,
				couponText:"请选择",
				couponsList:[],
				couponVisible:false,
				price:{
					payPrice:0,
					totalPostage:0,
					usedIntegral:0,
					totalPrice:0.00,
				},
				address:null,
				carts:[],
				checked: false,
				type:null,
				cartIds:null,
				storeId:null,
				form:{
					useIntegral:0,
					orderKey:null,
					addressId:null,
					mark:null,
					companyId:null,
					companyUserId:null
				}
				
			}
		},
		onLoad(option) {
			this.form.companyId=option.companyId;
			this.form.companyUserId=option.companyUserId;
			this.cartIds=option.cartIds;
			this.type=option.type;
			this.storeId=option.storeId;
			this.confirm();
			uni.$on('updateAddress', (e) => {
				this.address=e;
				this.form.addressId=e.id;
			})
			this.getWeixinOrderTemps();
		},
		methods: {
			getWeixinOrderTemps:function(){
				getWeixinOrderTemps().then(
					res => {
						if(res.code==200){
							this.temps=res.temp
							console.log(this.temps)
						}else{
							 
						}
					},
					rej => {}
				);
			},
			couponSelect(item){
				this.couponText="-¥"+item.couponPrice.toFixed(2);
				this.couponUserId=item.id;
				this.couponVisible=false;
				this.computed();
			},
			openCoupon(){
				let that = this;
				var data={couponType:0,useMinPrice:this.price.payPrice};
				getMyEnableCouponList(data).then(res => {
				  this.couponVisible=true;
				  that.couponsList = res.data
				})
			},
			integralChange(e){
				console.log(e)
				this.form.useIntegral=e?1:0
				this.computed()
			},
			confirm(item){
				let data = {type:this.type,cartIds:this.cartIds};
				confirm(data).then(
					res => {
						if(res.code==200){
							 
							 this.carts=res.carts;
							 this.form.orderKey=res.orderKey;
							 if(res.address!=null){
								 this.form.addressId=res.address.id;
								 this.address=res.address;
								 console.log(this.form.addreddId)
							 }
							 this.computed()
						}else{
							
							uni.showToast({
								icon:'none',
								title: res.msg,
							});
						}
					},
					rej => {}
				);
			},
			computed(item){
				let data = {couponUserId:this.couponUserId,orderKey:this.form.orderKey,addressId:this.form.addressId,useIntegral:this.form.useIntegral};
				computed(data).then(
					res => {
						if(res.code==200){
							 console.log(res)
							 this.price=res.data
							 
						}else{
							if(res.code==501){
								uni.showToast({
									icon:'none',
									title: res.msg,
								});
								setTimeout(function(){
									uni.navigateBack({
										delta:1
									})
								},500);
								return;
							}
							else{
								uni.showToast({
									icon:'none',
									title: res.msg,
								});
							}
							
						}
					},
					rej => {}
				);
			},
			// 提交订单
			submitOrder() {
				var that=this;
				if(this.form.orderKey==null){
					uni.showToast({
						icon:'none',
						title: '订单KEY不存在',
					});
					return;
				}
				if(this.form.addressId==null){
					uni.showToast({
						icon:'none',
						title: '收货地址不能为空',
					});
					return;
				}
				
				uni.requestSubscribeMessage({
					tmplIds: this.temps,
					success(res) {
						 that.createOrder();
					},
					fail(res) {
						that.createOrder();
					}
				})
				
			},
			createOrder(){
				var that=this;
				var data=null;
				var tuiUserId=uni.getStorageSync('tuiUserId');
				uni.showLoading({
					title: '正在处理中...'
				});
				if(tuiUserId!=null&&tuiUserId!=undefined&&tuiUserId>0){
					data = {orderCreateType:1,tuiUserId:tuiUserId,companyId:this.form.companyId,companyUserId:this.form.companyUserId,couponUserId:this.couponUserId,mark:this.form.mark,orderKey:this.form.orderKey,addressId:this.form.addressId,useIntegral:this.form.useIntegral,payType:1};
				}
				else{
					data = {orderCreateType:1,companyId:this.form.companyId,companyUserId:this.form.companyUserId,couponUserId:this.couponUserId,mark:this.form.mark,orderKey:this.form.orderKey,addressId:this.form.addressId,useIntegral:this.form.useIntegral,payType:1};
				}
				if(this.storeId!=null&& this.storeId>0){
					data.storeId=this.storeId;
				}
				uni.hideLoading()
				create(data).then(
					res => {
						uni.hideLoading()
						if(res.code==200){
							uni.hideLoading()
							if(res.order.isPrescribe==1){
								setTimeout(function(){
									uni.redirectTo({
										url:"prescribe?orderId="+res.order.id
									})
								},200);
							}
							else{
								setTimeout(function(){
									uni.redirectTo({
										url: './paymentOrder?orderId='+res.order.id
									})
								},200);
							}
							return;
						}
						else{
							if(res.code==501){
								uni.showToast({
									icon:'none',
									title: res.msg,
								});
								setTimeout(function(){
									uni.navigateBack({
										delta:1
									})
								},200);
								return;
							}
							else{
								uni.showToast({
									icon:'none',
									title: res.msg,
								});
							}
						}
					},
					rej => {}
				);
			},
			openAddress(){
				uni.navigateTo({
					url: '/pages_user/user/address'
				})
			}
		}
	}
</script>

<style lang="scss">
	.inner-box{
		padding: 20upx 20upx 140upx;
		.address-box{
			box-sizing: border-box;
			min-height: 171upx;
			background: #FFFFFF;
			border-radius: 16upx;
			background-image: url("https://zkzh-2025.oss-cn-beijing.aliyuncs.com/shop/images/address_bg.png");
			background-repeat: no-repeat;
			background-size: 100% 30upx;
			background-position: left bottom;
			padding: 38upx 30upx 36upx;
			display: flex;
			align-items: center;
			justify-content: space-between;
			.left{
				width: 92%;
				.name-box{
					display: flex;
					align-items: center;
					.text{
						font-size: 32upx;
						font-family: PingFang SC;
						font-weight: bold;
						color: #111111;
						line-height: 1;
						&.name{
							margin-right: 30upx;
						}
					}
				}
				.address{
					font-size: 28upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #666666;
					line-height: 42upx;
					text-align:left;
					margin-top: 23upx;
				}
			}
			.arrow-box{
				width: 12upx;
				height: 23upx;
				display: flex;
				align-items: cenetr;
				justify-content: cenetr;
				image{
					width: 100%;
					height: 100%;
				}
			}
		}
		.goods-list{
			margin-top: 20upx;
			padding: 0 30upx;
			background-color: #FFFFFF;
			border-radius: 16upx;
			.item{
				padding: 30upx 0;
				border-bottom: 1px solid #EDEEEF;
				display: flex;
				align-items: center;
				.img-box{
					width: 160upx;
					height: 160upx;
					margin-right: 30upx;
					image{
						width: 100%;
						height: 100%;
					}
				}
				.info-box{
					width: calc(100% - 190upx);
					height: 160upx;
					display: flex;
					flex-direction: column;
					justify-content: space-between;
					.name-box{
						font-size: 28upx;
						font-family: PingFang SC;
						font-weight: 500;
						color: #111111;
						line-height: 40upx;
						.tag{
							display: inline-block;
							padding: 0 6upx;
							height: 30upx;
							background: linear-gradient(90deg, #66b2ef 0%, #2BC7B9 100%);
							border-radius: 4upx;
							margin-right: 10upx;
							font-size: 22upx;
							font-family: PingFang SC;
							font-weight: bold;
							color: #FFFFFF;
							line-height: 30upx;
							float: left;
							margin-top: 7upx;
						}
					}
					.spec{
						margin-top: 10upx;
						font-size: 24upx;
						font-family: PingFang SC;
						font-weight: 500;
						color: #999999;
						line-height: 1;
					}
					.price-num{
						display: flex;
						align-items: center;
						justify-content: space-between;
						.price{
							display: flex;
							align-items: flex-end;
							.unit{
								font-size: 24upx;
								font-family: PingFang SC;
								font-weight: 500;
								color: #111111;
								line-height: 1.2;
								margin-right: 4upx;
							}
							.num{
								font-size: 32upx;
								font-family: PingFang SC;
								font-weight: 500;
								color: #111111;
								line-height: 1;
							}
						}
						.num{
							font-size: 24upx;
							font-family: PingFang SC;
							font-weight: 500;
							color: #999999;
							line-height: 1;
						}
					}
				}
			}
			.sub-total{
				height: 88upx;
				display: flex;
				align-items: center;
				justify-content: flex-end;
				.label{
					font-size: 24upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #999999;
				}
				.price{
					display: flex;
					align-items: flex-end;
					.unit{
						font-size: 24upx;
						font-family: PingFang SC;
						font-weight: 500;
						color: #FF6633;
						line-height: 1.2;
						margin-right: 4upx;
					}
					.num{
						font-size: 32upx;
						font-family: PingFang SC;
						font-weight: bold;
						color: #FF6633;
						line-height: 1;
					}
				}
			}
		}
		.points{
			height: 88upx;
			padding: 0 30upx;
			background: #FFFFFF;
			border-radius: 16upx;
			 
			display: flex;
			align-items: center;
			justify-content: space-between;
			.left{
				display: flex;
				align-items: center;
				image{
					width: 28upx;
					height: 28upx;
					margin-right: 20upx;
				}
				.text{
					font-size: 28upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #666666;
				}
			}
			.right{
				display: flex;
				align-items: center;
				.text{
					font-size: 28upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #111111;
					 
				}
				image{
					margin-left: 15upx;
					width: 14upx;
					height: 24upx;
				}
			}
		}
		.remarks{
			height: 88upx;
			padding: 0 30upx;
			background: #FFFFFF;
			border-radius: 16upx;
			margin-top: 20upx;
			display: flex;
			align-items: center;
			input{
				width: 100%;
				font-size: 28upx;
				font-family: PingFang SC;
				font-weight: 500;
				color: #000000;
			}
			.input{
				font-size: 28upx;
				font-family: PingFang SC;
				font-weight: 500;
				color: #999999;
			}
		}
	}
	
	
	.btn-foot{
		box-sizing: border-box;
		width: 100%;
		height: 121upx;
		background: #FFFFFF;
		padding: 16upx 30upx 16upx 60upx;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		position: fixed;
		left: 0;
		bottom: 0;
		z-index: 99;
		.right{
			display: flex;
			align-items: center;
			.total{
				display: flex;
				align-items: flex-end;
				margin-right: 36upx;
				.label{
					font-size: 26upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #999999;
					line-height: 1.5;
				}
				.price{
					display: flex;
					align-items: flex-end;
					.unit{
						font-size: 32upx;
						font-family: PingFang SC;
						font-weight: bold;
						color: #FF6633;
						line-height: 1.2;
						margin-right: 10upx;
					}
					.num{
						font-size: 50upx;
						font-family: PingFang SC;
						font-weight: bold;
						color: #FF6633;
						line-height: 1;
					}
				}
			}
			.btn{
				width: 200upx;
				height: 88upx;
				line-height: 88upx;
				text-align: center;
				font-size: 30upx;
				font-family: PingFang SC;
				font-weight: bold;
				color: #FFFFFF;
				background: #2BC7B9;
				border-radius: 44upx;
			}
		}
	}
</style>
<style lang="less" scoped>
	.coupon {
	  height: 100%;
	}
	/*优惠券列表公共*/
	.coupon-list {
	}
	.coupon-list .item {
	  display: flex;
	  flex-direction: column;
	  justify-content: center;
	  align-items: center;
	  width: 100%;
	  height: 1.7 * 100rpx;
	  margin-bottom: 0.16 * 100rpx;
	}
	
	.coupon-list .item .money {
	  background-size: 100% 100%;
	  width: 2.4 * 100rpx;
	  height: 100%;
	  color: #fff;
	  font-size: 0.36 * 100rpx;
	  font-weight: bold;
	  text-align: center;
	  display: flex;
	  flex-direction: column;
	  align-items: center;
	  justify-content: center;
	  position: relative;
	  
	}
	.coupon-list .item .money .img{
	  position: absolute;
	  width: 2.4 * 100rpx;
	  height: 100%;
	  color: #fff;
	  
	}
	
	.coupon-list .item .money .num {
	  font-size: 0.6 * 100rpx;
	}
	.coupon-list .item .money .pic-num {
	  font-size: 20rpx;
	  z-index: 99;
	}

	
	.coupon-list .item .text {
	  width: 4.5 * 100rpx;
	  padding: 0 0.17 * 100rpx 0 0.24 * 100rpx;
	  background-color: #fff;
	  box-sizing: border-box;
	}
	
	.coupon-list .item .text .condition {
	  font-size: 0.3 * 100rpx;
	  color: #282828;
	  height: 0.93 * 100rpx;
	  line-height: 0.93 * 100rpx;
	  border-bottom: 1px solid #f0f0f0;
	}
	
	.coupon-list .item .text .data {
	  font-size: 0.2 * 100rpx;
	  color: #999;
	  height: 0.76 * 100rpx;
	}
	
	.coupon-list .item .text .data .bnt {
	  width: 1.36 * 100rpx;
	  height: 0.44 * 100rpx;
	  border-radius: 0.22 * 100rpx;
	  font-size: 0.22 * 100rpx;
	  color: #fff;
	  text-align: center;
	  line-height: 0.44 * 100rpx;
	  background-color: red;
	}
	
	.coupon-list .item .text .data .bnt.gray {
	  background-color: #ccc;
	}
</style>

