From 50433e86b718fab0d94ea1410724b29b5f53fa0a Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期三, 09 四月 2025 15:11:26 +0800
Subject: [PATCH] 更新SVG图标样式,优化灌溉计划和取水口页面逻辑,添加状态处理和信息提示功能;调整界面样式,提升用户体验。

---
 pages/waterIntake/waterIntake.js |  259 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 237 insertions(+), 22 deletions(-)

diff --git a/pages/waterIntake/waterIntake.js b/pages/waterIntake/waterIntake.js
index 7059ee3..9305679 100644
--- a/pages/waterIntake/waterIntake.js
+++ b/pages/waterIntake/waterIntake.js
@@ -40,6 +40,27 @@
     openTimeText: "",
     openTime: "",
     irrigateProfile: [], //鑾峰彇鎵�閫夌亴婧夋柟寮忕殑璇︾粏鏁版嵁
+    dialog_mode: true,
+    dialog_time: false,
+    dialog_water: false,
+    group_time: false, //鏄惁鏄剧ず閫夋嫨鍒嗛挓鎴栧皬鏃剁殑鍗曢�夋
+    openTime: "", //璁″垝寮�娉电殑寮�濮嬫椂闂�
+    openTimeText: "",
+    isShowOpenTime: "false",
+    showForceConfirm: false,
+    showErrorDialog: false, //閿欒鎻愮ず
+    errorData: "",
+    confirmBtn: {
+      content: '纭'
+    },
+    radioValue: "0", //寮�闃�鏂瑰紡閫変腑鐨勭被鍨�
+    costiomTime: "", //鑷畾涔夌亴婧夋椂闂�
+    waterAmount: 0, //瀹氶噺寮�闃�鐨勬按閲�
+    costiomWater: "", //杈撳叆鐨勮嚜瀹氫箟姘撮噺
+    isWXRefreshing: false,
+    irrigateProfile: [], //鑾峰彇鎵�閫夌亴婧夋柟寮忕殑璇︾粏鏁版嵁
+    datetimeVisible: false,
+ 
   },
 
   // 鍒囨崲 Tabs
@@ -73,10 +94,13 @@
   choseCard(event) {
     //鏄剧ず浜屾纭寮圭獥
     this.setData({
-      showConfirm: true,
+    //   showConfirm: true,
       choseItem: event.currentTarget.dataset.item,
       allWaterPoints: []
+      
     })
+   this.initDialogData();
+
     //  console.log(intakeId);
     //   wx.navigateTo({
     //     url: '/pages/openCard/openCard?intakeId='+intakeId,
@@ -100,9 +124,9 @@
     });
     const app = getApp();
     const data = {
-      intakeId: intakeId, //鍙栨按鍙D
-      // vcId: vcId, //铏氭嫙鍗D
-      operator: app.globalData.operator, //鎿嶄綔鍛�
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
+    //   vcId:  app.globalData.vcId, //铏氭嫙鍗D
+      operator: app.globalData.clientId, //鎿嶄綔鍛�
       forceOpen: !!isforce // 浣跨敤閫昏緫闈炴搷浣滅 !! 鏉ョ‘淇� isForce 鏄竷灏斿��  
     };
     post({
@@ -110,7 +134,6 @@
       data: data,
       timeout: 180000
     }).then(response => {
-
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
@@ -119,7 +142,6 @@
       wx.reLaunch({
         url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
       });
-
     }).catch(error => {
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
       wx.hideLoading();
@@ -130,10 +152,18 @@
           forceIntakeId: intakeId,
           showForceConfirm: true
         })
+      } else if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
       } else {
         this.setData({
           showErrorDialog: true,
-          errorData: error.msg
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
         })
       }
     });
@@ -243,7 +273,7 @@
     get({
         url: 'wx/intake/used_intakes',
         data: {
-          operatorId: getApp().globalData.operator
+          operatorId: getApp().globalData.clientId
         }
       })
       .then((data) => {
@@ -283,10 +313,14 @@
     this.getcommonWaterPoints();
   },
   confirmDialog() {
+    // this.setData({
+    //   showConfirm: false
+    // })
+    // this.postOpenValva(this.data.choseItem.intakeId);
     this.setData({
-      showConfirm: false
+        showConfirm: false
     })
-    this.postOpenValva(this.data.choseItem.intakeId);
+    this.initDialogData();
   },
   closeDialog() {
     this.setData({
@@ -476,15 +510,15 @@
       mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
     });
     const data = {
-      intakeId: this.data.intakeId, //鍙栨按鍙D
-      // vcId: this.data.vcId, //铏氭嫙鍗D
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
       minutes: this.data.postMinutes, //鍒嗛挓
       operator: app.globalData.clientId, //鎿嶄綔鍛�
       plannedOpenTime: this.data.openTime
     };
     post({
       url: "wx/valve/planed_open_timed_close",
-      data: data
+      data: data,
+      timeout: 180000
     }).then(response => {
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
@@ -499,10 +533,20 @@
       wx.hideLoading();
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
-      this.setData({
-        showErrorDialog: true,
-        errorData: error.msg
-      })
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
     });
   },
   //瀹氭椂鍏抽榾寮忓紑闃�
@@ -513,14 +557,14 @@
       mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
     });
     const data = {
-      intakeId: this.data.intakeId, //鍙栨按鍙D
-      // vcId: this.data.vcId, //铏氭嫙鍗D
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
       minutes: this.data.postMinutes, //鍒嗛挓
       operator: app.globalData.clientId //鎿嶄綔鍛�
     };
     post({
       url: "wx/valve/timed_close",
-      data: data
+      data: data,
+      timeout: 180000
     }).then(response => {
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
@@ -535,10 +579,181 @@
       wx.hideLoading();
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
+    });
+  },
+    // 閫氳繃灏忔椂杞崲鎴愬垎閽�
+    hourToMinutes(hours) {
+        // 妫�鏌ヨ緭鍏ユ槸鍚﹀悎娉�
+        if (isNaN(hours) || hours < 0) {
+          console.error('璇疯緭鍏ユ湁鏁堢殑灏忔椂鏁�');
+          return null;
+        }
+        // 灏嗗皬鏃惰浆鎹负鍒嗛挓
+        const minutes = hours * 60;
+        return minutes;
+      },
+      minutesToHours(minutes) {
+        // 妫�鏌ヨ緭鍏ユ槸鍚﹀悎娉�
+        if (isNaN(minutes) || hours < 0) {
+          console.error('璇疯緭鍏ユ湁鏁堢殑灏忔椂鏁�');
+          return null;
+        }
+        // 灏嗗皬鏃惰浆鎹负鍒嗛挓
+        const hours = minutes / 60;
+        return hours;
+      },
+        // 閫夋嫨姘撮噺鍚庣殑澶勭悊
+  handleWaterWrapperTap(e) {
+    const index = e.currentTarget.dataset.index;
+    console.log(index)
+    if (index !== undefined) {
+      this.data.waterAmount = parseInt(this.data.irrigateProfile[index].defaultValue)
       this.setData({
-        showErrorDialog: true,
-        errorData: error.msg
+        activeIndex: parseInt(index),
+        costiomWater: ""
+      });
+    }
+  }, //鏄剧ず鏃堕棿閫夋嫨鍣�
+  showPicker(e) {
+    this.setData({
+      datetime: new Date().getTime(),
+      datetimeVisible: true,
+      isShowOpenTime: true
+    });
+  },
+  onConfirm(e) {
+    const {
+      value
+    } = e?.detail;
+    console.log(value);
+    this.setData({
+      openTime: value,
+      openTimeText: "璁″垝寮�闃�鏃堕棿锛�" + value
+    })
+  },  hidePicker() {
+    this.setData({
+      isShowOpenTime: false,
+      isOpenTiming: false,
+      radioValue: "0"
+    })
+  }, // 瀹氶噺寮�娉垫寜閽�
+  btnOpenOnWater() {
+    if (this.data.waterAmount > 0) {
+      if (this.data.isOpenTiming) {
+        this.quantifyOpenTime();
+      } else {
+        this.quantifyOpen();
+      }
+    } else {
+      wx.showToast({
+        icon: 'error',
+        title: '璇烽�夋嫨鎴栬緭鍏ョ亴婧夋椂闂达紒',
       })
+    }
+  },//瀹氶噺寮�闃�寮忚鍒掑紑闃�
+  quantifyOpenTime() {
+    const app = getApp();
+    wx.showLoading({
+      title: '姝e湪閫氫俊璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const data = {
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
+      waterAmount: this.data.waterAmount, //姘撮噺
+      operator: app.globalData.clientId, //鎿嶄綔鍛�
+      plannedOpenTime: this.data.openTime
+    };
+    post({
+      url: "wx/valve/planed_open_quantify_close",
+      data: data,
+      timeout: 180000
+    }).then(response => {
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      //瀹屾垚鍚庡洖鍒伴椤�
+      wx.reLaunch({
+        url: '/pages/home/home?param=2' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+      });
+    }).catch(error => {
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
+    });
+  },//瀹氶噺寮�闃�
+  quantifyOpen() {
+    const app = getApp();
+    wx.showLoading({
+      title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const data = {
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
+      waterAmount: this.data.waterAmount, //姘撮噺
+      operator: app.globalData.clientId //鎿嶄綔鍛�
+    };
+    post({
+      url: "wx/valve/quantify_close",
+      data: data,
+      timeout: 180000
+    }).then(response => {
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      //瀹屾垚鍚庡洖鍒伴椤�
+      wx.reLaunch({
+        url: '/pages/home/home?param=1' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+      });
+    }).catch(error => {
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
     });
   },
 })
\ No newline at end of file

--
Gitblit v1.8.0