ソースを参照

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

Yannay 2 ヶ月 前
コミット
ced241efdc
共有1 個のファイルを変更した28 個の追加3 個の削除を含む
  1. 28 3
      pages/pagereceivecenter/pagereceivecenter.vue

+ 28 - 3
pages/pagereceivecenter/pagereceivecenter.vue

@@ -22,6 +22,7 @@ export default {
22 22
             followUpNotes: '',
23 23
             countdown: 300,
24 24
             countdownIntervals: null,
25
+            refresherTriggered: false, // 下拉刷新状态
25 26
 
26 27
             //筛选条件
27 28
             filterList: [
@@ -89,8 +90,13 @@ export default {
89 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 100
                 this.page.total = result.total;
95 101
 
96 102
             } catch (error) {
@@ -99,6 +105,19 @@ export default {
99 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 122
         async getStatisticsSendStatus() {
104 123
             const { data } = await uni.$u.api.statisticsSendStatus({ type: this.activeType });
@@ -313,7 +332,13 @@ export default {
313 332
 
314 333
 
315 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 342
                 <transition-group name="order-move" tag="div">
318 343
                     <!-- <orderCard v-for="item in orderList" :key="item.receiptId + item.id" :order="item"
319 344
                         @handleBtnClick="handleBtnClick">