From fb805f6ff1d167951e94198b6e9fc320649e8643 Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期五, 11 四月 2025 17:57:20 +0800
Subject: [PATCH] Merge branch 'doing' of http://8.140.179.55:20000/r/wm/pipIrr into doing

---
 pages/irrigation/irrigation.js |  373 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 287 insertions(+), 86 deletions(-)

diff --git a/pages/irrigation/irrigation.js b/pages/irrigation/irrigation.js
index e4adbc2..18aac0c 100644
--- a/pages/irrigation/irrigation.js
+++ b/pages/irrigation/irrigation.js
@@ -13,7 +13,12 @@
     currentList: [], // 褰撳墠鏄剧ず鐨勫垪琛�
     isRefreshing: false, // 鏄惁姝e湪鍒锋柊
     isWXRefreshing: false, // 寰俊鍘熺敓涓嬫媺鍒锋柊鐘舵��
-    projectId: null // Added to store projectId
+    projectId: null, // Added to store projectId
+    // 娣诲姞鍒嗛〉鐩稿叧鏁版嵁
+    pageCurr: 1, // 褰撳墠椤电爜锛屼粠1寮�濮�
+    pageSize: 10, // 姣忛〉璁板綍鏁�
+    hasMoreData: true, // 鏄惁杩樻湁鏇村鏁版嵁
+    loadingMore: false // 鏄惁姝e湪鍔犺浇鏇村
   },
 
   /**
@@ -26,63 +31,116 @@
         projectId: options.projectId
       });
     }
-    this.loadIrrigationData();
-    this.loadCompletedIrrigationData();
+    
+    // 璁剧疆鍔犺浇鐘舵��
+    wx.showLoading({
+      title: '鍔犺浇涓�',
+      mask: true
+    });
+    
+    // 榛樿鍏堝姞杞藉綋鍓嶇亴婧夎鍒�
+    this.loadIrrigationData()
+      .then(() => {
+        wx.hideLoading();
+      })
+      .catch(() => {
+        wx.hideLoading();
+      });
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
-  onShow: function () {
-    this.loadIrrigationData();
-    this.loadCompletedIrrigationData();
-  },
+  // onShow: function () {
+  //   // 璁剧疆椤甸潰涓哄姞杞戒腑鐘舵��
+  //   wx.showLoading({
+  //     title: '鍔犺浇涓�',
+  //     mask: true
+  //   });
+    
+  //   // 鍏堝姞杞藉綋鍓嶉〉闈㈡墍闇�鐨勬暟鎹�
+  //   const currentTab = this.data.currentTab;
+  //   if (currentTab === 0) {
+  //     // 褰撳墠鏍囩鏄�"褰撳墠鐏屾簤璁″垝"锛屽姞杞借繖涓�
+  //     this.loadIrrigationData()
+  //       .then(() => {
+  //         wx.hideLoading();
+  //       })
+  //       .catch(() => {
+  //         wx.hideLoading();
+  //       });
+  //   } else {
+  //     // 褰撳墠鏍囩鏄�"鍘嗗彶璁″垝"
+  //     // 鍙姞杞界涓�椤垫暟鎹紝淇濈暀鍒嗛〉鐘舵��
+  //     if (this.data.completedList.length === 0) {
+  //       // 濡傛灉鍘嗗彶鍒楄〃涓虹┖锛岄噸缃垎椤电姸鎬�
+  //       this.setData({
+  //         pageCurr: 1,
+  //         hasMoreData: true
+  //       });
+  //     }
+      
+  //     this.loadCompletedIrrigationData()
+  //       .then(() => {
+  //         wx.hideLoading();
+  //       })
+  //       .catch(() => {
+  //         wx.hideLoading();
+  //       });
+  //   }
+  // },
 
   /**
    * 鍔犺浇杞亴鏁版嵁
    */
   loadIrrigationData: function () {
-    get({
-      url: '/wx/plan/getNotCompletePlans'
-    }).then(res => {
-      if (res.success) {
-        const activeList = res.content.map(item => {
-          // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆
-          const planState = String(item.planState);
-          return {
-            id: item.planId,
-            title: item.planName,
-            projectName: item.projectName || '鏈垎閰嶉」鐩�',
-            status: planState,
-            planStartTime: item.planStartTime,
-            planStopTime: item.planStopTime,
-            duration: item.duration,
-            startupMode: item.startupMode
-          };
+    return new Promise((resolve, reject) => {
+      get({
+        url: '/wx/plan/getNotCompletePlans'
+      }).then(res => {
+        if (res.success) {
+          const activeList = res.content.map(item => {
+            // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆
+            const planState = String(item.planState);
+            return {
+              id: item.planId,
+              title: item.planName,
+              projectName: item.projectName || '鏈垎閰嶉」鐩�',
+              status: planState,
+              planStartTime: item.planStartTime,
+              planStopTime: item.planStopTime,
+              duration: item.duration,
+              startupMode: item.startupMode
+            };
+          });
+
+          console.log('杞亴璁″垝鏁版嵁锛�', activeList);
+
+          this.setData({
+            activeList: activeList,
+            currentList: this.data.currentTab === 0 ? activeList : this.data.completedList,
+            isRefreshing: false,
+            isWXRefreshing: false
+          });
+          resolve();
+        } else {
+          wx.showToast({
+            title: res.msg || '鍔犺浇澶辫触',
+            icon: 'none'
+          });
+          reject();
+        }
+      }).catch(err => {
+        console.error('鍔犺浇澶辫触:', err);
+        wx.showToast({
+          title: '鍔犺浇澶辫触',
+          icon: 'none'
         });
-
-        console.log('杞亴璁″垝鏁版嵁锛�', activeList);
-
         this.setData({
-          activeList: activeList,
-          currentList: this.data.currentTab === 0 ? activeList : this.data.completedList,
           isRefreshing: false,
           isWXRefreshing: false
         });
-      } else {
-        wx.showToast({
-          title: res.msg || '鍔犺浇澶辫触',
-          icon: 'none'
-        });
-      }
-    }).catch(err => {
-      wx.showToast({
-        title: '鍔犺浇澶辫触',
-        icon: 'none'
-      });
-      this.setData({
-        isRefreshing: false,
-        isWXRefreshing: false
+        reject();
       });
     });
   },
@@ -91,47 +149,85 @@
    * 鍔犺浇宸插畬鎴愮殑杞亴鏁版嵁
    */
   loadCompletedIrrigationData: function () {
-    get({
-      url: '/wx/plan/getCompletedPlans'
-    }).then(res => {
-      if (res.success) {
-        const completedList = res.content.map(item => {
-          // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆
-          const planState = String(item.planState);
-          return {
-            id: item.planId,
-            title: item.planName,
-            projectName: item.projectName || '鏈垎閰嶉」鐩�',
-            status: planState,
-            planStartTime: item.planStartTime,
-            planStopTime: item.planStopTime,
-            duration: item.duration,
-            startupMode: item.startupMode
+    // 濡傛灉姝e湪鍔犺浇鎴栨病鏈夋洿澶氭暟鎹紝鍒欎笉鍐嶈姹�
+    if (this.data.loadingMore && !this.data.hasMoreData) {
+      return Promise.resolve();
+    }
+    
+    // 璁剧疆鍔犺浇鐘舵��
+    this.setData({
+      loadingMore: true
+    });
+    
+    return new Promise((resolve, reject) => {
+      get({
+        url: '/wx/plan/getCompletedPlans',
+        data: {
+          pageCurr: this.data.pageCurr,
+          pageSize: this.data.pageSize
+        }
+      }).then(res => {
+        if (res.success) {
+          const newCompletedList = res.content.obj ? res.content.obj.map(item => {
+            // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆
+            const planState = String(item.planState);
+            return {
+              id: item.planId,
+              title: item.planName,
+              projectName: item.projectName || '鏈垎閰嶉」鐩�',
+              status: planState,
+              planStartTime: item.planStartTime,
+              planStopTime: item.planStopTime,
+              duration: item.duration,
+              startupMode: item.startupMode
+            };
+          }) : [];
+
+          console.log('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', newCompletedList);
+          
+          // 鑾峰彇鍒嗛〉淇℃伅
+          const pageInfo = {
+            itemTotal: res.content.itemTotal || 0, // 鎬昏褰曟暟
+            pageCurr: res.content.pageCurr || 1,   // 褰撳墠椤电爜
+            pageSize: res.content.pageSize || 20,  // 姣忛〉澶у皬
+            pageTotal: res.content.pageTotal || 1  // 鎬婚〉鏁�
           };
-        });
+          
+          console.log('鍒嗛〉淇℃伅锛�', pageInfo);
 
-        console.log('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', completedList);
+          // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁 - 褰撳墠椤靛皬浜庢�婚〉鏁�
+          const hasMoreData = pageInfo.pageCurr < pageInfo.pageTotal;
 
+          // 鍚堝苟鏁版嵁锛岀涓�椤电洿鎺ユ浛鎹紝涔嬪悗鐨勯〉闈㈣拷鍔�
+          const completedList = this.data.pageCurr === 1 ? 
+            newCompletedList : [...this.data.completedList, ...newCompletedList];
+
+          this.setData({
+            completedList: completedList,
+            currentList: this.data.currentTab === 1 ? completedList : this.data.activeList,
+            isRefreshing: false,
+            isWXRefreshing: false,
+            loadingMore: false,
+            hasMoreData: hasMoreData
+          });
+          resolve();
+        } else {
+          this.setData({
+            loadingMore: false
+          });
+          // 涓嶆樉绀烘彁绀猴紝鍥犱负鍙兘鏄湪鍚庡彴鍔犺浇
+          console.error('鍘嗗彶璁″垝鍔犺浇澶辫触:', res.msg);
+          reject();
+        }
+      }).catch(err => {
+        console.error('鍘嗗彶璁″垝鍔犺浇澶辫触:', err);
         this.setData({
-          completedList: completedList,
-          currentList: this.data.currentTab === 1 ? completedList : this.data.activeList,
           isRefreshing: false,
-          isWXRefreshing: false
+          isWXRefreshing: false,
+          loadingMore: false
         });
-      } else {
-        wx.showToast({
-          title: res.msg || '鍔犺浇澶辫触',
-          icon: 'none'
-        });
-      }
-    }).catch(err => {
-      wx.showToast({
-        title: '鍔犺浇澶辫触',
-        icon: 'none'
-      });
-      this.setData({
-        isRefreshing: false,
-        isWXRefreshing: false
+        // 涓嶆樉绀烘彁绀猴紝鍥犱负鍙兘鏄湪鍚庡彴鍔犺浇
+        reject();
       });
     });
   },
@@ -148,10 +244,58 @@
     const activeList = this.data.activeList || [];
     const completedList = this.data.completedList || [];
     
-    this.setData({
-      currentTab: index,
-      currentList: index === 0 ? activeList : completedList
-    });
+    // 鍒囨崲鏍囩椤垫椂锛岀洿鎺ヤ娇鐢ㄥ凡鍔犺浇鐨勬暟鎹紝涓嶉噸鏂拌姹�
+    if (index === 1) {
+      // 鍒囨崲鍒板巻鍙茶鍒掓爣绛�
+      this.setData({
+        currentTab: index,
+        currentList: completedList
+      });
+      
+      // 濡傛灉鍘嗗彶鍒楄〃涓虹┖锛屾墠杩涜鍔犺浇
+      if (completedList.length === 0) {
+        wx.showLoading({
+          title: '鍔犺浇涓�',
+          mask: true
+        });
+        
+        this.setData({
+          pageCurr: 1,
+          hasMoreData: true,
+          loadingMore: true // 鏄剧ず鍔犺浇鎸囩ず鍣�
+        });
+        
+        this.loadCompletedIrrigationData()
+          .then(() => {
+            wx.hideLoading();
+          })
+          .catch(() => {
+            wx.hideLoading();
+          });
+      }
+    } else {
+      // 鍒囨崲鍒板綋鍓嶇亴婧夎鍒掓爣绛�
+      this.setData({
+        currentTab: index,
+        currentList: activeList
+      });
+      
+      // 濡傛灉褰撳墠鐏屾簤璁″垝鍒楄〃涓虹┖锛屾墠杩涜鍔犺浇
+      if (activeList.length === 0) {
+        wx.showLoading({
+          title: '鍔犺浇涓�',
+          mask: true
+        });
+        
+        this.loadIrrigationData()
+          .then(() => {
+            wx.hideLoading();
+          })
+          .catch(() => {
+            wx.hideLoading();
+          });
+      }
+    }
   },
 
   /**
@@ -363,8 +507,27 @@
       this.setData({
         isRefreshing: true
       });
-      this.loadIrrigationData();
-      this.loadCompletedIrrigationData();
+      
+      // 鏍规嵁褰撳墠鏍囩椤靛彧鍒锋柊瀵瑰簲鐨勬暟鎹�
+      const currentTab = this.data.currentTab;
+      if (currentTab === 0) {
+        // 褰撳墠鏍囩鏄�"褰撳墠鐏屾簤璁″垝"锛屽彧鍒锋柊杩欎釜
+        this.loadIrrigationData()
+          .finally(() => {
+            this.setData({ isRefreshing: false });
+          });
+      } else {
+        // 褰撳墠鏍囩鏄�"鍘嗗彶璁″垝"锛屽皢鍒嗛〉閲嶇疆鍒扮涓�椤靛苟鍒锋柊
+        this.setData({
+          pageCurr: 1,
+          hasMoreData: true
+        });
+        
+        this.loadCompletedIrrigationData()
+          .finally(() => {
+            this.setData({ isRefreshing: false });
+          });
+      }
     }
   },
 
@@ -375,7 +538,45 @@
     this.setData({
       isWXRefreshing: true
     });
-    this.loadIrrigationData();
-    this.loadCompletedIrrigationData();
+    
+    // 鏍规嵁褰撳墠鏍囩椤靛彧鍒锋柊瀵瑰簲鐨勬暟鎹�
+    const currentTab = this.data.currentTab;
+    if (currentTab === 0) {
+      // 褰撳墠鏍囩鏄�"褰撳墠鐏屾簤璁″垝"锛屽彧鍒锋柊杩欎釜
+      this.loadIrrigationData()
+        .finally(() => {
+          this.setData({ isWXRefreshing: false });
+        });
+    } else {
+      // 褰撳墠鏍囩鏄�"鍘嗗彶璁″垝"锛屽皢鍒嗛〉閲嶇疆鍒扮涓�椤靛苟鍒锋柊
+      this.setData({
+        pageCurr: 1,
+        hasMoreData: true
+      });
+      
+      this.loadCompletedIrrigationData()
+        .finally(() => {
+          this.setData({ isWXRefreshing: false });
+        });
+    }
+  },
+  
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom: function() {
+    console.log('瑙﹀簳鍔犺浇鏇村, 褰撳墠鏍囩:', this.data.currentTab);
+    // 褰撳墠鏄凡瀹屾垚鍒楄〃涓旇繕鏈夋洿澶氭暟鎹椂鍔犺浇鏇村
+    if (this.data.currentTab === 1 && this.data.hasMoreData && !this.data.loadingMore) {
+      this.setData({
+        pageCurr: this.data.pageCurr + 1
+      });
+      
+      // 鍔犺浇鏇村鍘嗗彶鏁版嵁
+      this.loadCompletedIrrigationData()
+        .catch(err => {
+          console.error('鍔犺浇鏇村鍘嗗彶鏁版嵁澶辫触:', err);
+        });
+    }
   }
 }) 
\ No newline at end of file

--
Gitblit v1.8.0