Просмотр исходного кода

feat: 添加下拉刷新功能和优化订单列表加载逻辑

Yannay месяцев назад: 2
Родитель
Сommit
ced241efdc
1 измененных файлов с 28 добавлено и 3 удалено
  1. 28 3
      pages/pagereceivecenter/pagereceivecenter.vue

+ 28 - 3
pages/pagereceivecenter/pagereceivecenter.vue

@@ -22,6 +22,7 @@ export default {
22
             followUpNotes: '',
22
             followUpNotes: '',
23
             countdown: 300,
23
             countdown: 300,
24
             countdownIntervals: null,
24
             countdownIntervals: null,
25
+            refresherTriggered: false, // 下拉刷新状态
25
 
26
 
26
             //筛选条件
27
             //筛选条件
27
             filterList: [
28
             filterList: [
@@ -89,8 +90,13 @@ export default {
89
                     // return b.status - a.status;
90
                     // return b.status - a.status;
90
                 })
91
                 })
91
 
92
 
92
-
93
-                this.orderList.push(...result.rows);
93
+                // 如果是第一页(下拉刷新或初始加载),直接替换列表
94
+                if (this.page.pageNum === 1) {
95
+                    this.orderList = result.rows;
96
+                } else {
97
+                    // 否则追加数据(上拉加载更多)
98
+                    this.orderList.push(...result.rows);
99
+                }
94
                 this.page.total = result.total;
100
                 this.page.total = result.total;
95
 
101
 
96
             } catch (error) {
102
             } catch (error) {
@@ -99,6 +105,19 @@ export default {
99
                 uni.$u.toast('获取订单列表失败,请稍后重试');
105
                 uni.$u.toast('获取订单列表失败,请稍后重试');
100
             }
106
             }
101
         },
107
         },
108
+        // 下拉刷新
109
+        async onRefresh() {
110
+            this.refresherTriggered = true;
111
+            // 重置页码和列表
112
+            this.page.pageNum = 1;
113
+            this.orderList = [];
114
+            // 重新获取数据
115
+            await this.getOrderList();
116
+            // 重新获取统计数据
117
+            await this.getStatisticsSendStatus();
118
+            // 停止刷新
119
+            this.refresherTriggered = false;
120
+        },
102
         //获取统计数据
121
         //获取统计数据
103
         async getStatisticsSendStatus() {
122
         async getStatisticsSendStatus() {
104
             const { data } = await uni.$u.api.statisticsSendStatus({ type: this.activeType });
123
             const { data } = await uni.$u.api.statisticsSendStatus({ type: this.activeType });
@@ -313,7 +332,13 @@ export default {
313
 
332
 
314
 
333
 
315
         <view class="scrollViewContainer">
334
         <view class="scrollViewContainer">
316
-            <scroll-view class="scrollView" scroll-y @scrolltolower="scrolltolower">
335
+            <scroll-view 
336
+                class="scrollView" 
337
+                scroll-y 
338
+                refresher-enabled
339
+                :refresher-triggered="refresherTriggered"
340
+                @refresherrefresh="onRefresh"
341
+                @scrolltolower="scrolltolower">
317
                 <transition-group name="order-move" tag="div">
342
                 <transition-group name="order-move" tag="div">
318
                     <!-- <orderCard v-for="item in orderList" :key="item.receiptId + item.id" :order="item"
343
                     <!-- <orderCard v-for="item in orderList" :key="item.receiptId + item.id" :order="item"
319
                         @handleBtnClick="handleBtnClick">
344
                         @handleBtnClick="handleBtnClick">