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