<template>
	<view>
		<view class="cont">
			<view class="bg"></view>
			<view class="inner">			
				<!-- 订单状态 -->
				<view class="order-status">
					<!-- 待付款 -->
					<view v-if="order.status == 1" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/67eda0644e5847008096525b04cd12ca.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">待付款</text>
							<text class="desc">请在{{payLimitTime}}前完成支付</text>
						</view>
					</view>
					<!-- 待发货 -->
					<view v-if="order.status == 2" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/520e24fba47441b3b0f73b5250bb0b57.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">待发货</text>
							<text class="desc">等待后台发货</text>
						</view>
					</view>
					<!-- 已发货、待收货 -->
					<view v-if="order.status == 3" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/1e6ba423ff7e4537bef87a022d530015.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">待收货</text>
							<text class="desc">运输中</text>
						</view>
					</view>
					<!-- 已完成 -->
					<view v-if="order.status == 4" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/0712ba14f3a648afa69c9912fcbf9b61.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">已完成</text>
							<text class="desc">订单已确认收货，交易完成</text>
						</view>
					</view>
					<!--交易取消 -->
					<view v-if="order.status == -3" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/02f95bd03e854a9c8076aef1e6c05e74.png" mode=""></image>
							</view>
						<view class="status-box">
							<text class="status">交易关闭</text>
							<text class="desc">订单已取消</text>
						</view>
					</view>
					<view v-if="order.status == -1" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/6020712aa10f4bb08db92957cb7eb8ed.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">申请售后</text>
							<text class="desc">请等待客服审核,您的退款将在2-5个工作日内原路退回</text>
						</view>
					</view>
					<view v-if="order.status == -2" class="inner">
						<view class="img-box">
							<image src="https://fs-1319721001.cos.ap-chongqing.myqcloud.com/fs/20240229/6020712aa10f4bb08db92957cb7eb8ed.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">退款成功</text>
							<text class="desc">已成功退款</text>
						</view>
					</view>
				</view>
				<!-- 下单人信息 -->
				<view class="order-placer" v-if="order.userName!=null">
					<view class="inner">
						<image class="location" src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/location.png" mode=""></image>
						<view class="info">
							<view class="name-phone">
								<text class="text">{{order.userName}}</text>
								<text class="text" v-if="order.userPhone!=null">{{order.userPhone}}</text>
							</view>
							<view class="address ellipsis2">
								{{order.userAddress}}
							</view>
						</view>
					</view>
				</view>
				<view class="content">
					<!-- 药品列表 -->
					<view class="goods-list">
						<view   v-for="(item,index) in items" :key="index" class="item"  >
							<view class="img-box">
								<image :src="item.image==''?'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/drug.svg':item.image" mode="aspectFill"></image>
							</view>
							<view class="info-box">
								<view>
									<view class="name-box ellipsis2">
										 {{item.productName}}
									</view>
									<view class="spec ellipsis2">{{item.sku}}</view>
								</view>
								<view class="price-num">
									<view class="price">
										<!-- <text class="unit">¥</text> -->
										<!-- <text class="num" v-if="item.price!=null">{{item.price.toFixed(2)}}</text> -->
									</view>
									<view class="num" v-if="order.ordetType==1">x{{item.num}}</view>
								</view>
							</view>
						</view>
					 
						<!-- 已优惠、小计 -->
						<view class="sub-total">
							<view class="discount">
								订单金额：￥{{order.payPrice }}
							</view>
							<!-- <text class="label">实付金额：</text>
							<view class="price">
								<text class="unit">¥</text>
								<text class="num">{{order.payMoney}}</text>
							</view> -->
						</view>
					</view>
					<!-- 订单信息 -->
					<view class="order-info">
						<view class="title">订单信息</view>
						<view class="item">
							<text class="label">订单编号</text>
							<view class="sn-box">
								<text class="text">{{order.orderCode}}</text>
								<view class="copy-btn" @click="copyOrderSn(order.orderCode)">复制</view>
							</view>
						</view>
						<view class="item">
							<text class="label">下单时间</text>
							<text class="text">{{order.createTime}}</text>
						</view>
						<view class="item">
							<text class="label">支付方式</text>
							<text class="text" v-if="order.payType==1">微信支付</text>
							<text class="text" v-if="order.payType==2">物流代收</text>
						</view>
						<view   class="item">
							<text class="label">订单金额</text>
							<text class="text" v-if="order.totalPrice!=null">¥{{order.totalPrice.toFixed(2)}}</text>
						</view>
						<view   class="item">
							<text class="label">优惠金额</text>
							<text class="text" v-if="order.discountMoney!=null">¥{{order.discountMoney.toFixed(2)}}</text>
						</view>
						<view   class="item">
							<text class="label">应付金额</text>
							<text class="text" v-if="order.payPrice!=null">¥{{order.payPrice.toFixed(2)}}</text>
						</view>
						<view   class="item">
							<text class="label">支付金额</text>
							<text class="text" v-if="order.payMoney!=null">¥{{order.payMoney.toFixed(2)}}</text>
						</view>
						<view  class="item">
							<text class="label">支付时间</text>
							<text class="text" v-if="order.payTime!=null">{{order.payTime}}</text>
						</view>
						<!-- <view v-if="order.status >1" class="item">
							<text class="label">发货时间</text>
							<text class="text"></text>
						</view> -->
						 
					</view>
					<!-- 子订单 -->
					<view class="order-info" v-for="(children,index) in childrenItems" :key="index">
						<view class="order-info-title">
							<view class="title">子订单{{index}}<text style="font-weight: normal;color: #FF5C03;margin-left: 10rpx;" v-if="children[0].extendOrderId">（已发货）</text></view>
							<view class="order-info-r">
								<view class="btn pay" v-if="!children[0].extendOrderId" @click="splitOrder2ERP(children[0].orderCode)">申请发货</view>
								<view class="btn cancel" v-if="children[0].extendOrderId" @click="showDelivery(1,children[0].orderCode)">查看物流</view>
							</view>
						</view>
						<view class="item" v-if="children[0].extendOrderId">
							<text class="label">发货时间</text>
							<view class="sn-box">
								<text class="text">{{children[0].deliveryTime||'--'}}</text>
							</view>
						</view>
					</view>
				</view>
			</view>
		</view>
		<!-- 按钮 -->
		<view   class="btn-box">
			<view class="btn cancel">
				联系客服
				<button class='contact-btn' open-type="contact">
				</button>
			</view>
			<view class="btn cancel" v-if="order.status==1" @click="cancel()">取消订单</view>
			<view class="btn pay" v-if="order.status==1" @click="pay()">支付</view>
			<!-- <view class="btn pay" v-if="order.status>1&&order.prescribeId!=null&&order.prescribeId>0" @click="showPrescribe()">查看处方单</view> -->
			<view class="btn cancel" v-if="order.status>1&&order.isAfterSales==1&&order.orderType==1" @click="refund()">申请售后</view>
			<view class="btn cancel" v-if="showInvoice()&&order.status==4&&order.billPrice != order.payPrice" @click="handleInvoice()">申请开票</view>
			<view  class="btn pay" v-if="order.status==4&&order.billPrice" @click="handleInvoiceList()">查看发票</view>
			<view class="btn pay" v-if="order.deliverySn!=null&&order.extendOrderId != 'BATCH'"  @click="showDelivery()">查看物流</view>
			<view class="btn pay" v-if="order.status==3" @click="finish()">确认收货</view>
		</view>
	</view>
</template>

<script>
	import {getPrescribeById} from '@/api/prescribe.js'
	
	import {getMyStoreOrderById,cancelOrder,finishOrder,splitOrder2ERP} from '@/api/storeOrder'
	export default {
		data() {
			return {
				payLimitTime:null,
				orderId:null,
				order:{},
				items:[],
				childrenItems:{}
			};
		},
		onLoad(option) {
			this.orderId = option.orderId
		},
		onShow() {
			this.getMyStoreOrderById()
		},
		methods: {
			showPrescribe(){
				var data={prescribeId:this.order.prescribeId}
				getPrescribeById(data).then(
					res => {
						if(res.code==200){
							if(res.data.prescribe.prescribeImgUrl!=null){
								var data=[];
								data.push(res.data.prescribe.prescribeImgUrl)
								uni.previewImage({
									current: 0,
									urls: data
								});
							}
							else{
								uni.showToast({
									icon:'none',
									title: "电子处方单不存在",
								});
								 
							}
							
						}
					},
					err => {
					}
				);
			},
			getMyStoreOrderById(){
				var data={orderId:this.orderId};
				getMyStoreOrderById(data).then(res => {
					if(res.code==200){
						 this.order=res.order;
						 // this.items=res.items;
						 this.childrenItems = res.childrenItems || {}
						 if(this.order.extendOrderId == "BATCH") {
						 	 this.items=res.items&&res.items.length > 0? JSON.parse(res.items[0].splitOrderItemJson || '[]') : [];
						 } else {
						 	let items=JSON.parse(res.order.itemJson || '[]')
							if(items&&items.length>0) {
								this.items = items.map(it=>JSON.parse(it.jsonInfo))
							}
						 }
						 this.payLimitTime=res.payLimitTime;
						 this.prescribe=res.prescribe;
					}else{
						uni.showToast({
							icon:'none',
							title: "请求失败",
						});
						 
					}
				});
			},
			showDelivery(type,orderCode){
				if(type==1) {
					uni.navigateTo({
						url: './storeOrderDelivery?orderCode='+orderCode
					})
				} else {
					uni.navigateTo({
						url: './storeOrderDelivery?orderId='+this.orderId
					})
				}
			},
			splitOrder2ERP(orderCode){
				var that=this;
				uni.showModal({
				    title: '提示',
				    content: '确定发货吗？',
				    success: function (res) {
				        if (res.confirm) {
							var data = {
								orderCode:orderCode
							};
							splitOrder2ERP(data).then(res => {
								if(res.code==200){
									 that.getMyStoreOrderById()
								}else{
									uni.showToast({
										icon:'none',
										title: res.msg,
									});
								}
							});
				        } 
						else if (res.cancel) {
				        }
				    }
				});
			},
			cancel(){
				var that=this;
				uni.showModal({
				    title: '提示',
				    content: '确定取消订单吗',
				    success: function (res) {
				        if (res.confirm) {
							var data = {
								orderId:that.order.orderId
							};
							cancelOrder(data).then(res => {
								if(res.code==200){
									 that.getMyStoreOrderById()
									 uni.$emit('refreshStoreOrder');
								}else{
									uni.showToast({
										icon:'none',
										title: res.msg,
									});
								}
							});
				        } 
						else if (res.cancel) {
				        }
				    }
				});
			},
			finish(){
				var that=this;
				uni.showModal({
				    title: '提示',
				    content: '确定已收货吗',
				    success: function (res) {
				        if (res.confirm) {
							var data = {
								orderId:that.orderId
							};
							finishOrder(data).then(res => {
								if(res.code==200){
									 that.getMyStoreOrderById()
									 uni.$emit('refreshStoreOrder');
								}else{
									uni.showToast({
										icon:'none',
										title: res.msg,
									});
								}
							});
				        } 
						else if (res.cancel) {
				        }
				    }
				});
			},
			pay() {
				 uni.navigateTo({
				 	url: '/pages_order/storeOrderPay?orderId='+this.order.orderId
				 })
			},
			payRemain() {
				 uni.navigateTo({
				 	url: '/pages_user/user/paymentOrderRemain?orderId='+this.order.orderId
				 })
			},
			// 复制订单编号
			copyOrderSn(text) {
				// 复制方法
				uni.setClipboardData({
					data:text,
					success:()=>{
						uni.showToast({
							title:'内容已成功复制到剪切板',
							icon:'none'
						})
					}
				});
			},
			// 退货
			refund() {
				uni.navigateTo({
					url: '/pages_order/storeOrderRefundApply?orderId='+this.orderId
				})
			},
			showInvoice() {
				const time = this.order.createTime
				const targetDate = new Date('2025-01-01 00:00:00');
				const currentDate = new Date(time);
				
				if (time && currentDate >= targetDate) {
				    return true
				} else {
				   return false
				}
			},
			// 申请开票
			handleInvoice() {
				uni.navigateTo({
					url: './invoice/index?orderId='+this.orderId
				})
			},
			// 开票历史
			handleInvoiceList() {
				uni.navigateTo({
					url: './invoice/invoiceList?orderId='+this.orderId
				})
			},
		}
	}
</script>

<style lang="scss">
	.cont{
		width: 100%;
		position: relative;
		.bg{
			width: 100%;
			height: 350upx;
			position: absolute;
			top: 0;
			left: 0;
			z-index: 1;
			background-color: #C39A58;
			background: linear-gradient(#C39A58, #E2C99E);
			border-radius: 0rpx 0rpx 100rpx 100rpx;
		}
		.inner{
			position: relative;
			padding: 30upx 0rpx;
			width: 100%;
			height: 100%;
			z-index: 999;
			.order-status{
				display: flex;
				align-items: center;
				justify-content: space-between;
				padding: 0 30upx;
				.inner{
					display: flex;
					align-items: center;
					.img-box{
						width: 96upx;
						height: 96upx;
						margin-right: 30upx;
						image{
							width: 100%;
							height: 100%;
						}
					}
					.status-box{
						height: 96upx;
						display: flex;
						flex-direction: column;
						justify-content: center;
						.status{
							font-size: 40upx;
							font-family: PingFang SC;
							font-weight: bold;
							color: #FFFFFF;
							line-height: 1;
						}
						.desc{
							font-size: 26upx;
							font-family: PingFang SC;
							font-weight: 500;
							color: #FFFFFF;
							line-height: 1;
							margin-top: 30upx;
						}
					}
				}
			}
			.order-placer{
				margin-top: 30upx;
				padding: 0 20upx;
				.inner{
					box-sizing: border-box;
					border-radius: 16upx;
					height: 150upx;
					padding: 40upx 30upx;
					display: flex;
					align-items: center;
					background: #FFFFFF;
					.location{
						width: 24upx;
						height: 27upx;
						margin-right: 18upx;
						flex-shrink: 0;
					}
					.info{
						.name-phone{
							display: flex;
							align-items: center;
							.text{
								font-size: 28upx;
								font-family: PingFang SC;
								font-weight: bold;
								color: #333333;
								line-height: 1;
								margin-right: 20upx;
								&:last-child{
									margin-right: 0;
								}
							}
						}
						.address{
							font-size: 26upx;
							font-family: PingFang SC;
							font-weight: 500;
							color: #999999;
							line-height: 1.3;
							margin-top: 10upx;
						}
					}
				}
				
			}
		}
	}
	.content{
		margin: 20rpx 0rpx;
		padding: 0 20upx 140rpx 20upx;
		.goods-list{
			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, #C39A58 0%, #E2C99E 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: 18upx;
						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;
				.discount{
					font-size: 24upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #999999;
					line-height: 1;
					margin-right: 30upx;
				}
				.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;
					}
				}
			}
		}
		.order-info{
			margin-top: 20upx;
			background: #FFFFFF;
			border-radius: 16upx;
			padding: 40upx 30upx;
			.title{
				font-size: 30upx;
				font-family: PingFang SC;
				font-weight: bold;
				color: #222222;
				line-height: 1;
			}
			.item{
				margin-top: 40upx;
				display: flex;
				align-items: center;
				justify-content: space-between;
				.label{
					font-size: 26upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #666666;
					line-height: 1;
				}
				.text{
					font-size: 26upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #222222;
					line-height: 32upx;
				}
				.cont-text{
					font-size: 26upx;
					font-family: PingFang SC;
					font-weight: 500;
					color: #666666;
					.bold{
						color: #111111;
					}
				}
				.sn-box{
					display: flex;
					align-items: center;
					.copy-btn{
						width: 58upx;
						height: 32upx;
						line-height: 32upx;
						text-align: center;
						font-size: 22upx;
						font-family: PingFang SC;
						font-weight: 500;
						color: #222222;
						background: #F5F5F5;
						border-radius: 4upx;
						margin-left: 24upx;
					}
				}
				.check-box{
					display: flex;
					align-items: center;
					image{
						width: 14upx;
						height: 24upx;
						margin-left: 10upx;
					}
				}
			}
			.line{
				width: 100%;
				height: 1px;
				background: #F0F0F0;
				margin-top: 30upx;
			}
		}
	}
	.btn-box{
		z-index: 999;
		bottom: 0;
		width: 100%;
		position: fixed;
		height: 120upx;
		box-sizing: border-box;
		background: #FFFFFF;
		padding: 0 30upx;
		display: flex;
		align-items: center;
		justify-content: flex-end;
	}
	.btn{
		position: relative;
		width: 155upx;
		height: 64upx;
		line-height: 64upx;
		font-size: 26upx;
		font-family: PingFang SC;
		font-weight: 500;
		text-align: center;
		border-radius: 32upx;
		margin-left: 15upx;
		&.cancel{
			
			border: 1px solid #DDDDDD;
			color: #666666;
		}
		&.pay{
			background: #C39A58;
			color: #FFFFFF;
		}
		.contact-btn {
			top: 0;
			position: absolute;
			width:100%;
			height:100%;
			opacity: 0;
		}
	}
	.order-info-title {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	.order-info-r {
		display: flex;
		align-items: center;
		.btn{ 
			margin-bottom: 0;
		}
	}
</style>
