<template>
	<view class="order-container">
		<view v-if="orderList.length>0">
			<view class="order-text-blod" style="margin: 0 0 14px 10px;">
				全部订单
			</view>
			<view class="order-item" v-for="(order,index) in orderList" :key="index">
				<view class="order-title">
					<text
						class="order-text-blod">{{order.orderItemList&&order.orderItemList[0]&&order.orderItemList[0].productName}}</text>
					<text style="font-size: 14px;color: #A94F20;">{{ getStatusName(order.status) }}</text>
				</view>
				<view class="order-content">
					<view class="order-title">
						<text class="order-text-normal">下单时间</text>
						<text class="order-text-normal" style="color: #999;">{{order.paymentTime}}</text>
					</view>
					<view class="order-title" style="margin-top: 14px;">
						<text class="order-text-normal">上门频率</text>
						<text class="order-text-normal" style="color: #999;">
							{{order.service.serviceFrequency =='once_a_day'?'一天一次':'一天两次'}}
						</text>
					</view>
<!-- 					<view class="order-title" style="margin-top: 14px;">
						<text class="order-text-normal">服务时间</text>
						<view>
							<view class="order-text-normal" style="color: #999;margin-bottom: 5px;"
								v-for="date in (order.service.serviceDate && getDateList(order.service.serviceDate))"
								:key="date">
								{{date}}
							</view>
						</view>
					</view> -->
				</view>
				<view class="order-price">
					<view class="order-text-blod">
						总价:
						<text style="font-size: 20px; color:#FF530A;">￥{{order.payAmount}}</text>
						<text style="color:#FF530A; font-size:14px"> 元</text>
					</view>
				</view>
			</view>
		</view>
		<view class="no-data" v-else>
			暂无数据
		</view>

		<Kefu></Kefu>

	</view>
</template>

<script>
	import { getOpenIdKey } from '@/utils/auth';
	import Kefu from '../common/kefu.vue'
	import {
		getOrderList,
		getOpenId
	} from "@/api/system/user.js"
	export default {
		data() {
			return {
				prames: {
					status: '-1',
					page: 0,
					size: 20,
					openId: ''
				},
				orderList: [],
				openIdStr: '',
				totalPages: 1,
				statusLsit: [{
						value: -1,
						label: '全部'
					},
					{
						value: 1,
						label: '待派单'
					},
					{
						value: 2,
						label: '已派单'
					},
					{
						value: 3,
						label: '已完成'
					},
				]
			};
		},
		components:{
			Kefu
		},
		onLoad() {
			this.openIdStr = getOpenIdKey()
			// this.openIdStr = this.$globalData.openIdStr;
			this.getOrderData()
		},
		onReachBottom() {
			this.prames.page = this.prames.page + 1
			this.getOrderData()
		},
		onPullDownRefresh() {
			this.prames = {
				status: '-1',
				page: 0,
				size: 20,
				openId: ''
			}
			this.orderList = []
			this.getOrderData()
			// wx.stopPullDownRefresh() 
			//停止下拉刷新效果的api，如果发现进入刷新状态无法停止，可以用这个
		},
		methods: {
			getOrderData() {
				if (!this.openIdStr) {
					this.login()
				} else {
					if (this.prames.page < this.totalPages) {
						this.prames.openId = this.openIdStr
						getOrderList(this.prames).then(res => {
							if (res && res.content) {
								this.totalPages = res.totalPages
								this.orderList = [...this.orderList, ...res.content]
							}
							console.log(res);
						})
					} else {
						uni.showToast('暂无更多数据')
					}

				}

			},
			login() {
				uni.login({
					provider: 'weixin',
					success: (loginRes) => {
						this.getOpenId(loginRes.code)
					},
					fail: function(error) {
						// 授权失败处理
						uni.showToast('授权失败，请授权后再试')
					}
				});
			},
			getOpenId(code) {
				getOpenId(code).then(res => {
					if (res.code == 200 && res.data) {
						this.openIdStr = JSON.parse(res.data).openId;
						this.$globalData.openIdStr = this.openIdStr;
						this.getOrderData()
					}
				})
			},
			getStatusName(status) {
				const currentStatus = this.statusLsit.find(item => item.value == status)
				if (currentStatus) {
					return currentStatus.label
				}
				return ''
			},
			getDateList(serviceDate) {
				return JSON.parse(serviceDate).sort()
			}
		},
	}
</script>

<style lang="scss">
	.order-container {
		padding: 14px 10px;
		background-color: #F5F5F7;
		height: 100vh;

		.order-item {
			border-radius: 8px;
			background: #FFF;
			padding: 18px 10px 14px;
			margin-bottom: 10px;

			.order-title {
				display: flex;
				justify-content: space-between;
			}

			.order-content {
				background-color: #FFFCF2;
				padding: 14px 16px;
				margin-top: 14px;
			}

			.order-price {
				margin-top: 14px;
				text-align: end;
			}
		}

		.order-text-blod {
			font-size: 16px;
			color: #333;
			font-weight: bold;
			line-height: 16px;
		}

		.order-text-normal {
			font-size: 16px;
			color: #333;
			line-height: 16px;
		}

		.no-data {
			color: #999;
			height: 60vh;
			display: flex;
			justify-content: center;
			align-items: center;
			font-size: 20px;
		}
	}
</style>