bookingList.vue
3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!--
* @Date: 2024-01-16 11:37:10
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-01-24 16:49:34
* @FilePath: /xysBooking/src/views/bookingList.vue
* @Description: 文件描述
-->
<template>
<div class="booking-list-page">
<van-list
v-model:loading="loading"
:finished="finished"
:finished-text="finishedTextStatus ? '没有更多了' : ''"
@load="onLoad"
>
<!-- <div @click="goToDetail(item)" v-for="(item, index) in bookingList" :key="index" class="booking-list-item">
<div class="booking-list-item-header">
<div>{{ item.booking_time }}</div>
<div :class="[formatStatus(item.status)?.key, 'status']">{{ formatStatus(item.status)?.value }}</div>
</div>
<div class="booking-list-item-body">
<div class="booking-num">
<div class="num-body">预约人数:<span>{{ item.total_qty }} 人</span></div>
<div><van-icon name="arrow" /></div>
</div>
<div class="booking-price">支付金额:<span>¥ {{ item.total_amt }}</span></div>
<div class="booking-time">下单时间:<span>{{ item.order_time }}</span></div>
</div>
</div> -->
<template v-for="(item, index) in bookingList" :key="index">
<reserveCard :data="item" />
</template>
</van-list>
<div v-if="!bookingList.length" class="no-qrcode">
<img src="https://cdn.ipadbiz.cn/xys/booking/%E6%9A%82%E6%97%A0@2x.png" style="width: 10rem;">
<div class="no-qrcode-title">您还没有预约过参观</div>
</div>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useGo } from '@/hooks/useGo'
import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js'
//import { } from '@/utils/generateModules.js'
//import { } from '@/utils/generateIcons.js'
//import { } from '@/composables'
import { billListAPI } from '@/api/index'
import reserveCard from '@/components/reserveCard.vue'
const $route = useRoute();
const $router = useRouter();
useTitle($route.meta.title);
const go = useGo();
const page = ref(1); // 页码默认为1
const limit = ref(5); // 每页默认显示5条
const bookingList = ref([]);
const loading = ref(false);
const finished = ref(false);
const finishedTextStatus = ref(false);
const formatDatetime = (data) => { // 格式化日期
let begin_time = data.begin_time.slice(0, -3);
let end_time = data.end_time.slice(0, -3);
let str = begin_time + ' ' + end_time;
return `${str.split(' ')[0]} ${str.split(' ')[1]}-${str.split(' ')[3]}`;
}
onMounted(async () => {
const { code, data } = await billListAPI({ page: page.value, row_num: limit.value });
if (code) {
//
data.forEach(item => {
item.booking_time = item && formatDatetime(item);
item.order_time = item.created_time.slice(0, -3);
});
bookingList.value = data;
}
});
const onLoad = async () => {
page.value++;
const { code, data } = await billListAPI({ page: page.value, row_num: limit.value });
if (code) {
data.forEach(item => {
item.booking_time = item && formatDatetime(item);
item.order_time = item.created_time.slice(0, -3);
});
bookingList.value = bookingList.value.concat(data);
loading.value = false;
// 数据全部加载完成
if (!data.length) {
// 加载状态结束
finished.value = true;
if (!bookingList.value.length) {
finishedTextStatus.value = false;
}
}
}
}
</script>
<style lang="less" scoped>
.booking-list-page {
padding: 1rem;
}
</style>