<template>
	<view>
		<view class="cont">
			<view class="bg"></view>
			<view class="inner">			
				<!-- 订单状态 -->
				<view class="order-status">
					<!-- 待付款 -->
					<view v-if="order.status == 4" class="inner">
						<view class="img-box">
							<image src="https://hdtobs.obs.cn-north-4.myhuaweicloud.com/hdt/order_success.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://hdtobs.obs.cn-north-4.myhuaweicloud.com/hdt/order_dfh.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">待发货</text>
							<text class="desc">等待后台发货</text>
						</view>
					</view>
					<!-- 已发货、待收货 -->
					<view v-if="order.status == 2" class="inner">
						<view class="img-box">
							<image src="https://hdtobs.obs.cn-north-4.myhuaweicloud.com/hdt/order_dfh.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://hdtobs.obs.cn-north-4.myhuaweicloud.com/hdt/order_ywc.png" mode=""></image>
						</view>
						<view class="status-box">
							<text class="status">已完成</text>
							<text class="desc">订单已确认收货，交易完成</text>
						</view>
					</view>
					<!--交易取消 -->
					<view v-if="order.status == 5" class="inner">
						<view class="img-box">
							<image src="https://hdtobs.obs.cn-north-4.myhuaweicloud.com/hdt/order_close.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://hdtobs.obs.cn-north-4.myhuaweicloud.com/miniapp/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   class="item" v-for="(item,index) in list" :key="index" >
							<view class="img-box">
								<image :src="item.imgUrl==''?'https://hdtobs.obs.cn-north-4.myhuaweicloud.com/miniapp/drug.svg':item.imgUrl" mode="aspectFill"></image>
							</view>
							<view class="info-box">
								<view>
									<view class="name-box ellipsis2">
										 {{item.goodsName}}
									</view>
								</view>
								<view class="price-num">
									<view class="price">
										<text class="num">{{item.integral}}</text>
										<text class="unit">积分</text>
										<text class="num" v-show="item.cash>0">+{{item.cash.toFixed(2)}}</text>
										<text class="unit" v-show="item.cash>0">元</text>
									</view>
									<view class="num"  >x{{item.num}}</view>
								</view>
							</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">{{formattedCreateTime}}</text>
						</view>
					 
						<view   class="item">
							<text class="label">使用积分</text>
							<text class="text"  >{{order.integral}}</text>
						</view>
						<view   class="item" v-if="order.deliveryName!=null">
						 	<text class="label">物流公司</text>
						 	<text class="text"  >{{order.deliveryName}}</text>
						</view>
						<view   class="item" v-if="order.deliverySn!=null">
						 	<text class="label">物流单号</text>
						 	<text class="text"  >{{order.deliverySn}}</text>
						</view>
					</view>
				</view>
			</view>
		</view>
		<!-- 按钮 -->
		<view   class="btn-box">
			<view class="btn pay" v-if="order.status==4" @click.stop="pay()">去支付</view>
				<view class="btn cancel" v-if="order.status==4" @click.stop="cancelPay(item)">取消订单</view>
			<view class="btn cancel">
				联系客服
				<button class='contact-btn' open-type="contact">
				</button>
			</view>
		</view>
	</view>
</template>

<script>
	
	import {getIntegralOrderById,cannelOrder} from '@/api/integral.js'
	export default {
		data() {
			return {
				orderId:null,
				order:{},
				list:[],
		 
			};
		},
		onLoad(option) {
			this.orderId = option.orderId
		},
		onShow() {
			this.getIntegralOrderById()
		},
		computed:{
		formattedCreateTime() {
			if (!this.order || !this.order.createTime) return '';
			
			// 如果是时间戳格式
			if (typeof this.order.createTime === 'number') {
				const date = new Date(this.order.createTime);
				return this.formatDate(date);
			}
			
			// 如果是字符串格式，尝试解析
			const date = new Date(this.order.createTime);
			if (!isNaN(date.getTime())) {
				return this.formatDate(date);
			}
			
			// 如果无法解析，返回原值
			return this.order.createTime;
		},	
		},
		methods: {
			// 日期格式化方法
			formatDate(date) {
				const year = date.getFullYear();
				const month = String(date.getMonth() + 1).padStart(2, '0');
				const day = String(date.getDate()).padStart(2, '0');
				const hours = String(date.getHours()).padStart(2, '0');
				const minutes = String(date.getMinutes()).padStart(2, '0');
				const seconds = String(date.getSeconds()).padStart(2, '0');
				
				return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
			},
			getIntegralOrderById(){
				var data={orderId:this.orderId};
				getIntegralOrderById(data).then(res => {
					if(res.code==200){
						this.order=res.data;
						this.list = [].concat(JSON.parse(this.order.itemJson ?? '[]')).filter(Boolean);
					}else{
						uni.showToast({
							icon:'none',
							title: "请求失败",
						});
						 
					}
				});
			},
			 
			// 复制订单编号
			copyOrderSn(text) {
				// 复制方法
				uni.setClipboardData({
					data:text,
					success:()=>{
						uni.showToast({
							title:'内容已成功复制到剪切板',
							icon:'none'
						})
					}
				});
			},
			pay() {
				 uni.navigateTo({
				 	url: '/pages_points/integralPayment?orderId='+this.order.orderId
				 })
			},
			cancelPay() {
				cannelOrder({orderId:this.order.orderId}).then(res=>{
					if(res.code ==200) {
						uni.showToast({
							title: '取消成功',
							icon: 'none'
						})
						this.getIntegralOrderById()
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none'
						})
					}
				})
			}
		}
	}
</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: #FF233C;
			background: linear-gradient(#FF233C, #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, #FF233C 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: #FF233C;
				color: #FFFFFF;
			}
			.contact-btn {
				top: 0;
				position: absolute;
				width:100%;
				height:100%;
				opacity: 0;
			}
		}
	}
</style>
