<template>
	<view class="content" :style="[theme]">
		<view class="onecontent">
			<view class="flex-start">
				<view class="onecontent_oen flex-start">
					<input class="onecontent_oen_input" type="text" v-model="like" placeholder="搜索订单/商家名/商品名">
					<text class="onecontent_oen_text" @click="init_fn">搜索</text>
				</view>
				<view class="onecontent_oen_right flex-start" @click="showpicker = true" v-if="model_type != 'Wedding'">
					<image class="onecontent_oen_rightimage" src="@/static/screen.png" mode="aspectFill"></image>
					<view class="onecontent_oen_rightimageview">筛选</view>
				</view>
			</view>
			<view class="onecontent_tow flex-between">
				<view ref="uTabs" class="onecontent_tow_item flex-colum" v-for="(item,index) in swipercurrentdata"
					:key="index" @click="orderswitch(index)">
					<view :class="swiperCurrent == index?'onecontent_tow_itemtexts':'onecontent_tow_itemtext'">
						{{item.name}}
					</view>
					<image class="onecontent_tow_itemtextsimges" v-if="swiperCurrent == index" :src="selected"
						mode="aspectFill"></image>
				</view>
			</view>
		</view>
		<view class="towcontent">
			<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{height:height}">
				<swiper-item v-for="(item,index) in list_" :key="index">
					<scroll-view scroll-y style="width: 100%;" :style="{height:height}" @scrolltolower="lower">
						<view class="towcontentitem" v-for="(item1,index1) in  list_[index].data" :key="index1"
							@click="eeInfo(item1)">
							<view class="towcontentitemone flex-between">
								<text class="towcontentitemone_one">{{item1.store_title}}</text>
								<view class="towcontentitemone_tow flex-start">
									<!-- <image class="towcontentitemone_towimage"
										:src="item.store_avatar"
										mode="aspectFill">
									</image> -->
									<text v-if="item1.status == 0">待支付</text>
									<text v-if="item1.status == 1">已支付</text>
									<text v-if="item1.status == 2">等待确认</text>
									<text v-if="item1.status == 3">已确认</text>
									<text v-if="item1.status == 4">已完成 </text>
									<text v-if="item1.status == 5">已取消</text>
									<text v-if="item1.status == 6">退款中</text>
									<text v-if="item1.status == 7">已退款</text>
									<text v-if="item1.status == 8">已拒绝</text>
								</view>
							</view>
							<view class="towcontentitemtow flex-start">
								<image class="towcontentitemtow_imge" :src="item1.store_avatar" mode="aspectFill">
								</image>
								<view class="towcontentitemtow_one flex-colum-start">
									<text class="towcontentitemtow_one_one">{{item1.title}}111111111111111111111111111111111</text>
									<text class="towcontentitemtow_one_tow"><text
											style="font-size:28rpx;">¥</text>{{item1.total_price}}</text>
									<text class="towcontentitemtow_one_there"><text
											style="font-size:28rpx;"></text>{{item1.time}}</text>
								</view>
								<view class="towcontentitemtow_tow">
									{{item1.number}}
								</view>
							</view>
							<view class="towcontentitemthere">
								<view v-if="item1.status == 0"
									class="towcontentitemthereitem towcontentitemthereitem_tow"
									@click.stop="orderordercancel(item1)">
									取消订单
								</view>
								<view
									v-if="item1.status == 1 ||  item1.status == 2 || (item1.status == 3 && item1.pay_status == 1)"
									class="towcontentitemthereitem towcontentitemthereitem_tow"
									@click.stop="orderordercancelrefund(item1)">
									申请售后
								</view>
								<view v-if="item1.status == 6 || item1.status == 7"
									class="towcontentitemthereitem towcontentitemthereitem_tow"
									@click.stop="applylrefund(item1)">
									查看退款
								</view>
								<view class="towcontentitemthereitem towcontentitemthereitem_tow"
									v-if="item1.status == 5 || item1.status == 4 "
									@click.stop="orderorderdelete(item1)">
									删除订单
								</view>
								<!-- <view class="towcontentitemthereitem towcontentitemthereitem_there">
									待服务
								</view> -->
								<view class="towcontentitemthereitem towcontentitemthereitem_one"
									v-if=" item1.status != 8 && item1.pay_status == 0 && (item1.status == 0 || item1.status == 1 || item1.status == 2)"
									@click.stop="overlayshowclick(item1)">
									去付款
								</view>
							</view>
							<u-overlay :show="overlayshow" @click.stop="overlayshow = false" opacity='0.1'>
								<view class="warp">
									<view class="rect flex-colum" @tap.stop>
										<view class="rectone">
											确定{{clickoverlayshowtext}}吗?
										</view>
										<view class="recttow flex-between">
											<view class="recttow_one" @click="cancelOrder(item.status)">
												确定
											</view>
											<view class="recttow_tow" @click="overlayshow = false">
												取消
											</view>
										</view>
									</view>
								</view>
							</u-overlay>
						</view>
						<view v-if="list_[index].data.length == 0 && list_[index].is_end == true" class="flex-colum"
							style="margin-bottom: 10rpx;">
							<image style="margin-top:100rpx;" class="" :src="bgnothave" mode="widthFix">
							</image>
						</view>
						<u-loadmore :status="form.status" />
					</scroll-view>
				</swiper-item>
			</swiper>
		</view>
		<u-picker :show="showpicker" :columns="columns" keyName="label" @cancel='showpicker = false'
			@confirm='confirmpicker'></u-picker>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				selected: uni.getStorageSync('selected'),
				model_type: uni.getStorageSync('loginuser').model_type,
				showpicker: false,
				columns: [
					[{
						label: '店铺订单',
						// 其他属性值
						id: 1
						// ...
					}, {
						label: '商城订单',
						id: 2
					}]
				],
				bgnothave: uni.getStorageSync('bgnothave'),
				height: "",
				// 因为内部的滑动机制限制，请将tabs组件和swiper组件的current用不同变量赋值
				current: 0, // tabs组件的current值，表示当前活动的tab选项
				swiperCurrent: 0, // swiper组件的current值，表示当前那个swiper-item是活动的
				overlayshow: false,
				list_: {
					list1: { //全部
						data: [],
						page: 1,
						is_end: false,
					},
					list2: { //代付款
						data: [],
						page: 1,
						is_end: false,
					},
					list3: { //待服务
						data: [],
						page: 1,
						is_end: false,
					},
					list4: { //已完成
						data: [],
						page: 1,
						is_end: false,
					},
					list5: { //退款
						data: [],
						page: 1,
						is_end: false,
					}
				},
				like: '', //备注
				clickoverlayshowtext: "",
				swipercurrentdata: [{
					name: '全部'
				}, {
					name: '待付款'
				}, {
					name: '待服务' //待确认
				}, {
					name: '已完成' //已确认
				}, {
					name: '退款/售后'
				}],
				form: {
					status: 'loadmore',
				},

			}
		},
		onLoad(e) {
			this.swiperCurrent = e.e;
			if (this.model_type == 'Hotel') {
				this.swipercurrentdata = [{
					name: '全部'
				}, {
					name: '待付款'
				}, {
					name: '待确认' //待确认
				}, {
					name: '已确认' //已确认
				}, {
					name: '退款/售后'
				}]
			}
		},
		onShow() {
			this.init_fn();
		},
		computed: {
			HeighTpadding() {
				return this.$store.getters.is_BarHeight.bottompadding
			},
			theme() {
				return this.$store.getters.theme
			},
		},
		mounted() {
			//#ifdef MP-WEIXIN || H5
			var query = uni.createSelectorQuery().in(this).select('.onecontent')
			query.boundingClientRect(ele => {
				var that = this;
				uni.getSystemInfo({
					success(res) {
						that.height = (res.windowHeight - ele.height - (that.HeighTpadding / 2)) +
							"px";
						that = null;
					}
				})
			}).exec();
			//#endif
			//#ifdef MP-ALIPAY
			my.createSelectorQuery().selectAll('.onecontent').boundingClientRect().exec(ele => {
				var nodeData = ele[0]
				var that = this;
				uni.getSystemInfo({
					success(res) {
						that.height = (res.windowHeight - nodeData.height - (that.HeighTpadding / 2)) +
							"px";
						that = null;
					}
				})
			})
			//#endif
			
			
		},

		methods: {
			confirmpicker(e) {
				if (e.value[0].label == '店铺订单') {
					uni.redirectTo({
						url: '/pages/my/order/index?e=0'
					})
				} else {
					uni.redirectTo({
						url: '/pages/mall/order/index?e=0'
					})
				}
			},
			init_fn() {
				this.list_ = {
					list1: { //全部
						data: [],
						page: 1,
						is_end: false,
					},
					list2: { //代付款
						data: [],
						page: 1,
						is_end: false,
					},
					list3: { //待发货
						data: [],
						page: 1,
						is_end: false,
					},
					list4: { //已完成
						data: [],
						page: 1,
						is_end: false,
					},
					list5: { //退款
						data: [],
						page: 1,
						is_end: false,
					}
				}
				for (let i = 0; i <= 4; i++) {
					this.get_order_list(i);
				}
			},
			async get_order_list(i) {
				console.log(i, 2233)
				this.form.status = 'loading';
				let page = null; //页数
				let order_type = 10;
				switch (i) {
					case 0:
						order_type = 10;
						page = this.list_.list1.page;
						break;
					case 1:
						order_type = 0;
						page = this.list_.list2.page;
						break;
					case 2:
						order_type = 3;
						page = this.list_.list3.page;
						break;
					case 3:
						order_type = 4;
						page = this.list_.list4.page;
						break;
					case 4:
						order_type = 5;
						page = this.list_.list5.page;
						break;
				}
				let res = await this.api.orderlist({
					order_type: order_type,
					page: page,
					like: this.like,
					store_id: uni.cache.get('store_id') // 判断显示哪家的作品
				})
				// let res = []
				// res.data.forEach(item=>{//计算待支付订单剩余时间
				// 	if(item.order_type==0){
				// 		item.timeDiff=(new Date(item.estimate_close_at).getTime() -new Date().getTime())/1000;
				// 	}
				// })
				switch (order_type) {
					case 10:
						this.paging(res, this.list_.list1)
						break;
					case 0:
						this.paging(res, this.list_.list2)
						break;
					case 3:
						this.paging(res, this.list_.list3)
						break;
					case 4:
						this.paging(res, this.list_.list4)
						break;
					case 5:
						this.paging(res, this.list_.list5)
						break;
				}
				uni.hideLoading();
			},
			paging(res, list) {
				if (res.length == 0) {
					this.form.status = 'nomore';
					list.is_end = true;
					return false;
				} else {
					this.form.status = 'loading';
					list.page = list.page + 1;
					setTimeout(() => {
						list.data = [...list.data, ...res];
						if (res.length != 10) {
							list.is_end = true;
							this.form.status = 'nomore';

						} else {
							this.form.status = 'loading';
						}
						this.$forceUpdate();
					}, 500)
				}
			},
			async overlayshowclick(e) {
				uni.pro.navigateTo('order/confirm', {
					order_id: e.order_id
				})
				console.log(e)
				let res = await this.api.paygetpayparams({
					order_id: e.order_id
				}) //判断是否支付成功
				// console.log(res)
				// if (res.data.pay_status == 0) {
				// 	// #ifdef MP-WEIXIN
				// 	uni.requestPayment({
				// 		provider: 'wxpay', //支付类型-固定值
				// 		partnerid: res.data.pay_data.payAppId, // 微信支付商户号
				// 		timeStamp: res.data.pay_data.payTimeStamp, // 时间戳（单位：秒）
				// 		nonceStr: res.data.pay_data.paynonceStr, // 随机字符串
				// 		package: res.data.pay_data.payPackage, // 固定值
				// 		signType: res.data.pay_data.paySignType, //固定值
				// 		paySign: res.data.pay_data.paySign, //签名
				// 		success: (res) => {
				// 			console.log(res,'11111111')
				// 			uni.showToast({
				// 				title: "支付成功"
				// 			})
				// 			uni.redirectTo({
				// 				url: "/pages/order/ordersuccess?id=" + e.order_id,
				// 			});
				// 		},
				// 		fail: (err) => {
				// 			uni.showToast({
				// 				icon: 'none',
				// 				title: '支付失败'
				// 			})
				// 			console.log('fail:' + JSON.stringify(err));
				// 		}
				// 	});
				// 	// #endif	
				// } else {
				// 	console.log(res,'22222')
				// 	uni.redirectTo({
				// 		url: "/pages/order/ordersuccess?id=" + e.order_id,
				// 	});
				// }

			},
			lower() {
				switch (this.current) {
					case 0:
						this.onReachBottom_fn(this.list_.list1)
						break;
					case 1:
						this.onReachBottom_fn(this.list_.list2)
						break;
					case 2:
						this.onReachBottom_fn(this.list_.list3)
						break;
					case 3:
						this.onReachBottom_fn(this.list_.list4)
						break;
					case 4:
						this.onReachBottom_fn(this.list_.list5)
						break;
				}
			},
			onReachBottom_fn(list) {
				if (!list.is_end) {
					this.get_order_list(this.current);
				} else {
					this.form.status = 'nomore';
				}
			},
			// tabs通知swiper切换
			orderswitch(index) {
				try {
					switch (index) {
						case 0:
							if (this.list_list1.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 1:
							if (this.list_.list2.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 2:
							if (this.list_.list3.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 3:
							if (this.list_.list4.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 4:
							if (this.list_.list5.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
					}
				} catch (e) {
					//TODO handle the exception
				}
				this.swiperCurrent = index;
			},
			// swiper-item左右移动，通知tabs的滑块跟随移动
			transition(e) {
				let dx = e.detail.dx
				console.log(e, dx)
				// this.$refs.uTabs.setDx(dx);
			},
			// 由于swiper的内部机制问题，快速切换swiper不会触发dx的连续变化，需要在结束时重置状态  swiper滑动结束，分别设置tabs和swiper的状态
			animationfinish(e) {
				let current = e.detail.current;
				try {
					switch (current) {
						case 0:
							if (this.list_list1.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 1:
							if (this.list_.list2.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 2:
							if (this.list_.list3.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 3:
							if (this.list_.list4.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
						case 4:
							if (this.list_.list5.data.length < 10) {
								this.form.status = 'nomore';
							}
							break;
					}
				} catch (e) {
					//TODO handle the exception
				}

				this.swiperCurrent = current;
				this.current = current;
			},
			// clickoverlayshow(e) { //切换文字
			// 	switch (e) {
			// 		case 1:
			// 			this.clickoverlayshowtext = '取消订单'
			// 			break;
			// 		case 2:
			// 			this.clickoverlayshowtext = '删除订单'
			// 			break;
			// 	}
			// 	this.overlayshow = true
			// },
			orderordercancel(item) { //取消订单
				uni.showModal({
					content: '确定取消订单吗?',
					confirmColor: '#f55850',
					cancelColor: '#333333',
					success: async (resdata) => {
						console.log(resdata)
						if (resdata.confirm) {
							let res = await this.api.orderordercancel({
								order_id: item.order_id
							})
							this.init_fn()
						}
					}
				})
			},
			orderordercancelrefund(item) { //取消订单去退款
				uni.pro.navigateTo('my/order/refund', {
					id: item.order_id
				})
			},
			applylrefund(item) {
				uni.pro.navigateTo('my/order/applylrefund', {
					id: item.order_id
				})
			},
			orderorderdelete(item) {
				uni.showModal({
					content: '确定删除订单吗?',
					confirmColor: '#f55850',
					cancelColor: '#333333',
					success: async (resdata) => {
						if (resdata.confirm) {
							let res = await this.api.orderorderdelete({
								order_id: item.order_id
							})
						}
						this.init_fn()
					}
				})
			},
			async cancelOrder(item) { //取消订单
				console.log(item)
				// let res
				// switch (this.clickoverlayshowtext) {
				// 	case '取消订单':
				// 		if (item.status == 0) {
				// 			res = await this.api.orderordercancel({
				// 				order_id: item.order_id
				// 			})
				// 		} else {
				// 			uni.pro.navigateTo('my/order/orderInfo', {
				// 				id: e,
				// 				e: e
				// 			})
				// 		}
				// 		break;
				// 	case '删除订单':
				// 		res = await this.api.orderorderdelete({
				// 			order_id: item.order_id
				// 		})
				// 		break;
				// }
				// this.overlayshow = false
				// this.init_fn()
			},
			eeInfo(e) { //查看订单详情
				uni.pro.navigateTo('my/order/orderInfo', {
					id: e.order_id
				})
			},
		}
	}
</script>

<style lang="scss">
	page {
		background: #F6F6F6;
	}

	.content {

		.onecontent {
			width: 100%;
			background: #FFFFFF;
			padding: 10rpx 28rpx;

			.flex-start {
				flex-wrap: nowrap;

				.onecontent_oen {
					margin: 0 auto;
					flex: auto;
					height: 70rpx;
					border-radius: 36rpx;
					border: 1rpx solid var(--bg-color-button);
					padding-right: 8rpx;

					.onecontent_oen_input {
						padding-left: 32rpx;
						flex: 1;
					}

					.onecontent_oen_text {
						font-size: 28rpx;
						font-family: PingFang SC-Regular, PingFang SC;
						font-weight: 400;
						color: #FFFFFF;
						text-align: center;
						line-height: 56rpx;
						width: 116rpx;
						height: 56rpx;
						background: var(--bg-color-button);
						border-radius: 36rpx;
					}
				}

				.onecontent_oen_right {
					margin-left: 26rpx;

					.onecontent_oen_rightimage {
						width: 17.9rpx;
						height: 19.34rpx;
					}

					.onecontent_oen_rightimageview {
						text-align: center;
						width: 56rpx;
						margin-left: 10rpx;
						font-size: 28rpx;
						font-family: PingFang SC-Regular, PingFang SC;
						font-weight: 400;
						color: #333333;
					}
				}
			}


			.onecontent_tow {
				padding: 32rpx 0 32rpx 0;
				width: 100%;

				.onecontent_tow_item {
					position: relative;

					.onecontent_tow_itemtexts {
						font-size: 32rpx;
						font-family: PingFang SC-Bold, PingFang SC;
						font-weight: bold;
						color: #333333;
					}

					.onecontent_tow_itemtext {
						font-size: 28rpx;
						font-family: PingFang SC-Regular, PingFang SC;
						font-weight: 400;
						color: #666666;
					}

					.onecontent_tow_itemtextsimges {
						position: absolute;
						bottom: -10rpx;
						left: 50%;
						transform: translateX(-50%);
						width: 20rpx;
						height: 8rpx;
						background-size: 100% 100%;
					}
				}
			}
		}

		.towcontent {
			padding: 0 28rpx;

			.flex-colum_image {
				display: flex;
				align-items: center;
				justify-content: center;
				height: 100%;

				text {
					margin-top: 30rpx;
					font-size: 32rpx;
					font-family: PingFang SC-Bold, PingFang SC;
					font-weight: bold;
					color: #666666;
				}
			}

			.towcontentitem {
				margin-top: 32rpx;
				padding: 24rpx;
				width: 100%;
				background: #FFFFFF;
				border-radius: 12rpx;

				.towcontentitemone {
					padding-bottom: 16rpx;
					border-bottom: 1px solid #F6F6F6;

					.towcontentitemone_one {
						flex: 1;
						overflow: hidden;
						text-overflow: ellipsis;
						white-space: nowrap;
						font-size: 28rpx;
						font-family: PingFang SC-Bold, PingFang SC;
						font-weight: bold;
						color: #333333;
					}

					.towcontentitemone_tow {
						font-size: 28rpx;
						font-family: PingFang SC-Regular, PingFang SC;
						font-weight: 400;
						color: #666666;

						.towcontentitemone_towimage {
							margin-right: 10rpx;
							width: 24rpx;
							height: 24rpx;
						}
					}
				}

				.towcontentitemtow {
					position: relative;
					padding: 22rpx 0;
					border-bottom: 1px solid #F6F6F6;

					.towcontentitemtow_imge {
						width: 144rpx;
						height: 144rpx;
						background: #666666;
						border-radius: 12rpx;
					}

					.towcontentitemtow_one {
						margin-left: 32rpx;
						width: 60%;

						.towcontentitemtow_one_one {
							width:80%;
							overflow: hidden;
							text-overflow: ellipsis;
							white-space: nowrap;
							font-size: 28rpx;
							font-family: PingFang SC-Regular, PingFang SC;
							font-weight: 400;
							color: #333333;
						}

						.towcontentitemtow_one_tow {
							margin-top: 24rpx;
							font-size: 40rpx;
							font-family: Roboto-Bold, Roboto;
							font-weight: bold;
							color: #FC5F69;
						}

						.towcontentitemtow_one_there {
							margin-top: 32rpx;
							font-size: 24rpx;
							font-family: Roboto-Bold, Roboto;
							font-weight: 500;
							color: #666;
							position: absolute;
							top: 0;
							right: 0;
						}
					}

					.towcontentitemtow_tow {
						position: absolute;
						bottom: 32rpx;
						right: 0;
						font-size: 28rpx;
						font-family: Roboto-Regular, Roboto;
						font-weight: 400;
						color: #999999;
					}
				}

				.towcontentitemthere {
					width: 100%;
					margin-top: 16rpx;
					display: flex;
					justify-content: flex-end;
					align-items: center;
					flex-wrap: wrap;

					.towcontentitemthereitem {
						margin-left: 24rpx;
						padding: 8rpx 32rpx;
						font-size: 28rpx;
						border-radius: 28rpx;
					}

					.towcontentitemthereitem_one {
						background: var(--bg-color-button);
						font-family: PingFang SC-Bold, PingFang SC;
						font-weight: bold;
						color: #FFFFFF;
					}

					.towcontentitemthereitem_tow {
						background: #F6F6F6;
						font-family: PingFang SC-Bold, PingFang SC;
						font-weight: bold;
						color: #999999;
					}

					.towcontentitemthereitem_there {
						background: var(--bg-color-buttonone);
						font-family: PingFang SC-Bold, PingFang SC;
						font-weight: bold;
						color: #FFFFFF;
					}
				}
			}
		}

		.warp {
			display: flex;
			align-items: center;
			justify-content: center;
			height: 100%;

			.rect {
				padding: 40rpx 68rpx;
				width: 480rpx;
				background: #FFFFFF;
				border-radius: 42rpx;

				.rectone {
					font-size: 32rpx;
					font-family: Source Han Sans CN-Bold, Source Han Sans CN;
					font-weight: bold;
					color: #333333;
				}

				.recttow {
					width: 100%;
					margin-top: 32rpx;

					.recttow_one {
						padding: 8rpx 40rpx;
						background: #FFFFFF;
						border-radius: 26rpx;
						border: 2rpx solid #999999;
						font-size: 28rpx;
						font-family: Source Han Sans CN-Regular, Source Han Sans CN;
						font-weight: 400;
						color: #333333;
					}

					.recttow_tow {
						padding: 8rpx 40rpx;
						background: #333333;
						font-size: 28rpx;
						font-family: Source Han Sans CN-Medium, Source Han Sans CN;
						font-weight: 500;
						color: #FFFFFF;
						border-radius: 26rpx;
					}
				}
			}
		}



	}
</style>