From 4a33335da6f6ccbb13427d317d23b0c74d019fbb Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 14 四月 2025 17:56:16 +0800
Subject: [PATCH] 新增测试数据功能,允许在首页和取水口页面使用模拟数据进行测试,优化用户体验。

---
 pages/home/home.js |  260 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 232 insertions(+), 28 deletions(-)

diff --git a/pages/home/home.js b/pages/home/home.js
index e311702..f6cf3e9 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -34,6 +34,8 @@
     showInfoDialog: false,
     showTipDialog: false,
     options: '',
+    showUnBind: false,
+    useTestData: false  // 鏂板锛氭槸鍚︿娇鐢ㄦ祴璇曟暟鎹殑鏍囧織
   },
 
   openValve: function (e) {
@@ -57,6 +59,14 @@
     }).exec();
   },
   startPullDownRefresh() {
+    if (this.data.useTestData) {
+      this.setData({
+        isRefreshing: true
+      });
+      this.getOpenList();
+      return;
+    }
+    
     if (this.data.isLogin) {
       if (!this.data.isWXRefreshing) {
         var self = this;
@@ -91,7 +101,7 @@
   onLoad(options) {
     //褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
     console.log("onLoad锛�" + options.param);
-    if (options.param) {
+    if (options.param === "1" || options.param === "2") {
       this.setData({
         options: options,
         isLogin: true,
@@ -104,6 +114,17 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
    */
   onReady() {
+    // 鐩存帴鍔犺浇娴嬭瘯鏁版嵁
+    if (this.data.useTestData) {
+      this.setData({
+        isLogin: true, // 璁剧疆涓哄凡鐧诲綍鐘舵�佷互渚胯兘鐪嬪埌娴嬭瘯鏁版嵁
+        userName: "娴嬭瘯鐢ㄦ埛",
+        userPhone: "135****6789"
+      });
+      this.getOpenList();
+      return;
+    }
+
     //鍒ゆ柇鏈湴鏄惁淇濆瓨sessionId
     if (storage.isHasKeySync("sessionId")) {
       const app = getApp();
@@ -113,40 +134,51 @@
           isLogin: true
         })
         if (app.globalData.sessionId) {
-          this.getOpenList();
           this.getUserDataBySession();
         }
       }).catch((err) => {});
       storage.getItem('clientId').then((data) => {
         app.globalData.clientId = data;
+        this.getOpenList();
       }).catch((err) => {});
     } else {
       //鏈湴娌℃湁缂撳瓨寰俊鐧诲綍
       this.wxLogin();
     }
-    if (this.data.options.param) {
+    if (this.data.options.param === "1") {
       this.setData({
-
         showTipDialog: true,
-        tipData: "寮�闃�鍛戒护涓嬪彂鎴愬姛锛岀害20-60绉掑悗鍙埛鏂板揩閫熷叧闃�鍒楄〃鏌ョ湅鎵ц缁撴灉銆�"
+        tipData: "寮�闃�鍛戒护涓嬪彂鎴愬姛锛屽洜寮�闃�闇�瑕佹椂闂达紝绾�20-60绉掑悗鍙埛鏂板揩閫熷叧闃�鍒楄〃鏌ョ湅鎵ц缁撴灉銆�"
+      })
+      setTimeout(() => {
+        this.getOpenList();
+      }, 20000)
+
+    } else if (this.data.options.param === "2") {
+      this.setData({
+        showTipDialog: true,
+        tipData: "棰勭害寮�闃�鍛戒护涓嬪彂鎴愬姛锛屽綋鍒拌揪棰勭害鏃堕棿骞朵笖鎴愬姛寮�闃�鍚庡揩閫熷叧闃�鍒楄〃浼氭樉绀烘湭鍏抽榾璁板綍"
       })
       this.getOpenList();
     }
   },
   wxLogin() {
-    const that = this;
-    wx.login({
-      success: function (res) {
-        if (res.code) {
-          var code = res.code;
-          console.log(code);
-          // 灏哻ode鍙戦�佸埌鏈嶅姟鍣ㄨ幏鍙杘penid
-          that.codeLogin(code);
-        } else {
-          console.log('鐧诲綍澶辫触锛�' + res.errMsg);
+    // if (!this.data.isLogin) {
+      const that = this;
+      wx.login({
+        success: function (res) {
+          if (res.code) {
+            var code = res.code;
+            console.log(code);
+            // 灏哻ode鍙戦�佸埌鏈嶅姟鍣ㄨ幏鍙杘penid
+            that.codeLogin(code);
+          } else {
+            console.log('鐧诲綍澶辫触锛�' + res.errMsg);
+          }
         }
-      }
-    });
+      });
+    // }
+
   },
   //寰俊code鐧诲綍
   codeLogin(codeData) {
@@ -268,7 +300,8 @@
     this.setData({
       showForceConfirm: false,
       showConfirm: false,
-      showTipDialog: false
+      showTipDialog: false,
+      showUnBind: false
     });
   },
   /**
@@ -308,7 +341,9 @@
           showTipDialog: true,
           tipData: "鍏抽榾鍛戒护涓嬪彂鎴愬姛锛岀害20-60绉掑悗鍙埛鏂板揩閫熷叧闃�鍒楄〃鏌ョ湅鎵ц缁撴灉銆�"
         })
-        this.getOpenList();
+        setTimeout(() => {
+          this.getOpenList();
+        }, 40000)
       } else {
         wx.showToast({
           title: '鍛戒护鎵ц澶辫触',
@@ -329,15 +364,88 @@
     });
   },
   /**
+   * 鐢熸垚娴嬭瘯鏁版嵁 - 鏂板鍑芥暟
+   */
+  generateTestData() {
+    const now = new Date();
+    const year = now.getFullYear();
+    const month = String(now.getMonth() + 1).padStart(2, '0');
+    const day = String(now.getDate()).padStart(2, '0');
+    const hours = String(now.getHours()).padStart(2, '0');
+    const minutes = String(now.getMinutes()).padStart(2, '0');
+    const seconds = String(now.getSeconds()).padStart(2, '0');
+
+    const dateString = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    const orderBase = `TEST-${year}${month}${day}-`;
+
+    const testData = [
+      {
+        intakeNum: "鍙栨按鍙�1",
+        isOnLine: true,
+        dt: dateString,
+        waterInstant: "1.23",
+        orderNo: orderBase + "001",
+        rtuAddr: "TEST-RTU-001",
+        vcNum: "TEST-VC-001",
+        planned: false,
+        time: this.extractTime(dateString),
+        deleteText: "鍒犻櫎",
+        displayText: "鍏抽榾",
+        isOpen: true
+      },
+      {
+        intakeNum: "鍙栨按鍙�2",
+        isOnLine: false,
+        dt: dateString,
+        waterInstant: "2.45",
+        orderNo: orderBase + "002",
+        rtuAddr: "TEST-RTU-002",
+        vcNum: "TEST-VC-002",
+        planned: false,
+        time: this.extractTime(dateString),
+        deleteText: "鍒犻櫎",
+        displayText: "鍏抽榾",
+        isOpen: true
+      },
+      {
+        intakeNum: "鍙栨按鍙�3",
+        isOnLine: true,
+        dt: dateString,
+        waterInstant: "3.67",
+        orderNo: orderBase + "003",
+        rtuAddr: "TEST-RTU-003",
+        vcNum: "TEST-VC-003",
+        planned: true,
+        time: this.extractTime(dateString),
+        deleteText: "鍒犻櫎",
+        displayText: "鍙栨秷",
+        isOpen: true
+      }
+    ];
+    return testData;
+  },
+  /**
    * 鑾峰彇涓哄叧闃�璁板綍
    */
   getOpenList() {
     if (this.data.isLogin) {
+      // 濡傛灉璁剧疆浜嗕娇鐢ㄦ祴璇曟暟鎹紝鍒欑洿鎺ヤ娇鐢ㄦ祴璇曟暟鎹�
+      if (this.data.useTestData) {
+        const testData = this.generateTestData();
+        this.setData({
+          listData: testData,
+          isRefreshing: false,
+          isWXRefreshing: false,
+        });
+        this.updateDisplayText();
+        return;
+      }
+
       const app = getApp();
       const params = {
         url: 'wx/valve/get',
         data: {
-          operator: app.globalData.sessionId
+          operator: app.globalData.clientId
         }
       };
       get(params).then(data => {
@@ -379,6 +487,30 @@
     this.setData({
       showConfirm: false
     });
+    if (this.data.useTestData) {
+      // 娴嬭瘯鏁版嵁妯″紡涓嬶紝妯℃嫙鍏抽榾鎿嶄綔
+      wx.showLoading({
+        title: '姝e湪鍏抽榾璇风◢鍊�...', 
+        mask: true
+      });
+      
+      // 妯℃嫙璇锋眰寤惰繜
+      setTimeout(() => {
+        wx.hideLoading();
+        
+        // 浠庡垪琛ㄤ腑绉婚櫎琚叧闂殑闃�闂�
+        const updatedList = this.data.listData.filter(item => 
+          item.orderNo !== this.data.myItem.orderNo
+        );
+        
+        this.setData({
+          listData: updatedList,
+          showTipDialog: true,
+          tipData: "鍏抽榾鍛戒护涓嬪彂鎴愬姛锛岀害20-60绉掑悗鍙埛鏂板揩閫熷叧闃�鍒楄〃鏌ョ湅鎵ц缁撴灉銆�"
+        });
+      }, 1500);
+      return;
+    }
     this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum);
   },
   //鏍规嵁session鑾峰彇鍐滄埛淇℃伅
@@ -548,13 +680,40 @@
   onDelete(e) {
     const item = e.currentTarget.dataset.item;
     const that = this;
+    
+    if (this.data.useTestData) {
+      // 娴嬭瘯鏁版嵁妯″紡涓嬶紝妯℃嫙鍒犻櫎鎿嶄綔
+      wx.showLoading({
+        title: '姝e湪寮哄埗鍒犻櫎璇风◢鍊�...', 
+        mask: true 
+      });
+      
+      // 妯℃嫙璇锋眰寤惰繜
+      setTimeout(() => {
+        wx.hideLoading();
+        
+        // 浠庡垪琛ㄤ腑绉婚櫎琚垹闄ょ殑椤�
+        const updatedList = this.data.listData.filter(listItem => 
+          listItem.orderNo !== item.orderNo
+        );
+        
+        this.setData({
+          listData: updatedList
+        });
+        
+        wx.showToast({
+          title: '鍒犻櫎鎴愬姛',
+          icon: 'success',
+          duration: 2000
+        });
+      }, 1500);
+      return;
+    }
+    
     wx.showLoading({
       title: '姝e湪寮哄埗鍒犻櫎璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
       mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
     });
-    that.setData({
-      lastIntakeName: intakeName
-    })
     const data = {
       vcNum: item.vcNum, //鍙栨按鍙D
       rtuAddr: item.rtuAddr, //闃�鎺у櫒鍦板潃
@@ -586,9 +745,22 @@
       } else {
         displayText = "鍏抽榾"
       }
+      let deleteText = "鍒犻櫎"
+      let time;
+      if (!item.dt) {
+        time = "鏆傛棤"
+      } else {
+        time = this.extractTime(item.dt)
+      }
+      if (item.waterInstant===null) {
+        item.waterInstant = "鏆傛棤"
+      }
+
       return {
         ...item,
-        displayText
+        displayText,
+        deleteText,
+        time
       }; // 淇濈暀鎵�鏈夊叾浠栧瓧娈碉紝骞舵坊鍔� displayText 瀛楁
     });
     // 鏇存柊鍒楄〃鏁版嵁
@@ -598,11 +770,14 @@
   },
   //瑙g粦
   unbind() {
-    //娓呯┖鏁版嵁
     this.setData({
-      userPhone: "鏈櫥褰�",
-      userName: "璇风櫥褰�",
-      listData: []
+      showUnBind: true
+    })
+  },
+  //纭瑙g粦
+  unBindPost() {
+    this.setData({
+      showUnBind: false
     })
     wx.showLoading({
       title: '姝e湪瑙g粦璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
@@ -641,6 +816,11 @@
       wx.hideLoading();
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
+      wx.showToast({
+        title: '瑙g粦澶辫触',
+        icon: 'error',
+        duration: 3000
+      })
     });
   },
   //鐐瑰嚮鎻愮ず鎸夐挳
@@ -654,5 +834,29 @@
     this.setData({
       showInfoDialog: false
     })
+  },
+  //澶勭悊鏃堕棿鍘绘帀骞存湀鏃�
+  extractTime(datetimeString) {
+    const formattedDate = datetimeString.replace(" ", "T");
+    const date = new Date(formattedDate);
+    // 鑾峰彇灏忔椂銆佸垎閽熷拰绉�
+    const hours = date.getHours().toString().padStart(2, '0');
+    const minutes = date.getMinutes().toString().padStart(2, '0');
+    const seconds = date.getSeconds().toString().padStart(2, '0');
+    return `${hours}:${minutes}:${seconds}`;
+  },
+  onShareAppMessage: function (options) {
+    // 璁剧疆鍒嗕韩鍐呭
+    return {
+      title: '澶х鐏屾簤鍔╂墜', // 鍒嗕韩鏍囬
+      path: '/pages/home/home', // 鍒嗕韩璺緞锛岃璺緞闇�瑕佹槸褰撳墠灏忕▼搴忓瓨鍦ㄧ殑椤甸潰璺緞
+      imageUrl: '/images/logo2.jpg', // 鍒嗕韩鍥炬爣锛屽彲浠ユ槸缃戠粶鍥剧墖璺緞鎴栨湰鍦板浘鐗囪矾寰�
+      success: function (res) {
+        // 鍒嗕韩鎴愬姛鐨勫洖璋冨嚱鏁�
+      },
+      fail: function (res) {
+        // 鍒嗕韩澶辫触鐨勫洖璋冨嚱鏁�
+      }
+    };
   }
 })
\ No newline at end of file

--
Gitblit v1.8.0