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 |  464 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 378 insertions(+), 86 deletions(-)

diff --git a/pages/irrigation/irrigation.js b/pages/irrigation/irrigation.js
index 248efcc..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,59 +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 => ({
-          id: item.planId,
-          title: item.planName,
-          projectName: item.projectName || '鏈垎閰嶉」鐩�',
-          status: item.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);
+          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'
+        });
         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();
       });
     });
   },
@@ -87,43 +149,85 @@
    * 鍔犺浇宸插畬鎴愮殑杞亴鏁版嵁
    */
   loadCompletedIrrigationData: function () {
-    get({
-      url: '/wx/plan/getCompletedPlans'
-    }).then(res => {
-      if (res.success) {
-        const completedList = res.content.map(item => ({
-          id: item.planId,
-          title: item.planName,
-          projectName: item.projectName || '鏈垎閰嶉」鐩�',
-          status: item.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('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', completedList);
+          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);
 
+          // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁 - 褰撳墠椤靛皬浜庢�婚〉鏁�
+          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();
       });
     });
   },
@@ -140,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();
+          });
+      }
+    }
   },
 
   /**
@@ -153,9 +305,22 @@
     const id = e.currentTarget.dataset.id;
     const status = e.currentTarget.dataset.status;
     
+    console.log('鐐瑰嚮椤圭洰鐘舵��:', status, '绫诲瀷:', typeof status);
+    
+    // 鍒ゆ柇璁″垝鐘舵�侊紝濡傛灉鏄�1(鏈彂甯�)锛屽垯鎻愮ず鐢ㄦ埛
+    if (status === '1' || status === 1) {
+      wx.showModal({
+        title: '鎻愮ず',
+        content: '褰撳墠璁″垝鏈彂甯冿紝璇峰彂甯冨悗鏌ョ湅',
+        showCancel: false,
+        confirmText: '纭'
+      });
+      return;
+    }
+    
     // 瀵艰埅鍒扮亴婧夎鎯呴〉闈紝骞朵紶閫掑弬鏁�
     wx.navigateTo({
-      url: `/pages/irrigationDetail/irrigationDetail?id=${id}&fromList=true`
+      url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true`
     });
   },
 
@@ -213,17 +378,87 @@
       content: '纭畾瑕佺粓姝㈣杞亴璁″垝鍚楋紵',
       success: (res) => {
         if (res.confirm) {
-          // 杩欓噷搴旇璋冪敤API缁堟杞亴璁″垝
-          wx.showToast({
-            title: '宸茬粓姝�',
-            icon: 'success'
-          });
-          // 鍒锋柊鏁版嵁
-          this.loadIrrigationData();
+            this.postStop(id)
         }
       }
     });
   },
+
+  /**
+   * 鐐瑰嚮鍒犻櫎鎸夐挳
+   */
+  onDelete: function (e) {
+    const id = e.currentTarget.dataset.id;
+    wx.showModal({
+      title: '纭鍒犻櫎',
+      content: '纭畾瑕佸垹闄よ杞亴璁″垝鍚楋紵',
+      success: (res) => {
+        if (res.confirm) {
+          // 璋冪敤鍒犻櫎鎺ュ彛
+          post({
+            url: '/wx/plan/deletePlan',
+            data: {
+              planId: id,
+              operatorId: app.globalData.clientId
+            },
+            isShowLoding: true
+          }).then(res => {
+            if (res.success) {
+              wx.showToast({
+                title: '鍒犻櫎鎴愬姛',
+                icon: 'success'
+              });
+              // 鍒锋柊鏁版嵁
+              this.loadIrrigationData();
+            } else {
+              wx.showToast({
+                title: res.msg || '鍒犻櫎澶辫触',
+                icon: 'none'
+              });
+            }
+          }).catch(err => {
+            console.error('鍒犻櫎澶辫触锛�', err);
+            wx.showToast({
+              title: '鍒犻櫎澶辫触',
+              icon: 'none'
+            });
+          });
+        }
+      }
+    });
+  },
+  
+  //缁堟杞亴璁″垝
+   postStop(planID){
+    post({
+        url: '/wx/plan/terminatePlan',
+        data: {
+          planId: planID,
+          operatorId: app.globalData.clientId
+        },
+        isShowLoding: true
+      }).then(res => {
+        if (res.success) {
+          wx.showToast({
+            title: '缁堟鎴愬姛',
+            icon: 'success'
+          });
+          // 鍒锋柊鏁版嵁
+          this.loadIrrigationData();
+        } else {
+          wx.showToast({
+            title: res.msg || '缁堟澶辫触',
+            icon: 'none'
+          });
+        }
+      }).catch(err => {
+        console.error('缁堟澶辫触锛�', err);
+        wx.showToast({
+          title: '缁堟澶辫触',
+          icon: 'none'
+        });
+      });
+   },
 
   /**
    * 鐐瑰嚮绔嬪嵆鎵ц鎸夐挳
@@ -272,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 });
+          });
+      }
     }
   },
 
@@ -284,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