From 19804e37592d2250c551fcf5df1d87cdf551f1d1 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 | 67 ++++++++++++ pages/waterIntake/waterIntake.json | 2 pages/waterIntake/waterIntake.wxss | 20 +++ pages/waterIntake/waterIntake.js | 79 ++++++++++++--- pages/waterIntake/waterIntake.wxml | 50 +++------ pages/home/home.wxml | 11 + pages/home/home.wxss | 39 ++++++- 7 files changed, 204 insertions(+), 64 deletions(-) diff --git a/pages/home/home.js b/pages/home/home.js index 5c6dad9..dabd0d4 100644 --- a/pages/home/home.js +++ b/pages/home/home.js @@ -26,6 +26,8 @@ confirmBtn: { content: '纭' }, + errorDialogTitle: "鍏抽榾閿欒", + showForceConfirm: false //鏄惁寮哄埗寮�闃� }, openValve: function (e) { @@ -192,7 +194,16 @@ }); }, closeDialog() { + console.log("closeDialog"); this.setData({ + showConfirm: false, + showErrorDialog: false, + showForceConfirm: false + }); + }, + cancelDialog(){ + this.setData({ + showForceConfirm: false, showConfirm: false }); }, @@ -236,7 +247,8 @@ wx.hideLoading(); this.setData({ showErrorDialog: true, - errorData: error.msg + errorData: error.msg, + errorDialogTitle: "鍏抽榾閿欒" }) // 澶勭悊閿欒鍝嶅簲 console.error('璇锋眰澶辫触:', error); @@ -320,18 +332,65 @@ showErrorDialog: false }) }, + /** + * 鎵爜寮�闃� + */ scenCode() { + const that = this; wx.scanCode({ success(res) { console.log(res.result); // 褰撲笖浠呭綋鎵爜涓洪潪寰俊浜岀淮鐮佹椂锛屼細杩斿洖result - // 濡傛灉鎵爜缁撴灉涓篣RL锛屼細鑷姩灏濊瘯鎵撳紑 - // 濡傛灉鎵爜缁撴灉涓哄井淇″皬绋嬪簭鐨勭爜锛屼細鐩存帴璺宠浆鍒板搴旂殑灏忕▼搴忛〉闈� - // 濡傛灉鎵爜缁撴灉涓哄叕浼楀彿浜岀淮鐮侊紝鍒欎細鍦ㄦ墜鏈轰笂鎵撳紑寰俊骞惰烦杞埌瀵瑰簲鐨勫叕浼楀彿 + wx.showLoading({ + title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧 + mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false + }); + const app = getApp(); + const data = { + intakeName: res.result, //鍙栨按鍙D + // vcId: vcId, //铏氭嫙鍗D + operator: app.globalData.sessionId //鎿嶄綔鍛� + }; + 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==="1003") { + that.setData({ + showForceConfirm:true + }) + } else { + that.setData({ + showErrorDialog: true, + errorData: error.msg, + errorDialogTitle: "寮�闃�閿欒" + }) + } + + + }); }, fail(err) { console.error(err); } }) + }, + confirmForceDialog(){ + console.log("confirmForceDialog"); } }) \ No newline at end of file diff --git a/pages/home/home.wxml b/pages/home/home.wxml index b4f283b..8120e82 100644 --- a/pages/home/home.wxml +++ b/pages/home/home.wxml @@ -12,7 +12,11 @@ <text class="unbind" bind:tap="feedBack">瑙g粦</text> <text class="head-bottom" bind:tap="feedBack">鑱旂郴瀹㈡湇</text> </view> - <image class="scen-code" src="/images/scen_code.svg" bind:tap="scenCode"/> + <view class="scen-view" bind:tap="scenCode"> + <image class="scen-code" src="/images/scen_code.svg" /> + <text>鎵爜寮�闃�</text> + </view> + </view> </view> @@ -67,7 +71,8 @@ </view> </scroll-view> - <t-dialog class="dialog" visible="{{showConfirm}}" content="纭鍏抽棴{{waterIntakeName}}鍚楋紵" confirm-btn="{{ { content: '纭', variant: 'base', theme: 'danger' } }}" close-on-overlay-click="false" cancel-btn="鍙栨秷" bind:confirm="confirmDialog" bind:cancel="closeDialog" /> - <t-dialog class="error-dialog" title="鍏抽榾閿欒" visible="{{showErrorDialog}}" content="{{errorData}}" confirm-btn="{{ confirmBtn }}" bind:confirm="closeDialog" /> + <t-dialog class="dialog" visible="{{showConfirm}}" content="纭鍏抽棴{{waterIntakeName}}鍚楋紵" confirm-btn="{{ { content: '纭', variant: 'base', theme: 'danger' } }}" close-on-overlay-click="false" cancel-btn="鍙栨秷" bind:confirm="confirmDialog" bind:cancel="cancelDialog" /> + <t-dialog class="error-dialog" title="{{errorDialogTitle}}" visible="{{showErrorDialog}}" content="{{errorData}}" confirm-btn="{{ confirmBtn }}" bind:confirm="closeDialog" /> + <t-dialog visible="{{showForceConfirm}}" content="褰撳墠铏氭嫙鍗¤鍗犵敤锛屾槸鍚﹀己鍒跺紑闃�锛�" confirm-btn="{{ { content: '寮哄埗寮�闃�', variant: 'base', theme: 'danger' } }}" cancel-btn="鍙栨秷" bind:confirm="confirmForceDialog" bind:cancel="cancelDialog" /> </view> \ No newline at end of file diff --git a/pages/home/home.wxss b/pages/home/home.wxss index ee43aa4..0a918b8 100644 --- a/pages/home/home.wxss +++ b/pages/home/home.wxss @@ -217,9 +217,14 @@ padding-left: 25rpx; padding-right: 25rpx; padding-top: 15rpx; + display: flex; + align-items: center; + justify-content: center; padding-bottom: 15rpx; } - +.refresh-button:active{ + background-color: #7c7c7c; /* Change to a darker color when pressed */ +} .refresh-view { text-align: center; padding: 30rpx; @@ -311,6 +316,10 @@ justify-content: center; } +.item-button:active { + background-color: #7c7c7c; /* Change to a darker color when pressed */ +} + .divider { width: 100%; margin-top: 2rpx; @@ -318,16 +327,30 @@ } -.error-dialog{ - --td-dialog-title-color:red; - --td-dialog-title-font-size:40rpx; +.error-dialog { + --td-dialog-title-color: red; + --td-dialog-title-font-size: 40rpx; } -.scen-code{ +.scen-view { + position: absolute; + /* 娣诲姞杩欒 */ + top: 15rpx; + /* 鏍规嵁闇�瑕佽皟鏁磋窛绂婚《閮ㄧ殑璺濈 */ + right: 30rpx; + /* 鏍规嵁闇�瑕佽皟鏁磋窛绂诲彸渚х殑璺濈 */ + display: flex; + align-items: center; + /* 鍨傜洿鏂瑰悜灞呬腑 */ + justify-content: space-between; +} + +.scen-code { width: 40rpx; height: 40rpx; - position: absolute; /* 娣诲姞杩欒 */ - top: 15rpx; /* 鏍规嵁闇�瑕佽皟鏁磋窛绂婚《閮ㄧ殑璺濈 */ - right: 30rpx; /* 鏍规嵁闇�瑕佽皟鏁磋窛绂诲彸渚х殑璺濈 */ +} +.scen-view text { + font-size: 30rpx; + color: #ffffff; } \ No newline at end of file diff --git a/pages/waterIntake/waterIntake.js b/pages/waterIntake/waterIntake.js index 68f5a3c..de10bb5 100644 --- a/pages/waterIntake/waterIntake.js +++ b/pages/waterIntake/waterIntake.js @@ -9,6 +9,11 @@ searchQuery: "", commonWaterPoints: [], // 甯哥敤鍙栨按鍙f暟鎹� allWaterPoints: [], // 鎵�鏈夊彇姘村彛鏁版嵁 + searchData: [{ + intakeNum: "1111111" + }, { + intakeNum: "2222222" + }], isRefreshing_all: false, isRefreshing_common: false, showConfirm: false, @@ -19,6 +24,9 @@ confirmBtn: { content: '纭' }, + showForceConfirm: false, + forceIntakeId: "", //寮哄埗寮�闃�鐨勫彇姘村彛id + inputValue:"" }, // 鍒囨崲 Tabs @@ -39,7 +47,9 @@ this.getallWaterPoints(query) // 鍦ㄨ繖閲岃繘琛屾悳绱㈡搷浣滐紝鏇存柊 allWaterPoints 鏁版嵁 } else { - this.getallWaterPoints(query) + this.setData({ + allWaterPoints: [] + }) } }, @@ -48,9 +58,11 @@ * @param {} event */ choseCard(event) { + //鏄剧ず浜屾纭寮圭獥 this.setData({ showConfirm: true, - choseItem: event.currentTarget.dataset.item + choseItem: event.currentTarget.dataset.item, + allWaterPoints: [] }) // console.log(intakeId); // wx.navigateTo({ @@ -59,7 +71,16 @@ }, //寮�娉甸�氫俊 - postOpenValva(intakeId) { + /** + * + * @param {*} intakeId 鍙栨按鍙d + * @param {*} isforce 鏄惁寮哄埗寮�闃� + */ + postOpenValva(intakeId, isforce) { + this.setData({ + inputValue:"" + }) + console.log("intakeId:" + intakeId + " isforce:" + isforce) wx.showLoading({ title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧 mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false @@ -68,7 +89,8 @@ const data = { intakeId: intakeId, //鍙栨按鍙D // vcId: vcId, //铏氭嫙鍗D - operator: app.globalData.sessionId //鎿嶄綔鍛� + operator: app.globalData.sessionId, //鎿嶄綔鍛� + forceOpen: !!isforce // 浣跨敤閫昏緫闈炴搷浣滅 !! 鏉ョ‘淇� isForce 鏄竷灏斿�� }; post({ url: "wx/valve/open_wx", @@ -90,12 +112,17 @@ wx.hideLoading(); // 澶勭悊閿欒鍝嶅簲 console.error('璇锋眰澶辫触:', error); - - this.setData({ - showErrorDialog: true, - errorData: error.msg - }) - + if (error.code === "10005") { + this.setData({ + forceIntakeId: intakeId, + showForceConfirm: true + }) + } else { + this.setData({ + showErrorDialog: true, + errorData: error.msg + }) + } }); }, @@ -110,7 +137,6 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 */ onReady() { - this.getallWaterPoints(); this.getcommonWaterPoints(); }, @@ -152,7 +178,7 @@ }, /** - * 鑾峰彇鎵�鏈夊彇姘村彛 + *鍦ㄦ墍鏈夊彇姘村彛鎼滅储 */ getallWaterPoints: function (intakeNum) { let params = { @@ -169,9 +195,17 @@ isRefreshing_all: false }); if (data.success && data.code === "0001") { - this.setData({ - allWaterPoints: data.content.obj - }); + if (!data.content) { + wx.showToast({ + title: '娌℃湁鎼滅储鍒板彇姘村彛', + icon: 'error', + }) + }else{ + this.setData({ + allWaterPoints:[data.content] + }); + } + } else { wx.showToast({ title: data.msg, @@ -250,5 +284,20 @@ this.setData({ showErrorDialog: false }) + }, + cancelDialog() { + this.setData({ + showForceConfirm: false + }); + }, + //寮哄埗寮�闃� + confirmForceDialog() { + this.postOpenValva(this.data.forceIntakeId, true); + }, + closeSearch(){ + this.setData({ + allWaterPoints:[], + inputValue:"" + }) } }) \ No newline at end of file diff --git a/pages/waterIntake/waterIntake.json b/pages/waterIntake/waterIntake.json index 1bfc009..5d12b46 100644 --- a/pages/waterIntake/waterIntake.json +++ b/pages/waterIntake/waterIntake.json @@ -6,7 +6,7 @@ "t-button": "tdesign-miniprogram/button/button", "t-dialog": "tdesign-miniprogram/dialog/dialog" }, - "navigationBarTitleText": "鍙栨按鍙�", + "navigationBarTitleText": "甯哥敤鍙栨按鍙�", "navigationBarTextStyle": "white" } \ No newline at end of file diff --git a/pages/waterIntake/waterIntake.wxml b/pages/waterIntake/waterIntake.wxml index e433296..bc6680e 100644 --- a/pages/waterIntake/waterIntake.wxml +++ b/pages/waterIntake/waterIntake.wxml @@ -1,41 +1,23 @@ <view class="container"> - <!-- 椤堕儴 Tabs --> - <view class="tabs"> - <view class="tab" bindtap="switchTab" data-tab="0" id="tab0"> - 甯哥敤鍙栨按鍙� - <view class="indicator" wx:if="{{currentTab === 0}}"></view> - </view> - <view class="tab" bindtap="switchTab" data-tab="1" id="tab1"> - 鎵�鏈夊彇姘村彛 - <view class="indicator" wx:if="{{currentTab === 1}}"></view> - </view> - </view> - <!-- 甯哥敤鍙栨按鍙� --> - <scroll-view class="list-container" wx:if="{{currentTab === 0}}" scroll-y="true" refresher-enabled="true" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh_common" refresher-triggered="{{isRefreshing_common}}"> - <block wx:for="{{commonWaterPoints}}" wx:key="index"> - <view class="item"> - <view class="item-left"> - <text>{{item.intakeNum}}</text> - <image class="item-img" src="{{item.isOnLine ? '/images/wifi_no.svg' : '/images/wifi_off.svg'}}" /> - </view> - <text class="item-button" bindtap="choseCard" data-item="{{item}}">寮�闃�</text> - </view> - </block> - <view wx:if="{{commonWaterPoints.length === 0}}" class="noMore-View"> - <image class="noMore-img" src="/images/no_more.svg" /> - <text class="noMore-text">娌℃湁鏁版嵁</text> - </view> - </scroll-view> - <!-- 鎵�鏈夊彇姘村彛 --> - <view class="all-waterIntake" wx:if="{{currentTab === 1}}"> + + + + <view class="all-waterIntake" wx:if="{{currentTab === 0}}"> <view class="search-container"> - <input class="search-input" placeholder="璇疯緭鍏ュ彇姘村彛缂栫爜鍚庣偣鍑绘悳绱�" bindinput="onInput" /> + <input class="search-input" value="{{inputValue}}" placeholder="璇疯緭鍏ュ彇姘村彛缂栫爜鍚庣偣鍑绘悳绱�" bindinput="onInput" /> <t-button class="search-button" theme="primary" size="large" icon="search" shape="square" aria-label="鎼滅储" bindtap="onSearch" style="background-color: #1890FF; border: none; height: 80rpx;"></t-button> </view> - <scroll-view class="list-container" scroll-y="true" refresher-enabled="true" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh_all" refresher-triggered="{{isRefreshing_all}}"> + <view class="search-results" wx:if="{{allWaterPoints.length > 0}}" bindtap="closeSearch"> <block wx:for="{{allWaterPoints}}" wx:key="index"> + <view class="result-item" bindtap="choseCard" data-item="{{item}}"> + <text>{{item.intakeNum}}</text> + </view> + </block> + </view> + <scroll-view class="list-container" scroll-y="true" refresher-enabled="true" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh_common" refresher-triggered="{{isRefreshing_common}}"> + <block wx:for="{{commonWaterPoints}}" wx:key="index"> <view class="item"> <view class="item-left"> <text>{{item.intakeNum}}</text> @@ -44,7 +26,7 @@ <text class="item-button" bindtap="choseCard" data-item="{{item}}">寮�闃�</text> </view> </block> - <view wx:if="{{allWaterPoints.length === 0}}" class="noMore-View"> + <view wx:if="{{commonWaterPoints.length === 0}}" class="noMore-View"> <image class="noMore-img" src="/images/no_more.svg" /> <text class="noMore-text">娌℃湁鏁版嵁</text> </view> @@ -54,4 +36,8 @@ <t-dialog class="dialog" visible="{{showConfirm}}" content="纭鎵撳紑{{choseItem.intakeNum}}鍚楋紵" confirm-btn="{{ { content: '纭', variant: 'base', theme: 'danger' } }}" close-on-overlay-click="false" cancel-btn="鍙栨秷" bind:confirm="confirmDialog" bind:cancel="closeDialog" /> <t-dialog class="error-dialog" title="寮�闃�閿欒" visible="{{showErrorDialog}}" content="{{errorData}}" confirm-btn="{{ confirmBtn }}" bind:confirm="closeErrorDialog" /> + + <t-dialog visible="{{showForceConfirm}}" content="褰撳墠铏氭嫙鍗¤鍗犵敤锛屾槸鍚﹀己鍒跺紑闃�锛�" confirm-btn="{{ { content: '寮哄埗寮�闃�', variant: 'base', theme: 'danger' } }}" cancel-btn="鍙栨秷" bind:confirm="confirmForceDialog" bind:cancel="cancelDialog" /> + + </view> diff --git a/pages/waterIntake/waterIntake.wxss b/pages/waterIntake/waterIntake.wxss index 519475c..56c304a 100644 --- a/pages/waterIntake/waterIntake.wxss +++ b/pages/waterIntake/waterIntake.wxss @@ -68,7 +68,9 @@ align-items: center; justify-content: center; } - +.item-button:active { + background-color: #7c7c7c; /* Change to a darker color when pressed */ +} .indicator { width: 100%; height: 3px; @@ -143,4 +145,20 @@ .error-dialog{ --td-dialog-title-color:red; --td-dialog-title-font-size:45rpx; +} + +.search-results { + position: absolute; + top: 100rpx; /* 鏍规嵁鎼滅储妗嗙殑楂樺害璋冩暣 */ + left: 30rpx; + right: 30rpx; + bottom: 0; + background-color: rgba(255, 255, 255, 0.90); /* 璁剧疆鐧借壊鑳屾櫙 */ + z-index: 1; + overflow-y: auto; +} + +.result-item { + padding: 20rpx; + border-bottom: 1px solid #eaeaea; } \ No newline at end of file -- Gitblit v1.8.0