From aec1b6ec73897b5e5f3a85f2985447726a399ed0 Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期六, 19 四月 2025 15:56:48 +0800
Subject: [PATCH] 更新灌溉计划页面,添加灌溉计划列表刷新标记,优化项目选择器和时间选择器的逻辑;更新样式以提升用户体验,确保在切换标签时只加载必要的数据。

---
 pages/irrigationDetail/irrigationDetail.js |  131 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 121 insertions(+), 10 deletions(-)

diff --git a/pages/irrigationDetail/irrigationDetail.js b/pages/irrigationDetail/irrigationDetail.js
index d8a1a92..fff0558 100644
--- a/pages/irrigationDetail/irrigationDetail.js
+++ b/pages/irrigationDetail/irrigationDetail.js
@@ -12,7 +12,10 @@
     planId: '',
     planStatusText: '',
     planStatusClass: '',
-    failureCount: 0
+    failureCount: 0,
+    realStopTime: '',
+    originalStatus: '',
+    currentStatus: null
   },
 
   /**
@@ -23,7 +26,35 @@
       this.setData({
         planId: options.planId
       });
-      this.fetchIrrigationData(options.planId);
+      
+      // 鑾峰彇鏈�鏂扮姸鎬�
+      this.fetchPlanLatestState(options.planId).then(res => {
+        if (res.success) {
+          const currentStatus = res.content;
+          this.setData({
+            currentStatus: currentStatus,
+            originalStatus: currentStatus
+          });
+          
+          // 鏍规嵁鏈�鏂扮姸鎬佽皟鐢ㄧ浉搴旂殑鎺ュ彛
+          if (currentStatus === 5) {
+            this.fetchTerminatedIrrigationData(options.planId);
+          } else {
+            this.fetchNormalIrrigationData(options.planId);
+          }
+        } else {
+          wx.showToast({
+            title: res.msg || '鑾峰彇鐘舵�佸け璐�',
+            icon: 'none'
+          });
+        }
+      }).catch(err => {
+        console.error('鑾峰彇鐘舵�佸け璐ワ細', err);
+        wx.showToast({
+          title: '鑾峰彇鐘舵�佸け璐�',
+          icon: 'none'
+        });
+      });
     } else {
       wx.showToast({
         title: '缂哄皯璁″垝ID',
@@ -36,9 +67,9 @@
   },
 
   /**
-   * 鑾峰彇鐏屾簤璁″垝鏁版嵁
+   * 鑾峰彇甯歌鐏屾簤璁″垝璇︾粏鏁版嵁
    */
-  fetchIrrigationData: function(planId) {
+  fetchNormalIrrigationData: function(planId) {
     const { get } = require('../../api/request');
     
     const data = {
@@ -69,6 +100,57 @@
   },
 
   /**
+   * 鑾峰彇宸茬粓姝㈢亴婧夎鍒掕缁嗘暟鎹�
+   */
+  fetchTerminatedIrrigationData: function(planId) {
+    const { get } = require('../../api/request');
+    
+    const data = {
+      planId: planId || this.data.planId,
+    };
+    
+    get({
+      url: 'wx/plan/getTerminateResults',
+      isShowLoding: true,
+      useParams: true,
+      data: data
+    }).then(res => {
+      if (res.success) {
+        this.processIrrigationData(res.content);
+      } else {
+        wx.showToast({
+          title: res.msg || '鑾峰彇鏁版嵁澶辫触',
+          icon: 'none'
+        });
+      }
+    }).catch(err => {
+      console.error('璇锋眰澶辫触锛�', err);
+      wx.showToast({
+        title: '璇锋眰澶辫触',
+        icon: 'none'
+      });
+    });
+  },
+
+  /**
+   * 鑾峰彇璁″垝鏈�鏂扮姸鎬�
+   */
+  fetchPlanLatestState: function(planId) {
+    const { get } = require('../../api/request');
+    
+    const data = {
+      planId: planId || this.data.planId,
+    };
+    
+    return get({
+      url: 'wx/plan/getPlanLatestState',
+      isShowLoding: true,
+      useParams: true,
+      data: data
+    });
+  },
+
+  /**
    * 澶勭悊鎺ュ彛杩斿洖鐨勬暟鎹�
    */
   processIrrigationData: function(data) {
@@ -78,7 +160,9 @@
     const statusMap = {
       2: {status: 'pending', statusText: '鏈紑濮�'},
       3: {status: 'in_progress', statusText: '鐏屾簤涓�'},
-      4: {status: 'completed', statusText: '宸茬粨鏉�'}
+      4: {status: 'completed', statusText: '宸茬粨鏉�'},
+      5: {status: 'terminated', statusText: '涓�斿叧闃�'},
+      6: {status: 'canceled', statusText: '鍙栨秷寮�闃�'}
     };
 
     // 澶勭悊璁″垝鐘舵��
@@ -140,6 +224,7 @@
       projectName: data.projectName,
       startTime: data.planStartTime,
       stopTime: data.planStopTime,
+      realStopTime: data.realStopTime || '',
       groupList: groupList,
       planStatusText: planStatusText,
       planStatusClass: planStatusClass,
@@ -182,15 +267,41 @@
     this.setData({
       isRefreshing: true
     });
-
-    this.fetchIrrigationData(this.data.planId);
     
-    // 瀹屾垚鍒锋柊
-    setTimeout(() => {
+    // 鑾峰彇鏈�鏂扮姸鎬佸苟鍒锋柊鏁版嵁
+    this.fetchPlanLatestState(this.data.planId).then(res => {
+      if (res.success) {
+        const currentStatus = res.content;
+        this.setData({
+          currentStatus: currentStatus
+        });
+        
+        if (currentStatus === 5) {
+          this.fetchTerminatedIrrigationData(this.data.planId);
+        } else {
+          this.fetchNormalIrrigationData(this.data.planId);
+        }
+      } else {
+        wx.showToast({
+          title: res.msg || '鑾峰彇鐘舵�佸け璐�',
+          icon: 'none'
+        });
+      }
+      
+      // 瀹屾垚鍒锋柊
       this.setData({
         isRefreshing: false
       });
-    }, 1000);
+    }).catch(err => {
+      console.error('鑾峰彇鐘舵�佸け璐ワ細', err);
+      wx.showToast({
+        title: '鑾峰彇鐘舵�佸け璐�',
+        icon: 'none'
+      });
+      this.setData({
+        isRefreshing: false
+      });
+    });
   },
 
   /**

--
Gitblit v1.8.0