|  | @@ -8,7 +8,8 @@
 | 
	
		
			
				|  |  |  		<view class="o-orderlist-card" v-for="item in orderList" :key="item.orderId"
 | 
	
		
			
				|  |  |  			@click="RouterUtils.to_page(`/pages/index/toBeUsed/index?orderId=${item.orderId}&orderType=${item.orderType}&isPayOrder=1`)">
 | 
	
		
			
				|  |  |  			<view class="o-order-name">
 | 
	
		
			
				|  |  | -				<view class="order-name" v-if="item?.orderProInfoList && item.orderProInfoList.length > 0">{{ item.orderType == 5 ? '上课地点' : '场地' }}:{{ item?.orderProInfoList[0].address || '--'
 | 
	
		
			
				|  |  | +				<view class="order-name" v-if="item?.orderProInfoList && item.orderProInfoList.length > 0">{{
 | 
	
		
			
				|  |  | +					item.orderType == 5 ? '上课地点' : '场地' }}:{{ item?.orderProInfoList[0].address || '--'
 | 
	
		
			
				|  |  |  					}}</view>
 | 
	
		
			
				|  |  |  				<!-- 待付款 -->
 | 
	
		
			
				|  |  |  				<view class="order-status" v-if="item.orderStatus == 0">待支付(剩余{{ item.downTime }})</view>
 | 
	
	
		
			
				|  | @@ -47,11 +48,15 @@
 | 
	
		
			
				|  |  |  					<!-- 没保险 -->
 | 
	
		
			
				|  |  |  					<view class="item-order-single" v-else>
 | 
	
		
			
				|  |  |  						<view class="single-img">
 | 
	
		
			
				|  |  | -							<image :src="item?.orderProInfoList && item.orderProInfoList.length > 0 ? item?.orderProInfoList[0]?.productImage.split(',')[0] : ''" mode=""></image>
 | 
	
		
			
				|  |  | +							<image
 | 
	
		
			
				|  |  | +								:src="item?.orderProInfoList && item.orderProInfoList.length > 0 ? item?.orderProInfoList[0]?.productImage.split(',')[0] : ''"
 | 
	
		
			
				|  |  | +								mode=""></image>
 | 
	
		
			
				|  |  |  						</view>
 | 
	
		
			
				|  |  |  						<view class="single-name">
 | 
	
		
			
				|  |  | -							<view class="item-single-name textHidden" v-if="item.orderType != 1 && item?.orderProInfoList && item.orderProInfoList.length > 0">{{
 | 
	
		
			
				|  |  | -								item?.orderProInfoList[0].productName }}</view>
 | 
	
		
			
				|  |  | +							<view class="item-single-name textHidden"
 | 
	
		
			
				|  |  | +								v-if="item.orderType != 1 && item?.orderProInfoList && item.orderProInfoList.length > 0">
 | 
	
		
			
				|  |  | +								{{
 | 
	
		
			
				|  |  | +									item?.orderProInfoList[0].productName }}</view>
 | 
	
		
			
				|  |  |  							<view class="item-single-name" v-else-if="item.orderType == 1 && item?.orderProInfoList">
 | 
	
		
			
				|  |  |  								<!-- {{ item.orderProInfoList[0].productName }} -->
 | 
	
		
			
				|  |  |  								<view class="textHidden" v-for="name in item.orderProInfoList" :key="name.id">{{
 | 
	
	
		
			
				|  | @@ -71,7 +76,8 @@
 | 
	
		
			
				|  |  |  				<view class="cancel-btn" v-if="item?.orderStatus == 0" @click.stop="cancelOrder(item)">取消订单</view>
 | 
	
		
			
				|  |  |  				<view class="pay-btn" v-if="item?.orderStatus == 0" @click.stop="submitPay(item)">付款</view>
 | 
	
		
			
				|  |  |  				<!-- 售后/退款 -->
 | 
	
		
			
				|  |  | -				<view class="pay-btn" v-if="item?.orderStatus == 2&&item.orEvaluate==0&&item.orderType!=3&&item.orderType!=4 && item?.orderProInfoList && item.orderProInfoList.length > 0"
 | 
	
		
			
				|  |  | +				<view class="pay-btn"
 | 
	
		
			
				|  |  | +					v-if="item?.orderStatus == 2 && item.orEvaluate == 0 && item.orderType != 3 && item.orderType != 4 && item?.orderProInfoList && item.orderProInfoList.length > 0"
 | 
	
		
			
				|  |  |  					@click.stop="RouterUtils.to_page(`/pages/index/writeComments/index?siteId=${item.addressSiteId}&orderId=${item.orderId}&siteName=${item.orderProInfoList[0].address}`)">
 | 
	
		
			
				|  |  |  					评价</view>
 | 
	
		
			
				|  |  |  				<!-- 已使用 -->
 | 
	
	
		
			
				|  | @@ -79,8 +85,11 @@
 | 
	
		
			
				|  |  |  				<view class="pay-btn" v-if="selected == 4">凭证</view>
 | 
	
		
			
				|  |  |  			</view>
 | 
	
		
			
				|  |  |  			<!-- 待使用 -->
 | 
	
		
			
				|  |  | -			<view class="o-order-tips" v-if="item.orderStatus == 1&&item.orderType != 3&&item.orderType != 4 && item?.orderProInfoList && item.orderProInfoList.length > 0">
 | 
	
		
			
				|  |  | -				<text v-if="item.orderProInfoList[0].frameTimeStr&&item.orderProInfoList[0].frameTimeStr!='00:00-00:00'">限{{ item.orderProInfoList[0].frameTimeStr }}使用,过期作废</text>
 | 
	
		
			
				|  |  | +			<view class="o-order-tips"
 | 
	
		
			
				|  |  | +				v-if="item.orderStatus == 1 && item.orderType != 3 && item.orderType != 4 && item?.orderProInfoList && item.orderProInfoList.length > 0">
 | 
	
		
			
				|  |  | +				<text
 | 
	
		
			
				|  |  | +					v-if="item.orderProInfoList[0].frameTimeStr && item.orderProInfoList[0].frameTimeStr != '00:00-00:00'">限{{
 | 
	
		
			
				|  |  | +						item.orderProInfoList[0].frameTimeStr }}使用,过期作废</text>
 | 
	
		
			
				|  |  |  				<text v-if="item.earlyRefundTime">请按时到场,退款需提前{{ item.earlyRefundTime }}分钟</text>
 | 
	
		
			
				|  |  |  			</view>
 | 
	
		
			
				|  |  |  		</view>
 | 
	
	
		
			
				|  | @@ -91,32 +100,34 @@
 | 
	
		
			
				|  |  |  <script lang="ts" setup>
 | 
	
		
			
				|  |  |  import { ref, onMounted, onUnmounted } from 'vue'
 | 
	
		
			
				|  |  |  import { http } from '@/utils/http'
 | 
	
		
			
				|  |  | -import { onLoad, onReachBottom,onShow } from '@dcloudio/uni-app';
 | 
	
		
			
				|  |  | -import zsEmpty from '@/components/zs-empty/index.vue'
 | 
	
		
			
				|  |  | -import { RouterUtils, TipsUtils } from '@/utils/util'
 | 
	
		
			
				|  |  | +import { onLoad, onReachBottom, onShow } from '@dcloudio/uni-app';
 | 
	
		
			
				|  |  | +import zsEmpty from '@/components/zs-empty/index.vue';
 | 
	
		
			
				|  |  | +import { RouterUtils, TipsUtils } from '@/utils/util';
 | 
	
		
			
				|  |  | +import { useCacheStore } from '@/stores/cache'
 | 
	
		
			
				|  |  | +const cache = useCacheStore()
 | 
	
		
			
				|  |  |  const selected = ref(0)
 | 
	
		
			
				|  |  |  const orderTypeList = ref(['全部', '待付款', '待使用', '已使用', '退款/售后'])
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  onLoad((option) => {
 | 
	
		
			
				|  |  | -	selected.value = option.selIndex
 | 
	
		
			
				|  |  | -	if (selected.value == 0) {
 | 
	
		
			
				|  |  | -		orderFormData.value.orderStatus = null
 | 
	
		
			
				|  |  | -		orderFormData.value.orAfterSale = 0
 | 
	
		
			
				|  |  | -	} else if (selected.value == 1) {
 | 
	
		
			
				|  |  | -		orderFormData.value.orderStatus = 0
 | 
	
		
			
				|  |  | -		orderFormData.value.orAfterSale = 0
 | 
	
		
			
				|  |  | -	} else if (selected.value == 2) {
 | 
	
		
			
				|  |  | -		orderFormData.value.orderStatus = 1
 | 
	
		
			
				|  |  | -		orderFormData.value.orAfterSale = 0
 | 
	
		
			
				|  |  | -	} else if (selected.value == 3) {
 | 
	
		
			
				|  |  | -		orderFormData.value.orderStatus = 2
 | 
	
		
			
				|  |  | -		orderFormData.value.orAfterSale = 0
 | 
	
		
			
				|  |  | -	} else if (selected.value == 4) {
 | 
	
		
			
				|  |  | -		orderFormData.value.orderStatus = null
 | 
	
		
			
				|  |  | -		orderFormData.value.orAfterSale = 1
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  | -onShow(()=>{
 | 
	
		
			
				|  |  | +onShow(() => {
 | 
	
		
			
				|  |  | +	// selected.value = cache.get('ORDER_SEL_INDEX') || 0
 | 
	
		
			
				|  |  | +	const statusMap:any = {
 | 
	
		
			
				|  |  | +		0: { orderStatus: null, orAfterSale: 0 },
 | 
	
		
			
				|  |  | +		1: { orderStatus: 0, orAfterSale: 0 },
 | 
	
		
			
				|  |  | +		2: { orderStatus: 1, orAfterSale: 0 },
 | 
	
		
			
				|  |  | +		3: { orderStatus: 2, orAfterSale: 0 },
 | 
	
		
			
				|  |  | +		4: { orderStatus: null, orAfterSale: 1 }
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	const selectedIndex = cache.get('ORDER_SEL_INDEX')
 | 
	
		
			
				|  |  | +	selected.value = selectedIndex||0
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if (statusMap[selectedIndex]) {
 | 
	
		
			
				|  |  | +		Object.assign(orderFormData.value, statusMap[selectedIndex])
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	// 使用完成后移除缓存
 | 
	
		
			
				|  |  | +	cache.remove('ORDER_SEL_INDEX')
 | 
	
		
			
				|  |  |  	getOrderList()
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  onReachBottom(() => {
 | 
	
	
		
			
				|  | @@ -128,6 +139,7 @@ onMounted(() => {
 | 
	
		
			
				|  |  |  	// getOrderList()
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  const selectedItem = (i) => {
 | 
	
		
			
				|  |  | +	orderFormData.value.pageNo = 1
 | 
	
		
			
				|  |  |  	selected.value = i
 | 
	
		
			
				|  |  |  	if (selected.value == 0) {
 | 
	
		
			
				|  |  |  		orderFormData.value.orderStatus = null
 | 
	
	
		
			
				|  | @@ -149,12 +161,12 @@ const selectedItem = (i) => {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 提交支付start
 | 
	
		
			
				|  |  | -const orderCode=ref()
 | 
	
		
			
				|  |  | -const orderId=ref()
 | 
	
		
			
				|  |  | +const orderCode = ref()
 | 
	
		
			
				|  |  | +const orderId = ref()
 | 
	
		
			
				|  |  |  const submitPay = (e: any) => {
 | 
	
		
			
				|  |  |  	http.put(`/order/payOrder?appOrderId=${e.orderId}`, {}, { loading: true }).then((res) => {
 | 
	
		
			
				|  |  | -		orderCode.value=res.result.orderCode
 | 
	
		
			
				|  |  | -		orderId.value=res.result.orderId
 | 
	
		
			
				|  |  | +		orderCode.value = res.result.orderCode
 | 
	
		
			
				|  |  | +		orderId.value = res.result.orderId
 | 
	
		
			
				|  |  |  		paymentOrder(res.result.params)
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -166,9 +178,9 @@ const paymentOrder = (payInfo: object) => {
 | 
	
		
			
				|  |  |  		...payInfo,
 | 
	
		
			
				|  |  |  		success: function (res) {
 | 
	
		
			
				|  |  |  			console.log('支付成功', res);
 | 
	
		
			
				|  |  | -			setTimeout(()=>{
 | 
	
		
			
				|  |  | -			getOrderQuery(orderCode.value, orderId.value)
 | 
	
		
			
				|  |  | -			},500)
 | 
	
		
			
				|  |  | +			setTimeout(() => {
 | 
	
		
			
				|  |  | +				getOrderQuery(orderCode.value, orderId.value)
 | 
	
		
			
				|  |  | +			}, 500)
 | 
	
		
			
				|  |  |  		},
 | 
	
		
			
				|  |  |  		fail: function (err) {
 | 
	
		
			
				|  |  |  			console.log('支付失败', err);
 | 
	
	
		
			
				|  | @@ -224,10 +236,11 @@ const getOrderList = () => {
 | 
	
		
			
				|  |  |  			orderList.value = [...orderList.value, ...res.result.records]
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		orderList.value.forEach((item) => {
 | 
	
		
			
				|  |  | -			const [datePart, timePart] = item.createTime.split(' ');
 | 
	
		
			
				|  |  | -			const [year, month, day] = datePart.split('-').map(Number);
 | 
	
		
			
				|  |  | -			const [hours, minutes, seconds] = timePart.split(':').map(Number);
 | 
	
		
			
				|  |  | -			item.createTime = new Date(year, month - 1, day, hours, minutes, seconds);
 | 
	
		
			
				|  |  | +			// const [datePart, timePart] = item.createTime.split(' ');
 | 
	
		
			
				|  |  | +			// const [year, month, day] = datePart.split('-').map(Number);
 | 
	
		
			
				|  |  | +			// const [hours, minutes, seconds] = timePart.split(':').map(Number);
 | 
	
		
			
				|  |  | +			// item.createTime = new Date(year, month - 1, day, hours, minutes, seconds);
 | 
	
		
			
				|  |  | +			console.log(item.createTime);
 | 
	
		
			
				|  |  |  			if (item.orderStatus == 0) {
 | 
	
		
			
				|  |  |  				item.downTime = "";
 | 
	
		
			
				|  |  |  				item.timer = null;
 | 
	
	
		
			
				|  | @@ -235,7 +248,7 @@ const getOrderList = () => {
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		})
 | 
	
		
			
				|  |  |  		console.log(orderList.value, '订单列表');
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  // 倒计时
 | 
	
	
		
			
				|  | @@ -258,7 +271,9 @@ const startCountdown = (item) => {
 | 
	
		
			
				|  |  |  				item.downTime = "00:00";
 | 
	
		
			
				|  |  |  				if (callCount < 3) {
 | 
	
		
			
				|  |  |  					callCount++;
 | 
	
		
			
				|  |  | +					setTimeout(()=>{
 | 
	
		
			
				|  |  |  					getOrderList();
 | 
	
		
			
				|  |  | +					},500)
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				return;
 | 
	
		
			
				|  |  |  			}
 |