From 556464a10ec5f3946b738080428a848154d5b780 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期一, 12 八月 2024 09:06:39 +0800
Subject: [PATCH] 添加识别二维码切换地址的功能

---
 pages/home/home.js |  376 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 319 insertions(+), 57 deletions(-)

diff --git a/pages/home/home.js b/pages/home/home.js
index fb846ac..d0a7f0b 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -11,41 +11,24 @@
    */
   data: {
     sessionId: "",
+    showConfirm: false,
+    myItem: {},
+    waterIntakeName: "",
     image: "/images/ic_head_bg.jpg",
     userPhone: "158****0723",
     userName: "寮犱笁",
     scrollViewHeight: 0,
-    listData: [{
-        name: '鍙栨按鍙� 1',
-        code: '1055201'
-      },
-      {
-        name: '鍙栨按鍙� 2',
-        code: '1055201'
-      },
-      {
-        name: '鍙栨按鍙� 3',
-        code: '1055201'
-      },
-      {
-        name: '鍙栨按鍙� 3',
-        code: '1055201'
-      },
-      {
-        name: '鍙栨按鍙� 4',
-        code: '1055201'
-      },
-      {
-        name: '鍙栨按鍙� 5',
-        code: '1055201'
-      },
-      {
-        name: '鍙栨按鍙� 6',
-        code: '1055201'
-      }
-    ],
+    listData: [],
     isRefreshing: false,
-    isWXRefreshing: false
+    isWXRefreshing: false,
+    errorData: '', //閿欒鍐呭
+    showErrorDialog: false,
+    confirmBtn: {
+      content: '纭'
+    },
+    errorDialogTitle: "鍏抽榾閿欒",
+    showForceConfirm: false, //鏄惁寮哄埗寮�闃�
+    lastIntakeName: ""
   },
 
   openValve: function (e) {
@@ -68,12 +51,8 @@
       this.setData({
         isRefreshing: true
       });
-      setTimeout(function () {
-        self.setData({
-          isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-        })
-        console.log('涓嬫媺鍒锋柊宸插畬鎴�');
-      }, 3000);
+      this.getOpenList();
+
     }
 
   },
@@ -96,32 +75,31 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
+    //鍒ゆ柇鏈湴鏄惁淇濆瓨sessionId
+
+
     // 浣跨敤 wx.nextTick 绛夊緟椤甸潰娓叉煋瀹屾垚
     wx.nextTick(() => {
       this.calculateScrollViewHeight();
     });
+    //褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
     console.log("onLoad锛�" + options.param);
+    if (options.param) {
+      wx.showToast({
+        title: '寮�闃�鎴愬姛',
+        icon: 'success',
+        duration: 3000
+      })
+      this.getOpenList();
+    }
+    this.initData();
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
    */
   onReady() {
-    //鍒ゆ柇鏈湴鏄惁淇濆瓨sessionId
-    if (storage.isHasKeySync("sessionId")) {
-      storage.getItem('sessionId').then((data) => {
-        this.setData({
-          sessionId: data
-        });
-        if (sessionId !== "") {
 
-        }
-      }).catch((err) => {
-        console.error('Failed to load parameter:', err);
-      });
-    } else {
-      console.log('Failed to load parameter:false');
-    }
   },
 
   /**
@@ -157,13 +135,7 @@
     });
     console.log(this.data.isRefreshing);
     // 鏁版嵁璇锋眰瀹屾垚鍚庯紝鍋滄涓嬫媺鍒锋柊鐨勫姩鐢�
-    var self = this;
-    setTimeout(function () {
-      self.setData({
-        isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-      })
-      console.log('涓嬫媺鍒锋柊宸插畬鎴�');
-    }, 3000);
+    this.getOpenList();
   },
 
   /**
@@ -178,5 +150,295 @@
    */
   onShareAppMessage() {
 
+  },
+  recharge() {
+    // wx.navigateTo({
+    //   url: '/pages/rechargeCard/rechargeCard',
+    // })
+    wx.showToast({
+      title: '鏆傛湭寮�鏀�',
+      icon: 'none'
+    })
+  },
+  openValveList() {
+    // wx.navigateTo({
+    //   url: '/pages/valveList/valveList',
+    // })
+    wx.showToast({
+      title: '鏆傛湭寮�鏀�',
+      icon: 'none'
+    })
+  },
+  feedBack() {
+    wx.showToast({
+      title: '鏆傛湭寮�鏀�',
+      icon: 'none'
+    })
+  },
+  handleChange(e) {
+    const item = e.currentTarget.dataset.item;
+    console.log(item);
+    this.setData({
+      showConfirm: true,
+      waterIntakeName: item.intakeNum,
+      myItem: item
+    });
+  },
+  closeDialog() {
+    console.log("closeDialog");
+    this.setData({
+      showConfirm: false,
+      showErrorDialog: false,
+      showForceConfirm: false
+    });
+  },
+  cancelDialog() {
+    this.setData({
+      showForceConfirm: false,
+      showConfirm: false
+    });
+  },
+  /**
+   * 鍏抽棴闃�闂�
+   * @param {*} orderNo 璁㈠崟鍙�
+   * @param {*} rtuAddr 闃�鎺у櫒鍦板潃
+   * @param {*} vcNum 铏氭嫙鍗$紪鍙�
+   */
+  postCloseValaue(orderNo, rtuAddr, vcNum) {
+    wx.showLoading({
+      title: '姝e湪鍏抽榾璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const app = getApp();
+    const data = {
+      rtuAddr: rtuAddr,
+      vcNum: vcNum, //铏氭嫙鍗D
+      orderNo: orderNo,
+      operator: app.globalData.sessionId //鎿嶄綔鍛�
+    };
+    console.log("postCloseValaue" + data);
+    post({
+      url: "wx/valve/close_wx",
+      data: data,
+      isShowLoding: false,
+      timeout: 185000
+    }).then(response => {
+
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      this.getOpenList();
+      wx.showToast({
+        title: '鍏抽榾鎴愬姛',
+        icon: 'success',
+        duration: 3000
+      })
+    }).catch(error => {
+      wx.hideLoading();
+      this.setData({
+        showErrorDialog: true,
+        errorData: error.msg,
+        errorDialogTitle: "鍏抽榾閿欒"
+      })
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+
+    });
+  },
+  /**
+   * 鑾峰彇涓哄叧闃�璁板綍
+   */
+  getOpenList() {
+    const app = getApp();
+    const params = {
+      url: 'wx/valve/get',
+      data: {
+        operator: app.globalData.sessionId
+      }
+    };
+    get(params).then(data => {
+      this.setData({
+        listData: data.content,
+        isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+        isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+      })
+    }).catch(err => {
+      // 閿欒鍥炶皟
+      this.setData({
+        isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+        isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+      })
+      wx.showToast({
+        title: err.msg,
+        icon: 'error',
+        duration: 3000
+      })
+    });
+  },
+  /**
+   * 纭鍏抽棴鍥炶皟
+   * @param {} item 
+   */
+  confirmDialog() {
+    this.setData({
+      showConfirm: false
+    });
+    this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum);
+  },
+  //鏍规嵁session鑾峰彇鍐滄埛淇℃伅
+  getUserDataBySession() {
+    const app = getApp();
+    const params = {
+      url: 'wx/client/simple_info',
+      data: {
+        sessionId: app.globalData.sessionId
+      }
+    };
+    get(params).then(data => {
+      this.setData({
+        userName: data.content.clientName,
+        userPhone: this.maskPhoneNumber(data.content.phone)
+      })
+    }).catch(err => {
+      // 閿欒鍥炶皟
+      wx.showToast({
+        title: err.msg,
+        icon: 'error',
+        duration: 3000
+      })
+    })
+  },
+  maskPhoneNumber(phoneNumber) {
+    if (phoneNumber.length !== 11) {
+      throw new Error("Phone number must be 11 digits");
+    }
+    // 浣跨敤姝e垯琛ㄨ揪寮忔浛鎹腑闂村洓浣嶆暟瀛椾负鏄熷彿
+    const maskedPhoneNumber = phoneNumber.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2");
+    return maskedPhoneNumber;
+  },
+
+  closeDialog() {
+    this.setData({
+      showErrorDialog: false
+    })
+  },
+  /**
+   * 鎵爜寮�闃�
+   */
+  scenCode() {
+    const that = this;
+    wx.scanCode({
+      success(res) {
+        console.log(res.result); // 褰撲笖浠呭綋鎵爜涓洪潪寰俊浜岀淮鐮佹椂锛屼細杩斿洖result  
+        if (res.result.startsWith("content://")) {
+          let jsonStr = res.result.replace("content://", "")
+          try {
+
+            that.saveData(jsonStr)
+          } catch (error) {
+            console.error('Error parsing JSON:', error);
+          }
+
+        } else {
+          that.postOppenValva(res.result)
+        }
+
+      },
+      fail(err) {
+        console.error(err);
+      }
+    })
+  },
+  confirmForceDialog() {
+    console.log("confirmForceDialog");
+    this.setData({
+      showForceConfirm: false
+    })
+    this.postOppenValva(this.data.lastIntakeName, true)
+  },
+  /**
+   * 
+   * @param {*} intakeName 
+   */
+  postOppenValva(intakeName, isforce) {
+    const that = this;
+    wx.showLoading({
+      title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const app = getApp();
+    that.setData({
+      lastIntakeName: intakeName
+    })
+    const data = {
+      intakeName: intakeName, //鍙栨按鍙D
+      // vcId: vcId, //铏氭嫙鍗D
+      operator: app.globalData.sessionId, //鎿嶄綔鍛�
+      forceOpen: !!isforce // 浣跨敤閫昏緫闈炴搷浣滅 !! 鏉ョ‘淇� isForce 鏄竷灏斿��  
+    };
+    post({
+      url: "wx/valve/open_wx",
+      data: data,
+      timeout: 180000
+    }).then(response => {
+
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      //瀹屾垚鍚庡洖鍒伴椤�
+      wx.reLaunch({
+        url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+      });
+    }).catch(error => {
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+      if (error.code === "10005") {
+        that.setData({
+          showForceConfirm: true
+        })
+      } else {
+        that.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
+    });
+  },
+  /**
+   * 鎵弿鍚庝繚瀛樼敤鎴穒d鍜宼ag
+   */
+  saveData(userData) {
+    storage.setItem("userData", userData).then(() => {
+      this.initData();
+    }).catch((error) => {});
+
+  },
+  //杩涘叆鐣岄潰鑾峰彇鐣岄潰鏁版嵁
+  initData() {
+    const app = getApp();
+    console.log("tag>>>>:" +app.globalData.tag)
+ 
+    if (storage.isHasKeySync("userData")) {
+      storage.getItem('userData').then((data) => {
+        let jsonObj = JSON.parse(data);
+        app.globalData.sessionId = jsonObj.sessionId;
+        app.globalData.tag = jsonObj.tag;
+        this.getUserDataBySession();
+        this.getOpenList();
+        console.log("userData>>>>>>>" + data)
+      }).catch((err) => {
+        console.error('Failed to load parameter:', err);
+      });
+    } else {
+      this.getUserDataBySession();
+      this.getOpenList();
+      console.log('Failed to load parameter:false');
+    }
+  
   }
 })
\ No newline at end of file

--
Gitblit v1.8.0