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