From 6ae0924bdb44e8b1f569b6f1cdb6ff403e1d2ce3 Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期一, 28 四月 2025 10:15:33 +0800
Subject: [PATCH] 优化首页和灌溉页面的样式,添加当前项目显示;重构项目配置,确保项目登录需求一致性;更新登录页面逻辑,简化项目选择和信息展示,提升用户体验。

---
 pages/irrigation/irrigation.js |  449 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 350 insertions(+), 99 deletions(-)

diff --git a/pages/irrigation/irrigation.js b/pages/irrigation/irrigation.js
index e4adbc2..1a6493f 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,114 @@
         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();
+    // 妫�鏌ュ叏灞�鍙橀噺锛屽垽鏂槸鍚﹂渶瑕佸埛鏂板垪琛ㄥ苟鍒囨崲鍒板綋鍓嶈鍒�
+    const app = getApp();
+    
+    // 鍒锋柊鎵�鏈夋暟鎹紙褰撳墠璁″垝鍜屽巻鍙茶鍒掞級锛岀‘淇濇暟鎹渶鏂�
+    wx.showLoading({
+      title: '鍒锋柊鏁版嵁涓�',
+      mask: true
+    });
+    
+    // 鍚屾椂鑾峰彇褰撳墠璁″垝鍜屽巻鍙茶鍒掓暟鎹�
+    Promise.all([
+      this.loadIrrigationData(),
+      this.loadCompletedIrrigationData(true) // 浼犲叆true琛ㄧず鏄噸鏂板姞杞界涓�椤�
+    ]).then(() => {
+      wx.hideLoading();
+      
+      // 濡傛灉闇�瑕佸埛鏂板苟鍒囨崲鍒板綋鍓嶈鍒�
+      if (app.globalData.needRefreshIrrigationList) {
+        // 閲嶇疆鍏ㄥ眬鍙橀噺
+        app.globalData.needRefreshIrrigationList = false;
+        
+        console.log('妫�娴嬪埌闇�瑕佸埛鏂扮亴婧夎鍒掑垪琛�');
+        
+        // 鍒囨崲鍒板綋鍓嶇亴婧夎鍒掓爣绛鹃〉
+        if (this.data.currentTab !== 0) {
+          this.setData({
+            currentTab: 0,
+            currentList: this.data.activeList
+          });
+        }
+      }
+    }).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();
       });
     });
   },
@@ -90,48 +146,94 @@
   /**
    * 鍔犺浇宸插畬鎴愮殑杞亴鏁版嵁
    */
-  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
-          };
-        });
-
-        console.log('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', completedList);
-
-        this.setData({
-          completedList: completedList,
-          currentList: this.data.currentTab === 1 ? completedList : this.data.activeList,
-          isRefreshing: false,
-          isWXRefreshing: false
-        });
-      } else {
-        wx.showToast({
-          title: res.msg || '鍔犺浇澶辫触',
-          icon: 'none'
-        });
-      }
-    }).catch(err => {
-      wx.showToast({
-        title: '鍔犺浇澶辫触',
-        icon: 'none'
-      });
+  loadCompletedIrrigationData: function (isFirstPage) {
+    // 濡傛灉姝e湪鍔犺浇鎴栨病鏈夋洿澶氭暟鎹紝鍒欎笉鍐嶈姹�
+    if (this.data.loadingMore && !this.data.hasMoreData) {
+      return Promise.resolve();
+    }
+    
+    // 濡傛灉鏄噸鏂板姞杞界涓�椤碉紝閲嶇疆椤电爜鍜岀姸鎬�
+    if (isFirstPage) {
       this.setData({
-        isRefreshing: false,
-        isWXRefreshing: false
+        pageCurr: 1,
+        hasMoreData: true
+      });
+    }
+    
+    // 璁剧疆鍔犺浇鐘舵��
+    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);
+
+          // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁 - 褰撳墠椤靛皬浜庢�婚〉鏁�
+          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({
+          isRefreshing: false,
+          isWXRefreshing: false,
+          loadingMore: false
+        });
+        // 涓嶆樉绀烘彁绀猴紝鍥犱负鍙兘鏄湪鍚庡彴鍔犺浇
+        reject();
       });
     });
   },
@@ -148,10 +250,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();
+          });
+      }
+    }
   },
 
   /**
@@ -176,7 +326,7 @@
     
     // 瀵艰埅鍒扮亴婧夎鎯呴〉闈紝骞朵紶閫掑弬鏁�
     wx.navigateTo({
-      url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true`
+      url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true&status=${status}`
     });
   },
 
@@ -197,7 +347,8 @@
               planId: id,
               operatorId: app.globalData.clientId
             },
-            isShowLoding: true
+            isShowLoding: true,
+            timeout: 180000
           }).then(res => {
             if (res.success) {
               wx.showToast({
@@ -214,10 +365,17 @@
             }
           }).catch(err => {
             console.error('鍙戝竷澶辫触锛�', err);
-            wx.showToast({
-              title: '鍙戝竷澶辫触',
-              icon: 'none'
-            });
+            if(err.code==='1003'){
+              wx.showToast({
+                title: err.msg || '鍙戝竷澶辫触',
+                icon: 'none'
+              });
+            }else{
+              wx.showToast({
+                title: '鍙戝竷澶辫触',
+                icon: 'none'
+              });
+            }
           });
         }
       }
@@ -292,15 +450,21 @@
           planId: planID,
           operatorId: app.globalData.clientId
         },
-        isShowLoding: true
+        isShowLoding: true,
+        timeout: 180000
       }).then(res => {
         if (res.success) {
           wx.showToast({
             title: '缁堟鎴愬姛',
             icon: 'success'
           });
-          // 鍒锋柊鏁版嵁
-          this.loadIrrigationData();
+          // 鍚屾椂鍒锋柊褰撳墠璁″垝鍒楄〃鍜屽巻鍙茶鍒掑垪琛�
+          Promise.all([
+            this.loadIrrigationData(),
+            this.loadCompletedIrrigationData(true) // 浼犲叆true琛ㄧず閲嶆柊鍔犺浇绗竴椤�
+          ]).catch(err => {
+            console.error('鍒锋柊鏁版嵁澶辫触:', err);
+          });
         } else {
           wx.showToast({
             title: res.msg || '缁堟澶辫触',
@@ -363,8 +527,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 +558,75 @@
     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);
+        });
+    }
+  },
+
+  /**
+   * 浠庡垱寤虹亴婧夎鍒掗〉闈㈣繑鍥炴椂锛屽垏鎹㈠埌褰撳墠璁″垝鍒楄〃骞跺埛鏂版暟鎹�
+   */
+  switchToCurrentPlans: function() {
+    console.log('浠庡垱寤洪〉闈㈣繑鍥烇紝鍒囨崲鍒板綋鍓嶈鍒掑垪琛ㄥ苟鍒锋柊');
+    
+    // 濡傛灉褰撳墠涓嶅湪 "褰撳墠鐏屾簤璁″垝" 鏍囩椤碉紝鍏堝垏鎹㈠埌璇ユ爣绛鹃〉
+    if (this.data.currentTab !== 0) {
+      this.setData({
+        currentTab: 0,
+        currentList: this.data.activeList
+      });
+    }
+    
+    // 鏄剧ず鍔犺浇鎻愮ず
+    wx.showLoading({
+      title: '鍒锋柊鏁版嵁涓�',
+      mask: true
+    });
+    
+    // 鍒锋柊褰撳墠鐏屾簤璁″垝鏁版嵁
+    this.loadIrrigationData()
+      .then(() => {
+        wx.hideLoading();
+      })
+      .catch(() => {
+        wx.hideLoading();
+      });
   }
 }) 
\ No newline at end of file

--
Gitblit v1.8.0