From 87aa307761eaa7e5fc56247c858d10a1ad29c97b Mon Sep 17 00:00:00 2001 From: "3321822538@qq.com" <3321822538@qq.com> Date: Tue, 20 May 2025 17:52:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=87=E8=8A=B1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/blufi/xBlufi-wx-impl.js | 12 +- page_user/upload.vue | 1 + pages/index/index.vue | 450 ++++++++++++++++++++--------- 3 files changed, 322 insertions(+), 141 deletions(-) diff --git a/components/blufi/xBlufi-wx-impl.js b/components/blufi/xBlufi-wx-impl.js index 700cc0d..c1c4530 100644 --- a/components/blufi/xBlufi-wx-impl.js +++ b/components/blufi/xBlufi-wx-impl.js @@ -1511,7 +1511,14 @@ setTimeout(() => { if (uuid == self.data.characteristic_write_uuid) { self.data.serviceId = serviceId; self.data.uuid = uuid; - console.log("uuid", uuid) + console.log("uuid", uuid) + let obj = { + 'type': mDeviceEvent.XBLUFI_TYPE.TYPE_INIT_ESP32_RESULT, + 'result': true, + 'data': res + }; + mDeviceEvent.notifyDeviceMsgEvent(obj); + console.log('服务发现1111111'); uni.notifyBLECharacteristicValueChange({ state: true, // 启用 notify 功能 @@ -1543,6 +1550,7 @@ setTimeout(() => { }); }, 1000); + console.log("fail getBLEDeviceServices:" + JSON.stringify(res)); uni.onBLECharacteristicValueChange(function(res) { var my_str = Utf8ArrayToStr(res.value) if(my_str.indexOf("wifi_ok") != -1) @@ -1637,7 +1645,7 @@ setTimeout(() => { } }); -},2000); +},700); }); mDeviceEvent.listenSendRouterSsidAndPassword(true, function(options) { self.data.password = options.password; diff --git a/page_user/upload.vue b/page_user/upload.vue index 839e551..537216e 100644 --- a/page_user/upload.vue +++ b/page_user/upload.vue @@ -360,6 +360,7 @@ icon: 'success', duration: 2000 }) + this.ver = this.version setTimeout(()=>{ this.shengjiflag = false uni.reLaunch({ diff --git a/pages/index/index.vue b/pages/index/index.vue index e2e1f4f..51a6fb6 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -17,28 +17,26 @@ 绑定 - - + - + --> - - {{user.deviceName == undefined ? '--' : user.deviceName}} + + + {{user.deviceName == undefined ? '--' : user.deviceName}} + + + 点击连接 @@ -52,11 +50,14 @@ + + + - + 型号:{{user.model == undefined ? '--' : user.model}} @@ -77,26 +78,44 @@ --> - + - - OFF + + + OFF + + + P1 + + + {{ver_data.p_set1 && ver_data.p_set1[0] !== undefined ? ver_data.p_set1[0].toString().padStart(2, '0') + ':' + ver_data.p_set1[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set1[4]}}天 + + + 每天 + - - ON - - - P1 - - - {{ver_data.p_set1 && ver_data.p_set1[0] !== undefined ? ver_data.p_set1[0].toString().padStart(2, '0') + ':' + ver_data.p_set1[1].toString().padStart(2, '0') : '--:--'}} - - - 每{{ver_data.p_set1[4]}}天 - - - 每天 + + + ON + + + P1 + + + {{ver_data.p_set1 && ver_data.p_set1[0] !== undefined ? ver_data.p_set1[0].toString().padStart(2, '0') + ':' + ver_data.p_set1[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set1[4]}}天 + + + 每天 + + + @@ -104,23 +123,39 @@ - - OFF + + + OFF + + + P2 + + + {{ver_data.p_set2 && ver_data.p_set2[0] !== undefined ? ver_data.p_set2[0].toString().padStart(2, '0') + ':' + ver_data.p_set2[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set2[4]}}天 + + + 每天 + - - ON - - - P2 - - - {{ver_data.p_set2 && ver_data.p_set2[0] !== undefined ? ver_data.p_set2[0].toString().padStart(2, '0') + ':' + ver_data.p_set2[1].toString().padStart(2, '0') : '--:--'}} - - - 每{{ver_data.p_set2[4]}}天 - - - 每天 + + + ON + + + P2 + + + {{ver_data.p_set2 && ver_data.p_set2[0] !== undefined ? ver_data.p_set2[0].toString().padStart(2, '0') + ':' + ver_data.p_set2[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set2[4]}}天 + + + 每天 + - - OFF + + + OFF + + + P3 + + + {{ver_data.p_set3 && ver_data.p_set3[0] !== undefined ? ver_data.p_set3[0].toString().padStart(2, '0') + ':' + ver_data.p_set3[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set3[4]}}天 + + + 每天 + - - ON - - - P3 - - - {{ver_data.p_set3 && ver_data.p_set3[0] !== undefined ? ver_data.p_set3[0].toString().padStart(2, '0') + ':' + ver_data.p_set3[1].toString().padStart(2, '0') : '--:--'}} - - - 每{{ver_data.p_set3[4]}}天 - - - 每天 + + + ON + + + P3 + + + {{ver_data.p_set3 && ver_data.p_set3[0] !== undefined ? ver_data.p_set3[0].toString().padStart(2, '0') + ':' + ver_data.p_set3[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set3[4]}}天 + + + 每天 + - - OFF + + + OFF + + + P4 + + + {{ver_data.p_set4 && ver_data.p_set4[0] !== undefined ? ver_data.p_set4[0].toString().padStart(2, '0') + ':' + ver_data.p_set4[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set4[4]}}天 + + + 每天 + - - ON - - - P4 - - - {{ver_data.p_set4 && ver_data.p_set4[0] !== undefined ? ver_data.p_set4[0].toString().padStart(2, '0') + ':' + ver_data.p_set4[1].toString().padStart(2, '0') : '--:--'}} - - - 每{{ver_data.p_set4[4]}}天 - - - 每天 + + + ON + + + P4 + + + {{ver_data.p_set4 && ver_data.p_set4[0] !== undefined ? ver_data.p_set4[0].toString().padStart(2, '0') + ':' + ver_data.p_set4[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set4[4]}}天 + + + 每天 + - - OFF + + + OFF + + + P5 + + + {{ver_data.p_set5 && ver_data.p_set5[0] !== undefined ? ver_data.p_set5[0].toString().padStart(2, '0') + ':' + ver_data.p_set5[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set5[4]}}天 + + + 每天 + - - ON - - - P5 - - - {{ver_data.p_set5 && ver_data.p_set5[0] !== undefined ? ver_data.p_set5[0].toString().padStart(2, '0') + ':' + ver_data.p_set5[1].toString().padStart(2, '0') : '--:--'}} - - - 每{{ver_data.p_set5[4]}}天 - - - 每天 + + + ON + + + P5 + + + {{ver_data.p_set5 && ver_data.p_set5[0] !== undefined ? ver_data.p_set5[0].toString().padStart(2, '0') + ':' + ver_data.p_set5[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set5[4]}}天 + + + 每天 + - - OFF + + + OFF + + + P6 + + + {{ver_data.p_set6 && ver_data.p_set6[0] !== undefined ? ver_data.p_set6[0].toString().padStart(2, '0') + ':' + ver_data.p_set6[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set6[4]}}天 + + + 每天 + - - ON - - - P6 - - - {{ver_data.p_set6 && ver_data.p_set6[0] !== undefined ? ver_data.p_set6[0].toString().padStart(2, '0') + ':' + ver_data.p_set6[1].toString().padStart(2, '0') : '--:--'}} - - - 每{{ver_data.p_set6[4]}}天 - - - 每天 + + + ON + + + P6 + + + {{ver_data.p_set6 && ver_data.p_set6[0] !== undefined ? ver_data.p_set6[0].toString().padStart(2, '0') + ':' + ver_data.p_set6[1].toString().padStart(2, '0') : '--:--'}} + + + 每{{ver_data.p_set6[4]}}天 + + + 每天 + - - - - - - 当前时间 - - - 点击可再次设置当前时间 + + + + + + 当前时间 同步 + + + 点击可同步当前时间 + - - {{devicetime == '' ? '--' : devicetime}} + + {{devicetime == '' ? '--' : devicetime.slice(0,5)}} @@ -318,12 +418,17 @@ + + + 切换设备 + + + {{item.deviceName}} - - MAC:{{item.mac}} + MAC:{{item.mac}} @@ -334,7 +439,7 @@ 添加新设备 - + @@ -650,6 +755,37 @@ // }, 1500) } }, + // 点击同步时间 + btntb(){ + this.handleUserAction() + if(this.vardataflag != 3){ + uni.showToast({ + title: '设备未连接', + icon: 'none', + duration:2000 + }) + }else{ + this.devicetime = this.getCurrentTime(); + console.log(this.devicetime); + if(this.pre == 'WATER'){ //单阀 + uni.showLoading({ + title: '设置中...' + }) + xBlufi.notifySendCustomData({ + customData: '11date' + this.devicetime + ';' + }) + uni.hideLoading() + }else{ //抽水泵 + uni.showLoading({ + title: '设置中...' + }) + xBlufi.notifySendCustomData({ + customData: '11hour' + this.devicetime + '@', + }) + uni.hideLoading() + } + } + }, // 点击显示设置时间 btnsztime(){ this.handleUserAction() @@ -663,6 +799,14 @@ this.timeflag = true } }, + getCurrentTime() { + const now = new Date(); + const padZero = num => num.toString().padStart(2, '0'); + const hours = padZero(now.getHours()); // 时 (00-23) + const minutes = padZero(now.getMinutes()); // 分 (00-59) + const seconds = padZero(now.getSeconds()); // 秒 (00-59) + return `${hours}:${minutes}:${seconds}`; + }, // 点击设置当前时间 confirmtime(e){ if(this.pre == 'WATER'){ //单阀 @@ -1002,21 +1146,23 @@ break; case xBlufi.XBLUFI_TYPE.TYPE_CONNECTED: console.log("连接回调:" + JSON.stringify(options)) + xBlufi.notifyInitBleEsp32({ + deviceId: this.deviceId + }) + break + case xBlufi.XBLUFI_TYPE.TYPE_INIT_ESP32_RESULT: if (options.result == true){ + console.log('服务发现成功:', options); this.datalist = '1' this.vardataflag = 3 this.initDisconnectTimer() - xBlufi.notifyInitBleEsp32({ - deviceId: this.deviceId - }) // 连接成功后立即发送一次获取数据命令 - setTimeout(() => { - console.log("连接成功后发送获取数据命令") - xBlufi.notifySendCustomData({ - customData: "11get" - }) - }, 2000) + console.log("连接成功后发送获取数据命令") + xBlufi.notifySendCustomData({ + customData: "11get" + }) }else{ + console.log('服务发现失败:', options.data); this.vardataflag = 1 this.clearDisconnectTimer() } @@ -1092,7 +1238,7 @@ customData: "11get" }) } - }, 10000) + }, 5000) }, // 清除定时器 clearTimer() { @@ -1198,8 +1344,7 @@ } pSetObjects[key] = values; } - }); - + }) this.ver_data = pSetObjects; this.jstimeobj = pSetObjects; this.showobj = showObject; @@ -1289,7 +1434,6 @@ this.clearDisconnectTimer() this.disconnectTimer = setTimeout(() => { if(this.vardataflag === 3) { - console.log('一分钟无操作,断开蓝牙连接') this.disconnectBluetooth() } }, 600000) @@ -1338,6 +1482,21 @@ this.resetDisconnectTimer() } }, + + // 获取时间显示 + getTimeDisplay(setKey) { + const set = this.ver_data[setKey]; + if (set && set[0] !== undefined) { + return `${set[0].toString().padStart(2, '0')}:${set[1].toString().padStart(2, '0')}`; + } + return '--:--'; + }, + + // 判断是否是当前时间 + isCurrentTime(setKey) { + const set = this.ver_data[setKey]; + return set && set[0] == this.xctimesj.slice(0,2) && set[1] == this.xctimesj.slice(-2); + } } } @@ -1361,11 +1520,23 @@ height: 78rpx; } .cen{ + margin-left: 30rpx; .shen{ font-weight: 600; font-size: 28rpx; color: #3D3D3D; margin-bottom: 8rpx; + display: flex; + text{ + width: 80rpx; + height: 40rpx; + background-color: #7FAD76; + color: #fff; + text-align: center; + line-height: 40rpx; + border-radius: 10rpx; + margin-left: 20rpx; + } } view{ font-size: 24rpx; @@ -1456,7 +1627,7 @@ background: #3D3D3D; opacity: 0.2; position: fixed; - top: 20%; + top: 0; left: 0; z-index: 1; } @@ -1500,14 +1671,14 @@ max-height: 90vh; background: #FFFFFF; position: fixed; - top: 270rpx; + top: 0; left: 0; padding: 0 40rpx; padding-bottom: 60rpx !important; box-sizing: border-box; border-radius: 0rpx 0rpx 50rpx 50rpx; z-index: 2; - padding-top: 48rpx; + padding-top: 110rpx; box-sizing: border-box; animation: fadeInDown .5s ease-out forwards; .qdan { @@ -1526,6 +1697,7 @@ width: 100%; max-height: 68vh; overflow: scroll; + margin-top: 50rpx; .sbist_val { display: flex; justify-content: space-between; @@ -1778,7 +1950,7 @@ align-items: center; .shebeiname { font-size: 36rpx; - color: #73787B; + color: #333; font-weight: 600; display: flex; align-items: center;