From 1e51023c00bd615ed6fa024afdd9c360da12596b Mon Sep 17 00:00:00 2001 From: liub Date: Fri, 3 Apr 2026 17:24:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=96=E6=A8=A1?= =?UTF-8?q?=E7=BB=84=E4=BB=B6,=E5=8F=96=E6=A8=A1=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E6=9B=B4=E5=A5=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ProParams/ProParams.vue | 2 +- components/TextToHex/TextToHex.vue | 58 ++++++++----- components/TextToHex/TextToHexV1.vue | 86 +++++++++---------- components/TextToHex/TextToHexV2.vue | 6 +- components/TextToHex/textToDotMatrix.vue | 17 +++- .../TextToHex/textToDotMatrixFor7305.vue | 28 +++--- components/TextToHex/textToDotMatrixV1.vue | 18 ++-- pages/6075J/BJQ6075J.vue | 4 +- utils/BleHelper.js | 2 +- 9 files changed, 132 insertions(+), 89 deletions(-) diff --git a/components/ProParams/ProParams.vue b/components/ProParams/ProParams.vue index 11742ea..28a41b6 100644 --- a/components/ProParams/ProParams.vue +++ b/components/ProParams/ProParams.vue @@ -107,6 +107,6 @@ justify-content: space-between; align-items: center; font-size: 28rpx; - color: #FFFFFF; + color: #FFFFFFde; } \ No newline at end of file diff --git a/components/TextToHex/TextToHex.vue b/components/TextToHex/TextToHex.vue index ea33b5e..fe8cfee 100644 --- a/components/TextToHex/TextToHex.vue +++ b/components/TextToHex/TextToHex.vue @@ -58,7 +58,7 @@ * 清除Canvas内容 */ clearCanvas() { - this.ctx.setFillStyle(this.bgColor); + this.ctx.setFillStyle('#FFFFFF');//this.bgColor this.ctx.fillRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); }, @@ -73,31 +73,49 @@ // 逐行处理 for (let y = 0; y < 16; y++) { - let byte1 = 0, - byte2 = 0; + let byte1 = '', + byte2 = ''; // 每行16个像素,分为两个字节 for (let x = 0; x < 16; x++) { // 计算像素在imageData中的索引 (RGBA格式) let index = (y * 16 + x) * 4; - let red = imageData[index]; - - // 黑色像素(R值较低)视为1,白色视为0 - let isBlack = red < 128; - - if (x < 8) { - // 第一个字节(左8位) - if (isBlack) { - byte1 |= 0x80 >> x; // 从左到右设置位 - } - } else { - // 第二个字节(右8位) - if (isBlack) { - byte2 |= 0x80 >> (x - 8); - } + let index = (y * 16 + x) * 4; + let r = imageData[index]; + let g = imageData[index+1]; + let b = imageData[index+2]; + + + let gray = (r + g + b) / 3; + let bit = gray < 255 ? '1' : '0'; + + + + if (x < 8) { + byte1+=bit; + } else { + byte2+=bit; } - } + // let red = imageData[index]; + // // 黑色像素(R值较低)视为1,白色视为0 + // let isBlack = red < 128; + + // if (x < 8) { + // // 第一个字节(左8位) + // if (isBlack) { + // byte1 |= 0x80 >> x; // 从左到右设置位 + // } + // } else { + // // 第二个字节(右8位) + // if (isBlack) { + // byte2 |= 0x80 >> (x - 8); + // } + // } + } + + byte1=parseInt(byte1,2); + byte2=parseInt(byte2,2); // 将字节转换为两位十六进制字符串 matrix.push('0x' + byte1.toString(16).padStart(2, '0').toUpperCase()); matrix.push('0x' + byte2.toString(16).padStart(2, '0').toUpperCase()); @@ -118,7 +136,7 @@ this.clearCanvas(); // 3. 设置文字样式 - ctx.setFillStyle(this.color); + ctx.setFillStyle('#000000');//this.color ctx.setTextBaseline('middle'); ctx.setFontSize(this.fontSize); ctx.font = `${this.fontSize}px "PingFang SC", PingFang SC, Arial, sans-serif`; diff --git a/components/TextToHex/TextToHexV1.vue b/components/TextToHex/TextToHexV1.vue index 36612d1..a54a9ed 100644 --- a/components/TextToHex/TextToHexV1.vue +++ b/components/TextToHex/TextToHexV1.vue @@ -60,7 +60,7 @@ * 清除Canvas内容 */ clearCanvas() { - this.ctx.setFillStyle(this.bgColor); + this.ctx.setFillStyle('#FFFFFF'); //this.bgColor this.ctx.fillRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); }, @@ -71,22 +71,22 @@ if (this.canvasWarmed) { return; } - + try { // 设置画布尺寸 this.currentCanvasWidth = 16; this.currentCanvasHeight = 16; - + // 清空画布 this.clearCanvas(); - + // 绘制一个测试字符来预热字体和画布 - this.ctx.setFillStyle(this.color); + this.ctx.setFillStyle('#000000'); //this.color this.ctx.setFontSize(this.fontSize); this.ctx.font = `${this.fontSize}px "PingFangBold", "PingFang SC", Arial, sans-serif`; this.ctx.setTextBaseline('middle'); this.ctx.fillText('测', 0, 8); - + // 等待画布绘制完成 await new Promise((resolve) => { this.ctx.draw(false, () => { @@ -110,7 +110,7 @@ }, 100); }); }); - + // 额外等待确保字体完全加载 await new Promise(resolve => setTimeout(resolve, 200)); } catch (ex) { @@ -118,55 +118,55 @@ this.canvasWarmed = true; // 即使失败也标记为已预热,避免重复尝试 } }, - + /** * 复用单个Canvas处理所有文本行 */ async drawAndGetPixels() { // 第一次调用时先预热画布(解决APP重新打开后第一次获取数据不完整的问题) // await this.warmupCanvas(); - - let convertCharToMatrix=function(imageData) { - debugger; + let convertCharToMatrix = function(imageData) { + // console.log("imgData=",imageData) let matrix = []; - + // 逐行处理 for (let y = 0; y < 16; y++) { - let byte1 = 0, - byte2 = 0; - - // 每行16个像素,分为两个字节 + let byte1 = '', + byte2 = ''; + + for (let x = 0; x < 16; x++) { - // 计算像素在imageData中的索引 (RGBA格式) + let index = (y * 16 + x) * 4; - let red = imageData[index]; - - // 黑色像素(R值较低)视为1,白色视为0 - let isBlack = red < 128; - - if (x < 8) { - // 第一个字节(左8位) - if (isBlack) { - byte1 |= 0x80 >> x; // 从左到右设置位 - } - } else { - // 第二个字节(右8位) - if (isBlack) { - byte2 |= 0x80 >> (x - 8); - } + let r = imageData[index]; + let g = imageData[index+1]; + let b = imageData[index+2]; + + + let gray = (r + g + b) / 3; + let bit = gray < 255 ? '1' : '0'; + + + + if (x < 8) { + byte1+=bit; + } else { + byte2+=bit; } } - + byte1=parseInt(byte1,2); + byte2=parseInt(byte2,2); // 将字节转换为两位十六进制字符串 matrix.push('0x' + byte1.toString(16).padStart(2, '0').toUpperCase()); matrix.push('0x' + byte2.toString(16).padStart(2, '0').toUpperCase()); } - + return matrix; } + - let drawTxt=async (textLine)=> { + let drawTxt = async (textLine) => { debugger; let result = {}; let ctx = this.ctx; @@ -179,12 +179,12 @@ this.clearCanvas(); // 3. 设置文字样式 - ctx.setFillStyle(this.color); + ctx.setFillStyle('#000000'); //this.color ctx.setTextBaseline('middle'); // ctx.setTextAlign('center') ctx.setFontSize(this.fontSize); - ctx.font = `${this.fontSize}px "PingFangBold", "PingFang SC", Arial, sans-serif`; - + ctx.font = `${this.fontSize}px "PingFang SC","PingFangBold", Arial, sans-serif`; + // 4. 绘制当前行文本 let currentX = 0; let currentY = this.fontSize / 2; @@ -206,8 +206,8 @@ width: this.currentCanvasWidth, height: this.currentCanvasHeight, success: res => { - - result={ + + result = { line: textLine, pixelData: res.data, width: this.currentCanvasWidth, @@ -228,10 +228,10 @@ let arr = []; // 循环处理每行文本 for (let i = 0; i < this.validTxts.length; i++) { -debugger; + debugger; let linePixls = []; let item = this.validTxts[i]; - + for (var j = 0; j < item.length; j++) { let result = await drawTxt(item[j]); linePixls.push(convertCharToMatrix(result.pixelData)); @@ -239,7 +239,7 @@ debugger; // console.log("hexs=",linePixls.join(",")); arr.push(linePixls); } - + return arr; } } diff --git a/components/TextToHex/TextToHexV2.vue b/components/TextToHex/TextToHexV2.vue index ffd27b4..d49c4ed 100644 --- a/components/TextToHex/TextToHexV2.vue +++ b/components/TextToHex/TextToHexV2.vue @@ -70,7 +70,7 @@ * 清除Canvas内容 */ clearCanvas() { - this.ctx.setFillStyle(this.bgColor); + this.ctx.setFillStyle('#FFFFFF');//this.bgColor this.ctx.fillRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); }, @@ -87,7 +87,7 @@ this.clearCanvas(); // 绘制一个测试字符来预热字体和画布 - this.ctx.setFillStyle(this.color); + this.ctx.setFillStyle('#000000');//this.color this.ctx.setFontSize(this.fontSize); this.ctx.font = `${this.fontSize}px "PingFangBold","PingFang SC", Arial, sans-serif`; this.ctx.setTextBaseline('middle'); @@ -212,7 +212,7 @@ this.clearCanvas(); // 3. 设置文字样式 - ctx.setFillStyle(this.color); + ctx.setFillStyle('#000000');//this.color ctx.setTextBaseline('middle'); // ctx.setTextAlign('center') ctx.setFontSize(this.fontSize); diff --git a/components/TextToHex/textToDotMatrix.vue b/components/TextToHex/textToDotMatrix.vue index 2dc904d..1ac8e4b 100644 --- a/components/TextToHex/textToDotMatrix.vue +++ b/components/TextToHex/textToDotMatrix.vue @@ -58,7 +58,7 @@ * 清除Canvas内容 */ clearCanvas() { - this.ctx.setFillStyle(this.bgColor); + this.ctx.setFillStyle('#FFFFFF');//this.bgColor this.ctx.fillRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); }, @@ -100,10 +100,19 @@ for (let x = 0; x < 16; x++) { // 计算像素在imageData中的索引 (RGBA格式) let index = (y * 16 + x) * 4; - let red = imageData[index]; + // let red = imageData[index]; + + let r = imageData[index]; + let g = imageData[index+1]; + let b = imageData[index+2]; + + + let gray = (r + g + b) / 3; + let bit = gray < 255 ? '1' : '0'; + // 黑色像素(R值较低)视为1,白色视为0 - let isBlack = red < 128 ? 1 : 0; + let isBlack =gray < 255 ? 1 : 0;// red < 128 ? 1 : 0; arr.push(isBlack); } @@ -154,7 +163,7 @@ this.clearCanvas(); // 3. 设置文字样式 - ctx.setFillStyle(this.color); + ctx.setFillStyle('#000000');//this.color ctx.setTextBaseline('middle'); // ctx.setTextAlign('center') ctx.setFontSize(this.fontSize); diff --git a/components/TextToHex/textToDotMatrixFor7305.vue b/components/TextToHex/textToDotMatrixFor7305.vue index ddf0847..082a62e 100644 --- a/components/TextToHex/textToDotMatrixFor7305.vue +++ b/components/TextToHex/textToDotMatrixFor7305.vue @@ -65,7 +65,7 @@ * 清除Canvas内容 */ clearCanvas() { - this.ctx.setFillStyle(this.bgColor); + this.ctx.setFillStyle('#FFFFFF');//this.bgColor this.ctx.fillRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); }, @@ -82,9 +82,9 @@ this.currentCanvasWidth = 16; this.currentCanvasHeight = 16; this.clearCanvas(); - this.ctx.setFillStyle(this.color); + this.ctx.setFillStyle('#000000');//this.color this.ctx.setFontSize(this.fontSize); - this.ctx.font = `${this.fontSize}px "PingFangBold", "PingFang SC", Arial, sans-serif`; + this.ctx.font = `${this.fontSize}px "PingFang SC","PingFangBold", Arial, sans-serif`; this.ctx.setTextBaseline('middle'); this.ctx.fillText('测', 0, 8); @@ -158,12 +158,20 @@ // pixels.push(R < 128 ? 1 : 0); - const R = imageData[i]; - const G = imageData[i + 1]; - const B = imageData[i + 2]; - const gray = 0.299 * R + 0.587 * G + 0.114 * B; // 灰度转换 - pixels.push(gray < 128 ? 1 : 0); + // const R = imageData[i]; + // const G = imageData[i + 1]; + // const B = imageData[i + 2]; + // const gray = 0.299 * R + 0.587 * G + 0.114 * B; // 灰度转换 + // pixels.push(gray < 128 ? 1 : 0); + let r = imageData[i]; + let g = imageData[i+1]; + let b = imageData[i+2]; + + + let gray = (r + g + b) / 3; + let bit = gray < 255 ? 1 : 0; + pixels.push(bit); } const lowBytes = new Array(charWidth).fill(0); @@ -197,11 +205,11 @@ this.clearCanvas(); // 3. 设置文字样式 - ctx.setFillStyle(this.color); + ctx.setFillStyle('#000000');//this.color ctx.setTextBaseline('middle'); // ctx.setTextAlign('center') ctx.setFontSize(this.fontSize); - ctx.font = `${this.fontSize}px "PingFangBold", "PingFang SC", Arial, sans-serif`; + ctx.font = `${this.fontSize}px "PingFang SC","PingFangBold", Arial, sans-serif`; // 4. 绘制当前行文本 debugger; diff --git a/components/TextToHex/textToDotMatrixV1.vue b/components/TextToHex/textToDotMatrixV1.vue index 5191740..04f2cb0 100644 --- a/components/TextToHex/textToDotMatrixV1.vue +++ b/components/TextToHex/textToDotMatrixV1.vue @@ -59,7 +59,7 @@ * 清除Canvas内容 */ clearCanvas() { - this.ctx.setFillStyle(this.bgColor); + this.ctx.setFillStyle('#FFFFFF');//this.bgColor this.ctx.fillRect(0, 0, this.currentCanvasWidth, this.currentCanvasHeight); }, @@ -105,10 +105,18 @@ let G = imageData[index+1]; let B = imageData[index]+2; + // let r = imageData[i]; + // let g = imageData[i+1]; + // let b = imageData[i+2]; + + + let gray = (R + G + B) / 3; + let bit = gray < 255 ? 1 : 0; + // 黑色像素(R值较低)视为1,白色视为0 - let isBlack = R < 128 ? 1 : 0; - arr.push(isBlack); + // let isBlack = R < 128 ? 1 : 0; + arr.push(bit); } } @@ -159,11 +167,11 @@ this.clearCanvas(); // 3. 设置文字样式 - ctx.setFillStyle(this.color); + ctx.setFillStyle('#000000');//this.color ctx.setTextBaseline('middle'); // ctx.setTextAlign('center') ctx.setFontSize(this.fontSize); - ctx.font = `${this.fontSize}px "PingFangBold", "PingFang SC", Arial, sans-serif`; + ctx.font = `${this.fontSize}px PingFangBold", "PingFang SC", Arial, sans-serif`; // 4. 绘制当前行文本 let currentX = 0; diff --git a/pages/6075J/BJQ6075J.vue b/pages/6075J/BJQ6075J.vue index 23e169c..08d522c 100644 --- a/pages/6075J/BJQ6075J.vue +++ b/pages/6075J/BJQ6075J.vue @@ -39,7 +39,7 @@ - + {{formData.sta_ShakeBit==3?'设备疑似受到外力碰撞':'设备声光报警中'}}! @@ -1418,7 +1418,7 @@ console.error("出现错误", ex) }); } - let msg = val == 1 ? '确定开启声光报警' : '确定关闭声光报警'; + let msg = val == 1 ? '确定开启声光报警' : '确定解除声光报警'; showPop({ message: msg, diff --git a/utils/BleHelper.js b/utils/BleHelper.js index 3d2b207..c531e02 100644 --- a/utils/BleHelper.js +++ b/utils/BleHelper.js @@ -668,7 +668,7 @@ class BleHelper { BleReceive() { uni.onBLECharacteristicValueChange((receive) => { //订阅消息 - console.log("收到订阅消息", receive); + // console.log("收到订阅消息", receive); let f = this.data.LinkedList.find((v) => { return v.deviceId == receive.deviceId; }) From 2b7ae4ebaacf5230fa149a481674fcd9f8cda3e0 Mon Sep 17 00:00:00 2001 From: liub Date: Mon, 6 Apr 2026 14:02:00 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=93=9D=E7=89=99?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E5=9C=A8=E9=A6=96=E9=A1=B5=E7=9A=84=E5=BC=B9?= =?UTF-8?q?=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/6170/deviceControl/index.vue | 122 +++++++------- pages/common/addDevice/addBle.vue | 29 ++-- pages/common/index/index.vue | 11 +- utils/BleHelper.js | 19 +-- utils/BleReceive.js | 259 ++++++++++++++++------------- 5 files changed, 232 insertions(+), 208 deletions(-) diff --git a/pages/6170/deviceControl/index.vue b/pages/6170/deviceControl/index.vue index 04b3c39..067425d 100644 --- a/pages/6170/deviceControl/index.vue +++ b/pages/6170/deviceControl/index.vue @@ -58,6 +58,12 @@ {{getbleStatu}} + + 充电状态 + + {{deviceInfo.chargeState != 0?'充电中':'未充电'}} + + 定位信息 @@ -73,7 +79,7 @@ - + 设备强制报警中 { + if (this.deviceInfo.batteryPercentage < 20 && + this.deviceInfo.chargeState == 0) { + this.popupType = 'bettery'; + this.popupMessage = '请及时充电'; + this.showPopupFlag = true; + } + if (this.apiType === 'listA') { + this.fetchDeviceDetail(data.data.id) + } else { + // 分享权限详情 + this.fetchSharedDeviceDetail(data.data.id) + } + }, 10000); + // 上报电量,在列表里面同步 + uni.$emit('deviceStatusUpdate', { + message: parsedMessage, + timestamp: new Date().getTime() + }); + break; + default: + console.log('未知的 deviceState 类型:', deviceState[0]); + } + }, bleStatuToggle() { let f = this.getDevice(); if (!f) { @@ -532,11 +584,9 @@ } let data = rec.ReceiveData(receive, device, pagePath, recArr); console.log("蓝牙收到消息", data) - this.receivData(data); - }, - receivData(data) { - + this.onReceive(data.state); }, + bleStateBreak() { if (this.Status.pageHide) { return; @@ -1566,6 +1616,7 @@ // this.popupConfirmText=""; }, OpenWarn(val){//开启/解除强制报警 + debugger; const topic = `B/${this.itemInfo.deviceImei}`; let message={"instruct":[7,val,0,0,0,0]}; message=JSON.stringify(message); @@ -1575,6 +1626,8 @@ }); if(flag){ this.itemInfo.alarmStatus=val; + }else{ + MsgError("操作没有成功",'确定',this); } this.showPopupFlag = false; @@ -1644,11 +1697,11 @@ // 3.解除告警状态 const registerRes = await deviceSendAlarmMessage(data); if (registerRes.code !== 200) { - uni.showToast({ - title: registerRes.msg, - icon: 'none' - }) - + // uni.showToast({ + // title: registerRes.msg, + // icon: 'none' + // }) + this.OpenWarn(0); return } this.itemInfo.alarmStatus=0; @@ -1908,53 +1961,8 @@ const deviceState = parsedMessage.state; // 直接取 state 数组 // 切换主灯光模式,亮度值设备同步 if (!deviceState) return; - // 1设备切换灯光实时返回 - switch (deviceState[0]) { - case 1: - this.currentMainMode = this.getMainLightModeLabel( - deviceState[ - 1]); - this.sliderValue = deviceState[2]; - this.deviceInfo.batteryRemainingTime = deviceState[3]; - break; - // 12为设备实时上报 - case 12: - this.currentMainMode = this.getMainLightModeLabel( - deviceState[ - 1]); - this.isLaserOn = deviceState[2] === 1; //第3位表示当时激光灯档位 - this.currentlaserMode = this.isLaserOn ? "开启" : "关闭"; - if (this.deviceInfo) { - this.deviceInfo.batteryPercentage = deviceState[ - 3]; //第4位电量百分比 - this.deviceInfo.chargeState = deviceState[ - 4]; //第5位为充电状态(0没有充电,1正在充电,2为已充满) - this.deviceInfo.batteryRemainingTime = deviceState[ - 5]; //第6位200代表电池剩余续航时间200分钟 - } - setTimeout(() => { - if (this.deviceInfo.batteryPercentage < 20 && - this.deviceInfo.chargeState == 0) { - this.popupType = 'bettery'; - this.popupMessage = '请及时充电'; - this.showPopupFlag = true; - } - if (this.apiType === 'listA') { - this.fetchDeviceDetail(data.data.id) - } else { - // 分享权限详情 - this.fetchSharedDeviceDetail(data.data.id) - } - }, 10000); - // 上报电量,在列表里面同步 - uni.$emit('deviceStatusUpdate', { - message: parsedMessage, - timestamp: new Date().getTime() - }); - break; - default: - console.log('未知的 deviceState 类型:', deviceState[0]); - } + + this.onReceive(deviceState); } catch (error) { console.log('解析MQTT消息失败:', error, '原始消息:', payload); } diff --git a/pages/common/addDevice/addBle.vue b/pages/common/addDevice/addBle.vue index d963791..bddf46d 100644 --- a/pages/common/addDevice/addBle.vue +++ b/pages/common/addDevice/addBle.vue @@ -482,20 +482,20 @@ ble.addStateBreakCallback(() => { - uni.showModal({ - title: '提示', - content: '蓝牙不可用' - }); + + + MsgError('蓝牙不可用','',these); these.EquipMents.filter((v, i) => { these.$set(these.EquipMents[i], 'link', false); }); }, pagePath); ble.addStateRecoveryCallback(() => { - uni.showModal({ - title: '提示', - content: '蓝牙恢复可用' - }); + + + MsgSuccess('蓝牙恢复可用','',these,()=>{ + MsgClear(these); + }) }, pagePath); @@ -568,7 +568,7 @@ plus.runtime.openURL('weixin://', (err) => { - MsgError("打开微信失败,请手动打开微信粘贴"); + MsgError("打开微信失败,请手动打开微信,发送至'文件传输助手'"); }); }, fail(ex){ @@ -805,10 +805,8 @@ let json = getUrlParams(res.result); if (!json.key) { - uni.showModal({ - title: '错误', - content: "无效的二维码" - }) + + MsgError('无效的二维码','',these); return; } this.scanKey = json.key; @@ -1050,9 +1048,8 @@ these.sendEquipToMq(); }).catch(ex => { console.log("ex=", ex) - uni.showModal({ - content: "连接失败:" + ex.msg - }); + + MsgError("连接失败:" + ex.msg,'',these); hideLoading(these); }); } diff --git a/pages/common/index/index.vue b/pages/common/index/index.vue index 1fbee95..d9dc6cd 100644 --- a/pages/common/index/index.vue +++ b/pages/common/index/index.vue @@ -134,6 +134,9 @@ + + + @@ -772,7 +775,8 @@ this.downCallback(); }); ble = bleTool.getBleTool(); - recei = BleReceive.getBleReceive(); + console.log("this=",this); + recei = BleReceive.getBleReceive(this); //蓝牙连接成功的回调 ble.addRecoveryCallback((res) => { // console.log("蓝牙连接成功的回调"); @@ -799,8 +803,9 @@ //接收到消息的回调 ble.addReceiveCallback((receive, device, path, recArr) => { - // console.error("首页收到消息了"); - recei.ReceiveData(receive, device, path, recArr); + console.error("首页收到消息了"); + let json=recei.ReceiveData(receive, device, path, recArr); + console.error("消息内容",json); this.updateBleStatu(); }, pagePath); diff --git a/utils/BleHelper.js b/utils/BleHelper.js index c531e02..77abe9c 100644 --- a/utils/BleHelper.js +++ b/utils/BleHelper.js @@ -22,9 +22,6 @@ const serviceDic = [ //合作供应商的蓝牙主服务 class BleHelper { constructor() { this.StorageKey = "linkedDevices"; - - recei = receivTool.getBleReceive(); - this.init(); } init() { @@ -41,16 +38,12 @@ class BleHelper { if (!v) return false; v.Linked = false; v.notifyState = false; - return !!v.device; + return v.device; }); } - const systemInfo = uni.getSystemInfoSync(); - - - this.data = { isOpenBlue: false, //蓝牙模块是否开启 available: false, //蓝牙状态是否可用 @@ -71,17 +64,7 @@ class BleHelper { stateRecoveryCallback: [], //蓝牙适配器恢复可用事件 stateBreakCallback: [] //蓝牙适配器不可用事件 } - //蓝牙模块不再订阅,改到首页订阅 - // this.addReceiveCallback((receive, f, path, recArr) => { - // recei.ReceiveData(receive, f, path, recArr); - // }, "BleReceiveData"); - // setTimeout(() => { - // this.OpenBlue().then(() => { - // this.linkAllDevices(); - // }); - - // }, 10); this.dic = { errRemarks: [{ diff --git a/utils/BleReceive.js b/utils/BleReceive.js index a9175c7..c68768a 100644 --- a/utils/BleReceive.js +++ b/utils/BleReceive.js @@ -1,8 +1,20 @@ import Common from '@/utils/Common.js' -import { parseBleData } from '@/api/100J/HBY100-J.js' +import { + parseBleData +} from '@/api/100J/HBY100-J.js' +import { + MsgSuccess, + MsgError, + MsgClose, + MsgWarning, + showPop, + MsgClear, + MsgInfo +} from '@/utils/MsgPops.js'; class BleReceive { - constructor() { + constructor(_ref) { + this.ref = _ref; this.StorageKey = "linkedDevices"; this.HandlerMap = { '/pages/6155/deviceDetail': this.Receive_6155.bind(this), @@ -13,10 +25,11 @@ class BleReceive { '/pages/4877/BJQ4877': this.Receive_4877.bind(this), '/pages/100/HBY100': this.Receive_100.bind(this), '/pages/102/HBY102': this.Receive_102.bind(this), - '/pages/6170/deviceControl/index':this.Receive_6170.bind(this), + '/pages/6170/deviceControl/index': this.Receive_6170.bind(this), '/pages/100J/HBY100-J': this.Receive_100J.bind(this), - '/pages/6075J/BJQ6075J':this.Receive_6075.bind(this) + '/pages/6075J/BJQ6075J': this.Receive_6075.bind(this) }; + } @@ -63,23 +76,23 @@ class BleReceive { return receive; } - if (f && f.macAddress && f.device && f.device.id) { + if (fReady) { let handler = null; let keys = Object.keys(this.HandlerMap); let devKey = f.device.detailPageUrl ? f.device.detailPageUrl.replace(/\//g, '').toLowerCase() : ''; - + for (let index = 0; index < keys.length; index++) { let devKey = f.device.detailPageUrl ? f.device.detailPageUrl.replace(/\//g, "").toLowerCase() : ''; let key = keys[index].replace(/\//g, '').toLowerCase(); if (key == devKey) { handler = this.HandlerMap[keys[index]]; - + break; } } if (handler) { - let data = handler(receive, f, path, recArr); + let data = handler(receive, f, path, recArr); this.setBleFormData(data, f); return data; } else { @@ -89,7 +102,7 @@ class BleReceive { } else { // 100J AE30 二进制帧在 f 不完整时已在上方 parseBleData,此处不再误报「无法处理」 if (!is100JAe30) { - console.log("已收到该消息,但无法处理", receive, "f:", f); + console.error("已收到该消息,但无法处理", receive, "f:", f); } } @@ -180,40 +193,33 @@ class BleReceive { formData.modeCurr = modeCurr; formData.warnLevel = warn; formData.iswarn = iswarn; - + let recCnt = recArr.find(v => { return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl .replace(/\//g, "").toLowerCase(); }); if (!recCnt) { + let msg = []; + if (f) { + if (formData.battary <= 20) { + msg.push("设备'" + f.device.deviceName + "'电量低"); + } + if (iswarn) { + msg.push("设备'" + f.device.deviceName + "'环境存在漏电电源"); + } - if (iswarn) { - uni.showModal({ - content: "'" + f.device.deviceName + "'环境存在漏电电源", - title: "警告", - success(res) { - if (res.confirm) { - - if (f) { - uni.navigateTo({ - url: f.detailPageUrl, - events: { - ack: function(data) {} - }, - success: (res) => { - res.eventChannel.emit('detailData', { - data: f, - deviceType: '', - apiType: 'listA' - }); - } - }); - } - } + if (this.ref && msg.length>0) { + if (msg.length > 0) { + msg = msg.join(','); + MsgError("'" + f.device.deviceName + "'环境存在漏电电源", '', this.ref, () => { + MsgClear(this.ref); + }); } - }) + } } + + } return formData; } catch (error) { @@ -229,7 +235,7 @@ class BleReceive { if (str.indexOf('mac address:') == 0) { let formData = {}; formData.macAddress = str.split(':')[1]; - + return formData; } else { let receiveData = { @@ -348,7 +354,7 @@ class BleReceive { receiveData.fourGStrenth = fourGStrenth; receiveData.SOS = sosTxt; receiveData.qzwarn = sosTxt === 'sg'; - + console.log("recArr=", recArr); let recCnt = recArr.find(v => { return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl @@ -362,13 +368,22 @@ class BleReceive { if (staticWarn) { //有静止报警 msgs.push("静止报警中"); } + if (receiveData.battary <= 20) { + msg.push("设备'" + f.device.deviceName + "'电量低"); + } if (msgs.length > 0) { - msgs = "设备'" + f.device.deviceName + msgs.join(";"); - uni.showModal({ - title: "警告", - content: msgs, - showCancel: false - }); + msgs = msgs.join(";"); + if (this.ref) { + MsgError(msgs, '', this.ref, () => { + MsgClear(this.ref); + }); + } + + // uni.showModal({ + // title: "警告", + // content: msgs, + // showCancel: false + // }); } } @@ -436,7 +451,7 @@ class BleReceive { console.log('将数据转文本失败', ex); } } - + return receiveData; } @@ -514,12 +529,13 @@ class BleReceive { }); if (!recCnt) { - if (batteryLevel <= 20) { - // 会弹出两个框,暂且注释掉这段代码 - uni.showModal({ - content: "设备'" + f.device.deviceName + "'电量低", - title: "提示" - }); + if (batteryLevel <= 20 && warn == 0x00) { + + if (this.ref) { + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + } } } @@ -613,13 +629,17 @@ class BleReceive { }); + console.log("formData=",formData) if (!recCnt) { - if (batteryLevel <= 20) { - // 会弹出两个框,暂且注释掉这段代码 - uni.showModal({ - content: "设备'" + f.device.deviceName + "'电量低", - title: "提示" - }); + console.log("11111"); + if (formData.battary <= 20 && bytes[5] == 0x00) { + console.log("2222") + if (this.ref) { + console.log("3333333"); + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + } } } @@ -646,11 +666,13 @@ class BleReceive { }); if (!recCnt) { if (receiveData.sta_PowerPercent <= 20) { - uni.showModal({ - title: "提示", - content: "设备'" + f.device.deviceName + "'电量低", - showCancel: false - }); + + if (this.ref) { + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + } + } } } catch (error) { @@ -674,12 +696,16 @@ class BleReceive { .replace(/\//g, "").toLowerCase(); }); if (!recCnt) { - if (receiveData.sta_battery <= 20) { - uni.showModal({ - title: "提示", - content: "设备'" + f.device.deviceName + "'电量低", - showCancel: false - }); + if (receiveData.sta_battery <= 20 && (receiveData.sta_system != '1' || receiveData.sta_system != + '3')) { + + if (this.ref) { + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + } + + } } } catch (error) { @@ -695,19 +721,22 @@ class BleReceive { try { if (!receive.bytes || receive.bytes.length < 3) return receiveData; // 与 HBY100-J 页 bleValueNotify 共用 notify,避免 parseBleData 执行两次:重复日志、FB05 双次 resolve、onNotify 双次 - const parsed = parseBleData(receive.bytes, { skipSideEffects: true }); + const parsed = parseBleData(receive.bytes, { + skipSideEffects: true + }); if (!parsed) return receiveData; if (parsed.longitude !== undefined) receiveData.longitude = parsed.longitude; if (parsed.latitude !== undefined) receiveData.latitude = parsed.latitude; if (parsed.batteryPercentage !== undefined) receiveData.batteryPercentage = parsed.batteryPercentage; - if (parsed.batteryRemainingTime !== undefined) receiveData.batteryRemainingTime = parsed.batteryRemainingTime; + if (parsed.batteryRemainingTime !== undefined) receiveData.batteryRemainingTime = parsed + .batteryRemainingTime; } catch (e) { console.log('[100J] BleReceive 解析失败', e); } return receiveData; } -Receive_6170(receive, f, path, recArr) { + Receive_6170(receive, f, path, recArr) { let receiveData = {}; try { @@ -721,21 +750,20 @@ Receive_6170(receive, f, path, recArr) { .replace(/\//g, "").toLowerCase(); }); if (!recCnt) { - if (receiveData.sta_PowerPercent <= 20) { - uni.showModal({ - title: "提示", - content: "设备'" + f.device.deviceName + "'电量低", - showCancel: false - }); + let deviceState = receiveData.state; + if (deviceState && deviceState instanceof Array) { + if (deviceState[0] == 12 && deviceState[3] <= 20 && deviceState[4] == 0) { + if (this.ref) { + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + } + } } - + + } - - - - - } catch (error) { receiveData = {}; console.error("文本解析失败", error) @@ -758,18 +786,21 @@ Receive_6170(receive, f, path, recArr) { .replace(/\//g, "").toLowerCase(); }); if (!recCnt) { - if (receiveData.sta_PowerPercent <= 20) { - uni.showModal({ - title: "提示", - content: "设备'" + f.device.deviceName + "'电量低", - showCancel: false - }); + + let msgs = []; + + if (receiveData.sta_PowerPercent <= 20 && receiveData.sta_charge == 0) { + msgs.push("设备'" + f.device.deviceName + "'电量低"); } if (receiveData.sta_Intrusion === 1) { - uni.showModal({ - title: "提示", - content: "闯入报警中", - showCancel: false + msgs.push("设备'" + f.device.deviceName + "'闯入报警中"); + } + + + if (this.ref && msg.length>0) { + msgs = msgs.join(","); + MsgError(msgs, '', this.ref, () => { + MsgClear(this.ref); }); } @@ -787,7 +818,7 @@ Receive_6170(receive, f, path, recArr) { if (receiveData.sta_tomac.indexOf(':') == -1) { receiveData.sta_tomac = receiveData.sta_tomac.replace(/(.{2})/g, '$1:').slice(0, - - 1); //mac地址自动补: + 1); //mac地址自动补: } uni.getStorageInfo({ success: function(res) { @@ -814,9 +845,9 @@ Receive_6170(receive, f, path, recArr) { let dev = arr.find(v => { if (v.linkId == f.linkId) { let vl = v.linkEqs.find(cvl => { - if(cvl.linkMac === receiveData.sta_tomac){ - v.read=false; - cvl.linkTime=time; + if (cvl.linkMac === receiveData.sta_tomac) { + v.read = false; + cvl.linkTime = time; return true; } return false; @@ -853,7 +884,7 @@ Receive_6170(receive, f, path, recArr) { console.error("某个设备闯入报警"); if (receiveData.sta_sosadd.indexOf(':') == -1) { receiveData.sta_sosadd = receiveData.sta_sosadd.replace(/(.{2})/g, '$1:').slice(0, - - 1); //mac地址自动补: + 1); //mac地址自动补: } warnArrs.push({ linkId: f.linkId, @@ -911,35 +942,33 @@ Receive_6170(receive, f, path, recArr) { } - Receive_6075(receive,f,path,recArr){ + Receive_6075(receive, f, path, recArr) { let receiveData = {}; - + try { receiveData = JSON.parse(receive.str); - + let recCnt = recArr.find(v => { return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl .replace(/\//g, "").toLowerCase(); }); - if (!recCnt) { - // if (receiveData.sta_PowerPercent <= 20) { - // uni.showModal({ - // title: "提示", - // content: "设备'" + f.device.deviceName + "'电量低", - // showCancel: false - // }); - // } - - + if (!recCnt && this.ref) { + if (receiveData.sta_PowerPercent <= 20 && (receiveData.sta_system != 3 || receiveData.sta_system !=1)) { + + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + + } } - + } catch (error) { receiveData = {}; console.log("文本解析失败", error) } return receiveData; - + } } @@ -947,10 +976,12 @@ Receive_6170(receive, f, path, recArr) { let receiveInstance = null; export default { - getBleReceive: function(found, receive) { + getBleReceive: function(_ref) { + console.log("_ref=",_ref); if (!receiveInstance) { - receiveInstance = new BleReceive(); - + receiveInstance = new BleReceive(_ref); + }else{ + console.log("使用现有实例receiveInstance") } return receiveInstance; } From 6715507125b3fa06385a5b13203bf8ad54f6c016 Mon Sep 17 00:00:00 2001 From: liub Date: Mon, 6 Apr 2026 17:28:15 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D100J=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=B0=8F=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages.json | 7 + pages/100J/HBY100-J.vue | 17 +- pages/210/HBY210.vue | 2707 +++++++++++++++++++-------------------- pages/210/HBY210Old.vue | 1528 ++++++++++++++++++++++ utils/BleReceive.js | 31 +- 5 files changed, 2884 insertions(+), 1406 deletions(-) create mode 100644 pages/210/HBY210Old.vue diff --git a/pages.json b/pages.json index 9289587..886b888 100644 --- a/pages.json +++ b/pages.json @@ -459,6 +459,13 @@ "style": { "navigationBarTitleText": "" } + }, + { + "path": "pages/210/HBY210", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "HBY210" + } } ], diff --git a/pages/100J/HBY100-J.vue b/pages/100J/HBY100-J.vue index ec3ff87..d9d23ac 100644 --- a/pages/100J/HBY100-J.vue +++ b/pages/100J/HBY100-J.vue @@ -58,6 +58,11 @@ {{ deviceInfo.onlineStatus === 0 ? '离线': '在线' }} + + 充电状态 + {{ deviceInfo.chargingStatus === 0 ? '未充电': '充电中' }} + 定位信息 @@ -192,6 +197,16 @@ + + + @@ -1506,7 +1521,7 @@ option.buttonBgColor = '#BBE600'; } these.Status.Pop.showPop = true; - showPop(option,this); + }, btnClick() { diff --git a/pages/210/HBY210.vue b/pages/210/HBY210.vue index 9b725c6..10c07f6 100644 --- a/pages/210/HBY210.vue +++ b/pages/210/HBY210.vue @@ -1,750 +1,671 @@ - \ No newline at end of file diff --git a/pages/210/HBY210Old.vue b/pages/210/HBY210Old.vue new file mode 100644 index 0000000..1177a37 --- /dev/null +++ b/pages/210/HBY210Old.vue @@ -0,0 +1,1528 @@ + + + + + \ No newline at end of file diff --git a/utils/BleReceive.js b/utils/BleReceive.js index c68768a..2e6ae17 100644 --- a/utils/BleReceive.js +++ b/utils/BleReceive.js @@ -27,7 +27,8 @@ class BleReceive { '/pages/102/HBY102': this.Receive_102.bind(this), '/pages/6170/deviceControl/index': this.Receive_6170.bind(this), '/pages/100J/HBY100-J': this.Receive_100J.bind(this), - '/pages/6075J/BJQ6075J': this.Receive_6075.bind(this) + '/pages/6075J/BJQ6075J': this.Receive_6075.bind(this), + '/pages/210/HBY210':this.Receive_210.bind(this), }; } @@ -970,6 +971,34 @@ class BleReceive { return receiveData; } + Receive_210(receive, f, path, recArr) { + let receiveData = {}; + + try { + + receiveData = JSON.parse(receive.str); + + let recCnt = recArr.find(v => { + return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl + .replace(/\//g, "").toLowerCase(); + }); + if (!recCnt && this.ref) { + if (receiveData.sta_PowerPercent <= 20 && (receiveData.sta_system != 3 || receiveData.sta_system !=1)) { + + MsgError("设备'" + f.device.deviceName + "'电量低", '', this.ref, () => { + MsgClear(this.ref); + }); + + } + } + + } catch (error) { + receiveData = {}; + console.log("文本解析失败", error) + } + return receiveData; + + } } From bb495646463e1fb905b4587f7a01ae1d965a38f0 Mon Sep 17 00:00:00 2001 From: liub Date: Tue, 7 Apr 2026 11:25:23 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/MsgBox/MsgBox.vue | 50 ++++++++++++----- components/global-loading/global-loading.vue | 5 +- pages/008A/HBY008A.vue | 13 +++-- pages/018A/HBY018A.vue | 2 +- pages/100/HBY100.vue | 2 +- pages/100Y/HBY100Y.vue | 2 +- pages/102/HBY102.vue | 2 +- pages/210/HBY210.vue | 2 +- pages/4877/BJQ4877.vue | 2 +- pages/4877/BJQ4877V1.vue | 2 +- pages/6075J/BJQ6075J.vue | 4 +- pages/6107/BJQ6107.vue | 2 +- pages/6155/BJQ6155.vue | 2 +- pages/6155/deviceDetail.vue | 2 +- pages/6170/deviceControl/index.vue | 2 +- pages/6331/BJQ6331.vue | 2 +- pages/650/HBY650.vue | 2 +- pages/670/HBY670.vue | 55 ++++++++++-------- pages/7305/BJQ7305.vue | 2 +- pages/common/index/index.vue | 56 +++++++++++++++---- static/images/670/qiangActive.png | Bin 2673 -> 1971 bytes static/images/670/ruoActive.png | Bin 2348 -> 1857 bytes static/images/common/dell.png | Bin 298 -> 2048 bytes static/images/lightImg/closeLight.png | Bin 1099 -> 2087 bytes static/images/lightImg/closeLightActive.png | Bin 0 -> 1526 bytes utils/BleReceive.js | 4 +- utils/MsgPops.js | 23 +++++++- 27 files changed, 165 insertions(+), 73 deletions(-) create mode 100644 static/images/lightImg/closeLightActive.png diff --git a/components/MsgBox/MsgBox.vue b/components/MsgBox/MsgBox.vue index 41f8d0c..3c4bea3 100644 --- a/components/MsgBox/MsgBox.vue +++ b/components/MsgBox/MsgBox.vue @@ -6,10 +6,12 @@ :buttonTextColor="item.buttonTextColor" :iconUrl="item.iconUrl" :message="item.message" :buttonText="item.buttonText" @buttonClick="okCallback(item,index)" :visiblePrompt="item.visiblePrompt" :promptTitle="item.promptTitle" v-model="item.modelValue" @closePop="closePop(item)" - :buttonCancelText="item.buttonCancelText" :showCancel="item.showCancel" + :buttonCancelText="item.buttonCancelText" :showCancel="item.showCancel" :showSlot="item.showSlot" :showHeader="item.showHeader" :headerTxt="item.headerTxt" - @cancelPop="cancelClick(item,index)" /> + @cancelPop="cancelClick(item,index)" > + + @@ -48,10 +50,10 @@ this.closePop(item); }, closePop: function(item) { - debugger; + if (item) { this.Msgboxs.find((v, i) => { - debugger; + if (item.key && v.key) { if (item.key === v.key) { this.Msgboxs.splice(i, 1); @@ -79,7 +81,7 @@ showPop: true, //是否显示弹窗 popType: 'custom', bgColor: '#383934bd', - borderColor: '#BBE600', + borderColor: '#BBE6004d', textColor: '#ffffffde', buttonBgColor: '#BBE600', buttonTextColor: '#232323DE', @@ -116,7 +118,7 @@ } if (!json.borderColor) { - json.borderColor = '#BBE600'; + json.borderColor = '#BBE6004d'; json.buttonBgColor = '#BBE600'; } json.showPop = true; @@ -137,21 +139,37 @@ error: { icoUrl: '/static/images/common/uploadErr.png', borderColor: "#e034344d", - buttonBgColor: "#E03434" + buttonBgColor: "#E03434", + bgColor:'#38393466', + buttonTextColor:'#FFFFFFde' }, succ: { icoUrl: '/static/images/common/success.png', - borderColor: "#BBE600", - buttonBgColor: "#BBE600" + borderColor: "#BBE6004d", + buttonBgColor: "#BBE600", + bgColor:'#38393466' }, warn: { icoUrl: '/static/images/common/warning.png', - borderColor: "#FFC84E", + borderColor: "#FFC84E4d", buttonBgColor: "#FFC84E", + bgColor:'#38393466' }, info:{ - borderColor: "#BBE600", - buttonBgColor: "#BBE600" + borderColor: "#BBE6004d", + buttonBgColor: "#BBE600", + bgColor:'#38393466' + }, + prompt:{ + + + borderColor: "#aed6004d", + buttonBgColor: "#aed600", + bgColor:'#38393466', + buttonTextColor:'#232323de', + showSlot:true, + showCancel:true, + buttonCancelText:'取消' } } @@ -171,7 +189,13 @@ borderColor: cfg[type].borderColor, buttonBgColor: cfg[type].buttonBgColor, buttonText: btnTxt ? btnTxt : '确定', - okCallback: okCallback ? okCallback : this.closePop + okCallback: okCallback ? okCallback : this.closePop, + buttonTextColor:cfg[type].buttonTextColor, + bgColor:cfg[type].bgColor, + showSlot:cfg[type].showSlot, + showCancel:cfg[type].showCancel, + buttonCancelText:cfg[type].buttonCancelText + }; return this.showPop(options); diff --git a/components/global-loading/global-loading.vue b/components/global-loading/global-loading.vue index 2a73aab..138339e 100644 --- a/components/global-loading/global-loading.vue +++ b/components/global-loading/global-loading.vue @@ -141,9 +141,8 @@ flex-direction: column; align-items: center; justify-content: center; - transform: translateZ(0); - /* 启用GPU加速 */ - margin-top: -150rpx; + transform: translateZ(0); + margin-top: 0rpx; } /* 刻度容器 */ diff --git a/pages/008A/HBY008A.vue b/pages/008A/HBY008A.vue index a6b2dd8..fabaf03 100644 --- a/pages/008A/HBY008A.vue +++ b/pages/008A/HBY008A.vue @@ -66,7 +66,9 @@ + + @@ -85,7 +87,8 @@ MsgClose, MsgWarning, showPop, - MsgInfo + MsgInfo, + MsgPrompt } from '@/utils/MsgPops.js' import Common from '@/utils/Common.js'; import BleTool from '@/utils/BleHelper.js' @@ -213,7 +216,7 @@ }, onLoad() { - + these = this; recei = BleReceive.getBleReceive(); ble = BleTool.getBleTool(); @@ -227,8 +230,8 @@ eventChannel = this.getOpenerEventChannel(); - eventChannel.on('detailData', function(data) { - + eventChannel.on('detailData', (data)=> { + console.log("收到父页面的参数:" + JSON.stringify(data)); var device = data.data; these.Status.apiType = data.apiType; @@ -1196,7 +1199,7 @@ .navbarRight .img { width: 35rpx; height: 35rpx; - margin-right: 20rpx; + margin-right: 30rpx; } .uni-navbar--fixed { diff --git a/pages/018A/HBY018A.vue b/pages/018A/HBY018A.vue index 2c38b37..2052a4e 100644 --- a/pages/018A/HBY018A.vue +++ b/pages/018A/HBY018A.vue @@ -623,7 +623,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/100/HBY100.vue b/pages/100/HBY100.vue index 2e11bab..d988b27 100644 --- a/pages/100/HBY100.vue +++ b/pages/100/HBY100.vue @@ -1360,7 +1360,7 @@ onFreqChanging(e){ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/100Y/HBY100Y.vue b/pages/100Y/HBY100Y.vue index cf619a7..4c43935 100644 --- a/pages/100Y/HBY100Y.vue +++ b/pages/100Y/HBY100Y.vue @@ -1196,7 +1196,7 @@ .navbarRight .img { width: 35rpx; height: 35rpx; - margin-right: 20rpx; + margin-right: 30rpx; } .uni-navbar--fixed { diff --git a/pages/102/HBY102.vue b/pages/102/HBY102.vue index 113d0ed..f9ab8c2 100644 --- a/pages/102/HBY102.vue +++ b/pages/102/HBY102.vue @@ -1365,7 +1365,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/210/HBY210.vue b/pages/210/HBY210.vue index 10c07f6..edd15d3 100644 --- a/pages/210/HBY210.vue +++ b/pages/210/HBY210.vue @@ -1410,7 +1410,7 @@ display: flex; .navbarRight .img { width: 35rpx; height: 35rpx; - margin-right: 20rpx; + margin-right: 30rpx; } .uni-navbar--fixed { diff --git a/pages/4877/BJQ4877.vue b/pages/4877/BJQ4877.vue index 71d7976..11ca4e5 100644 --- a/pages/4877/BJQ4877.vue +++ b/pages/4877/BJQ4877.vue @@ -1252,7 +1252,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/4877/BJQ4877V1.vue b/pages/4877/BJQ4877V1.vue index 894db34..cb07bc4 100644 --- a/pages/4877/BJQ4877V1.vue +++ b/pages/4877/BJQ4877V1.vue @@ -748,7 +748,7 @@ import request, { baseURL } from '@/utils/request.js'; borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/6075J/BJQ6075J.vue b/pages/6075J/BJQ6075J.vue index 08d522c..86221db 100644 --- a/pages/6075J/BJQ6075J.vue +++ b/pages/6075J/BJQ6075J.vue @@ -1912,7 +1912,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', showCancel: true, okCallback: function() { console.log("1111"); @@ -2858,7 +2858,7 @@ .navbarRight .img { width: 35rpx; height: 35rpx; - margin-right: 20rpx; + margin-right: 30rpx; } .uni-navbar--fixed { diff --git a/pages/6107/BJQ6107.vue b/pages/6107/BJQ6107.vue index 840d484..d56e3fa 100644 --- a/pages/6107/BJQ6107.vue +++ b/pages/6107/BJQ6107.vue @@ -840,7 +840,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/6155/BJQ6155.vue b/pages/6155/BJQ6155.vue index d0a89a1..b83802b 100644 --- a/pages/6155/BJQ6155.vue +++ b/pages/6155/BJQ6155.vue @@ -708,7 +708,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { // console.log("1111"); uni.navigateTo({ diff --git a/pages/6155/deviceDetail.vue b/pages/6155/deviceDetail.vue index 5071785..56d92a9 100644 --- a/pages/6155/deviceDetail.vue +++ b/pages/6155/deviceDetail.vue @@ -688,7 +688,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { // console.log("1111"); uni.navigateTo({ diff --git a/pages/6170/deviceControl/index.vue b/pages/6170/deviceControl/index.vue index 067425d..5db95c3 100644 --- a/pages/6170/deviceControl/index.vue +++ b/pages/6170/deviceControl/index.vue @@ -556,7 +556,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', showCancel: true, okCallback: function() { console.log("1111"); diff --git a/pages/6331/BJQ6331.vue b/pages/6331/BJQ6331.vue index ed179ee..e69a769 100644 --- a/pages/6331/BJQ6331.vue +++ b/pages/6331/BJQ6331.vue @@ -739,7 +739,7 @@ import request, { baseURL } from '@/utils/request.js'; borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/650/HBY650.vue b/pages/650/HBY650.vue index b39916f..e71eadd 100644 --- a/pages/650/HBY650.vue +++ b/pages/650/HBY650.vue @@ -822,7 +822,7 @@ import request, { baseURL } from '@/utils/request.js'; borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { uni.navigateTo({ diff --git a/pages/670/HBY670.vue b/pages/670/HBY670.vue index a76b342..f2fbd45 100644 --- a/pages/670/HBY670.vue +++ b/pages/670/HBY670.vue @@ -180,7 +180,7 @@ 关闭 @@ -340,7 +340,7 @@ borderColor: '#BBE600', textColor: '#ffffffde', buttonBgColor: '#BBE600', - buttonTextColor: '#232323DE', + buttonTextColor: '#FFFFFFDE', iconUrl: '', message: '您确定要这样做吗?', @@ -725,7 +725,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', showCancel: true, cancelCallback: () => { // this.closePop(); @@ -1178,6 +1178,7 @@ iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde", okCallback: null, buttonText: "确定" },these) @@ -1221,6 +1222,7 @@ iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde" },these); }).finally(() => { @@ -1285,7 +1287,8 @@ message: "通信异常,请检查手机或设备网络", iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde" },these); }).finally(() => { @@ -1367,7 +1370,8 @@ message: '无操作权限', iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde", okCallback: null, buttonText: "确定" },these) @@ -1439,7 +1443,8 @@ message: "通信异常,请检查手机或设备网络", iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde" },these); }).finally(() => { @@ -1562,6 +1567,7 @@ iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", buttonBgColor: "#E03434", + buttonTextColor:"#FFFFFFde", okCallback: OpenSOS, buttonText: "开启" },these); @@ -1591,6 +1597,7 @@ iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde", okCallback: null, buttonText: "确定" },these) @@ -1632,7 +1639,8 @@ message: "通信异常,请检查手机或设备网络", iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde" },these); }).finally(() => { @@ -2192,7 +2200,8 @@ message: '无操作权限', iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde", okCallback: null, buttonText: "确定" },these) @@ -2313,7 +2322,8 @@ message: '无操作权限', iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde", okCallback: null, buttonText: "确定" },these) @@ -2531,7 +2541,8 @@ message: '无操作权限', iconUrl: "/static/images/common/uploadErr.png", borderColor: "#e034344d", - buttonBgColor: "#E03434", + buttonBgColor: "#E03434", + buttonTextColor: "#FFFFFFde", okCallback: null, buttonText: "确定" },these) @@ -2921,18 +2932,16 @@ } - .usrinfo .btnSend { - line-height: 65rpx; - border-radius: 8px; - width: 120rpx; - height: 65rpx; - color: rgba(35, 35, 35, 0.87); - font-family: PingFang SC; - font-size: 24rpx; - font-weight: 400; - letter-spacing: 0.15rpx; - text-align: center; - background-color: #BBE600; + .usrinfo .btnSend { + background-color: rgb(187, 230, 0); + color: rgba(35, 35, 35, 0.87); + height: 50rpx; + line-height: 50rpx; + border-radius: 16rpx; + font-size: 26rpx; + width: 112rpx; + white-space: nowrap; + text-align: center; } .usrinfo .item { @@ -3330,7 +3339,7 @@ .navbarRight .img{ width: 35rpx; height: 35rpx; - margin-right: 20rpx; + margin-right: 30rpx; } .uni-navbar--fixed{ top:0rpx; diff --git a/pages/7305/BJQ7305.vue b/pages/7305/BJQ7305.vue index a5f89ab..f980767 100644 --- a/pages/7305/BJQ7305.vue +++ b/pages/7305/BJQ7305.vue @@ -628,7 +628,7 @@ borderColor: "#e034344d", buttonBgColor: "#E03434", buttonText: '去连接', - buttonTextColor: '#232323de', + buttonTextColor: '#FFFFFFde', okCallback: function() { console.log("1111"); uni.navigateTo({ diff --git a/pages/common/index/index.vue b/pages/common/index/index.vue index d9dc6cd..0c95f43 100644 --- a/pages/common/index/index.vue +++ b/pages/common/index/index.vue @@ -27,7 +27,7 @@ - + + @@ -98,14 +99,15 @@ - 设备名称 - 名称 + + @@ -878,12 +880,25 @@ text-align: center; /* 文字居中 */ /* 设置最小宽度 */ + + position: relative; } - .active { - color: rgba(187, 230, 0, 1); - border-bottom: 6rpx solid rgba(187, 230, 0, 1); + .tab-item.active { + color: #bbe600; + height: 60rpx; + font-weight: bold; + } + .tab-item.active::before{ + content: ""; + background-color: #bbe600; + position: absolute; + top: 90%; + left:35%; + width: 30%; + height: 6rpx; + border-radius: 6rpx; } .sendFlex { @@ -1133,14 +1148,32 @@ border-radius: 40rpx; padding: 30rpx; text-align: center; - border: 1px solid rgba(255, 200, 78, 0.3); + border: 1px solid #E034344d; } + + .cancelBtn{ + + + text-align: center; + width: 170rpx !important; + background-color: #00000000; + } + + .agreement-popupC .cancelBtn{ + border:1rpx solid #E034344d; + color:#E03434; + } + + .agreement-popupD .cancelBtn{ + border: 1rpx solid rgba(255, 255, 255, 0.6); + color:rgba(255, 255, 255, 0.6); + } .agreement-popupD { - width: 70%; + width: 75%; background-color: rgb(42, 42, 42); border-radius: 40rpx; - padding: 40rpx; + padding: 40rpx 5rpx; text-align: center; border: 1px solid rgba(187, 230, 0, 0.3); } @@ -1162,6 +1195,7 @@ font-size: 28rpx; text-align: left; text-indent: 5rpx; + width: calc(100% - 75rpx); } .svg { @@ -1182,8 +1216,8 @@ /* 同意按钮 */ .agreeBtn { - background: #FFC84E; - color: #232323; + background: #E03434; + color: #FFFFFF; border: none; width: 170rpx !important; } diff --git a/static/images/670/qiangActive.png b/static/images/670/qiangActive.png index b4930b5c8abcdf7f3dc86a44ec0ff211f8576f85..159febaf334fac9a0830e26e844ff2f230593c16 100644 GIT binary patch literal 1971 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 diff --git a/static/images/670/ruoActive.png b/static/images/670/ruoActive.png index 5c6f7d8797948e9729c475d369db30d07a0cae27..6d8ebeb2a12dd112e399fa0a1f485a464ec8c33f 100644 GIT binary patch literal 1857 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 WxrWi;+u$#Vk(QF4{KZ>`OaBS>B11_4 diff --git a/static/images/common/dell.png b/static/images/common/dell.png index 71ff6da83cc564bed3ea757a1e2b0c0c9c565189..6c074f3807aef9b4eb6c5a9348f94688c3ef99ac 100644 GIT binary patch literal 2048 zcmah~dpy&7AO9Ijayxb$FPD1UdL}j7%yoult2mh3$Ym~@Z7ea_)`k>0Xu2+yC33cq zaxI~`q|-%2Eiri|>GhO`63??7LOj2n)9XCX^Vjpo=li+8KcDaWkMCCyMBJ;ZZK@3b zfUd6(Aq3Qpptxvl08jiU=5A1_u|xKH0}ap2r$I*}5f^|1fSYGFuTnHYe^Z)IBpU$q z9;ig^F{_3KHWV^R5uAtse@p@^#hyZAQR(*llr*p!0I**CG)h7;ont|zCo)q#U~?Va zFbgKl1Gdj802z>mrzbIeGSlgynM6`TW^#fX4d&&ktBvJjK!g-Jhho7`IgrZ6@I9>l z0LFl}DvYr5#HQ02m=MCA?-iiuVU@(;q+t*U9*<|wL)){`6A>skH#Y>*0pZ{P2P@$0 zj8qPV4^L%Ve+MAY*$L^)G!B!MYM}z8P+44#hZUF0q+u8oh7*-WbAnSTXc`=aqEX-! z8X5(sq0uxKCzPuL14Xs^KAyv5{AYeD`#TLFAqZ6lfwD)cR#w@Vz;q@Z+(I?d6NUXF z|35J-Lbb?$E#~=W1iUL~{l$!mroY&wr-GF7K<;*)7i|WB4G>=fj+BI-EtRpza-+xH zir4Pl*w$iy@1)JQQQO5_=rQc66a%ZOj%rEdZ^v5qyNr`0?j!kORco3tB)iQ9m+kGQ zAa<5U8d|t3+pbY<$j11k3qJ}+7hIL^#GkoAmvX$S%69nEhWy;|CH|2kLc$t~ zK0Dmb9yQzXG9Fl|dsM(SLk+GD@+M+7Ipw`YBDFMoPhgv6udeq$Qv-?yvVQM_;sEkN zy^ZP8Y@2`8rs;H`hP7iN$aQ?hS{QXL+)v}i3_#Wp*31N@7Usuj_{vM@RUMV_^bZLthO?-Ix zynv0^B9K(%x8ro2YH!X|8*-I^TKhi6a})ovtuV9)XDoZimx}!hV+B*h5IFwAVZ+1( ztbnAk6naH^pOBQXels|Gz+_0fRBAc8QXIdw85%6m;tE|z@3$k{&Jru_a(&>+pWGLx zw*+%q+Do^U1PEzF-&BV)q)#oG+4_dhKanc;FBo6ka;2u(oLZ=NMntvd%{ z#P^d6u4@mzDP-%$)4RfJ}DZC&eEBgxI7MUUr0;rE017{vaOq z-P!{G@c49>l6cC#44bjBu09~by=(g08~=rXYAXCLry=}6n6k*uu` z*A9Uz@$#DD+)l&#rv1?JPoY8bEJ5!t)grCfO5DAlUvxuk^QIy!G()=fmy`AlGNTDx zFX;G|R$V}o;n)>tDcLtP2cPr$7=2v7R=()hW1g&mE{1tWb7OKInaK5lx7G=tNpmtI z(T>@8$djJ!_?#tv_*~#(Fx5D{@;k?Hp|AMTd1mt1%H zfeT^__32LhFFiRSiNkD-@V1EK{9~Rjjv*e$-(HR8JES1sa8XHbL4OC$`wp->a@onB7&77nOZRg!CacERcIx*$M#1}lNJXH@Gf7o&* zUr7jk$09IosA=X&Lb?$4ve=1!~7(+%@|`rmAs z_pkSppM9>|-e>h{#p3@C#ZK8SeXeSXvicgHDXBKq69s~#J6~m~NONT8*w1*j-TI6H u2kZYQ+iorWxjV5bC_Kq|{cir>Z&{@uoAn=CV5tW55re0zpUXO@geCyymU@N& diff --git a/static/images/lightImg/closeLight.png b/static/images/lightImg/closeLight.png index 506ea9b26c0649149e500bca9666f59efcc39a3e..b8493356eee482b74e946034e4e57f2d4fb75fee 100644 GIT binary patch literal 2087 zcmY*ad0dj&8va0Y%Oz|qEi|OAW(Ej|3u>04=_IaDnwheFiXxI=qGKbJ<=Q%>qLpJQ zC01r=O_O7^IA(&^EGu#}Yl_OsC9Y$ollNn8zq$AR@t*Up&-%oO{j0I3^E(l8y0)X`` zgTcD9&a$C_VlFLS6i$NX{`JVmM_~iaGjNfznBamWO76dlsJ>e7m~#R=)Zu; zkZ(xi(ChrO*&sQV68g0RiUQDSB9VZM!{z4YVsnYutn5@A-q+U`=Rv>`2pFgXBh2HA z7-9@xxbiCig(GBTa|I%979V8*WH7UGL;>iW94?y-GC&fO%_d=(3?dtY$Fmt22Ahb- zu!%&rHwo`U0P#%p*YzSU_}~3};a3?TL2!l&4v+OPP&WAFsBA6=VqsXh4)6b0{r__Q zI0KRYA-3*68R)H$_qQ?znf_Ln!-pizg|u6Hw0a=`n7D;gHqg?7-`8y79SixUyD-(F z9aCe!;v;-2+n zH})^LGSBQnm4vpLz05mMev+$;yq?(kT_S(e^FnP_=cn$A8$Gz4{wI}wjW&I^K)qlkJ*hzvs2F3=hg%dIY1847LpCSJVh4*Q-cp$=W^}EG zRa#GXWM0!)0deTGqL|hmMW3Zl+tB}vre~?UqquqMxkERQv4b|WX`N5xn&jrAitR_{ z&m(LRMCEi>Ifq9HBN91YM zy3(*JnFfAfR=+vL`y#ohzpm5Y;?AzA%u)VmQPfBn)ie_RRstKfO1XTiBvHO-AM%cR ztNLBe=#J5+;S#P%WZ4}uambWs%%6NpU^*ZY+|aZ7Dz~tqD)`Jt3(_(jdY)e_n}#j7 zt(K=jTuLJg&%@dkcRqRx1-rsSR8SP*vv*eY$Iu=kf(zQCQiiz$+ko)GRk%8l$j zl-QI5iJ?gO(s*a|u1~#JLt&(NjmoXKl<(DzSv-8sH2$Pq*Xk)-?-o&LOYB};?TEhQ zV6RTTAn$>f;q{6{c`wUFuG^gAcd<+TMCzwES8xduw3>V+BGrkAzU25A-ey!je5CO~ z+K-1H99PjAK*Sp_<$2Y875d8)W7uCGnf`>jxenS-SjO;trb<{t}i;j&cc3{x-;L zqV$fI_eHU6!EFzk_vG=CIhrZ0Lgrbk3Ev42k@D4~+C*^CYcuDL+Nkfb`(**NX=_AY zubMw&-Fx-H@f*B|l+ak^H7y|uz}L#UA0UeJ0_!>|el=!_XLdEqGU4MNR&2&3P`t}S zlxF%`qUToF3l<$`uPL)o~oen9FZZisFYz!dYrnAzdi*Mo-@m2P%!R56NKiL4CCs&b?xEa> zc0ZKSpY&3cJy5Yx;z^o-ZwJPyDIbcmA1>wGq}fC_*F}}>1f~R+6Dbcrw&r;Wg>-t52vtFS^-c z`RF1c{EWJKK;d9koeJW?f$@kdB|Iaim_gAsTK?NWgu?vJMCx;E6jd`M)r|CuX_S5T zm%-m^sb}qejpd@Q4?KRoWm)T^-=6zP;ystbt7^4D#Ei{@LmgljI)8+o{_@DIEWun| z@i_fMl5lMeRW+g7o`My$r(WGgwbmkn#IA+$Eq&bj-Mw;q;*?+sgBkq0rNC|y5K!%^ z^>VzF;O(BC<{#JJuX2veJHb7xfH#f75n5ndZGvuLO5%Xg>L;*>8Vl*%SO@W%NyUCW zRTVn{yPc#zdT%v~eqy3qXSUM%{=#z~9RJugzS-(Lo7W5XT zD-vANjl<|mUA1d-l*1~04=JUImb}MB)Vbc4XdW>J+FjA035WSEi!`_Ho z#`;`kS+kJn_nMU2f%%=Qia}^=1MLs)ep>MKxr6&hhxxbZ(A2<0lb<-S-ifLYnYH-n zRp{eXDr=V|m`)ZIz7}T1(~^AYC*GKL{G$`q{?mb<_I}sFp^uHXohy2_LhLYE-STAP zls~a@ZeB7z!=lX9{V3e9VDxAS(nEQ2(aq#flKEqA0zq}xKl{{R30 literal 1099 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeqZgun2j&IEGX(zJ0(rLB(^DilaP0T~@04zeXJ&CSiFW%ulvT<3k#!plp`%l*%Ttn^v* zBR}PLX@lpb_nrUMw%N=52v}F4|MC8TZ^xPCPi@}2|A&6s@5hb&PjBuEyfnT0dD8EV z2ag>XTQ(~=Re1POD$lw zo09(9%`^VoX2p3YzujhxKUTkHJ)_kF=gMvQQ@%X4Q9ojQv(Ea#=^y={O&!>4G|qqP zowRSx^VSNr+xhG@lK%~1CJX)u^Q^YfhbjLKH~WFq19g?Zoaebe`fR(;_rvI4EnLeE zwuFZt$)KVrl8NJ;>cwVFxlo?19?6{itr(&0G=gS^nXWVjRP5b4GiPJ4cFt z!Gaa&^|zJVtQ*RwmazXfI>Md!TkQdR=^PBG&?uA~G-IF2k zp9vgYA7CMUfT==$-sS5azogYLyFkKYWY%XtAzB=lttzm0DhXt0SKiVJ3s3GR`Dk z`DJ#+Ma6mDNM^pRya;tAC^hnflhA?62gX0H|CI8KKitg+Oc$UO4o zI<5g`j%Pey!tccm{g2|G3#nZsO|$qcE~SwgD})2@j& zQD;ktq-<<5oY;=EIdy6zp;OdmTq~v3e$zVb?sv}nz0dP|p7;0s-rpZ@aYT5Kg}JRc z000)j40;r}dw^@3sWJHP7o<0U+gh1laEvMV<(cw|z#Jlr3i1P*1~*9?dn5 z6owCz`t#F-jNB}KbZ&SIH#eP2=DGTKTbNUo6p%s0m$U7aq71Q&qNE|e5L3X|0OOF} z)GVHW5=9SO?Eo_xGEFX*QgAqfP6g4R5Jw=B$vC_R&cg!(c3@;VVmVuh5z8D`3Fv$o zH%lm$3ngNE10kCu*(awV_w5t%C<3;C#NqKs7!I4r!w?8OHipe35->a>k>^DsZ1)fl zILOuUa-rbg`C{3s4WJ=7Lj^~`;ti4wF=cm_kPoUbjPxc@ztsPSQE>(#{}JZ>4+7p5 zjJ`T!u<5J2d@*RL0`$&ZT?qq#H9f&}-h^^ z@$7{BZWn>@MzoY-+&l7Zf)w*rrCL*3(p}FSm;5@YRn>tk-xS4ig8q5P^2 z96EhDHpePW=U&{2FhA6hU%U-Lzsoo}W0OOT81>h2TJiHCz%E-nIoqe}iG6WAJU@C; z=V&!*qQ9Ep^{cbmXtMIL*8th>Lm3K+@91~5orUAmh$Ur~FC$%o{;a;P!lfXAU$FC* zkTb)$@+9a=JyWC1u(1)98B5^#x2fwL^B!(mX7o;PaAS$Pm!f;zb?%t6ibhm@TT8HQCK5e*2hu}1#HG($`Y-ZM5K z05MV0#Sd=Q5X+r1lPizs4y%kXp>?~Qf#4PCqDW;+V$)!6BCa+nonas6g z@`~@g)Q4RI+xOy%>InCKV=Ot=qM&`}=Ny`bb5mA~`mNRa2W}xDhIceLAe`RhxA(~3 DUY&6u literal 0 HcmV?d00001 diff --git a/utils/BleReceive.js b/utils/BleReceive.js index 2e6ae17..12206c1 100644 --- a/utils/BleReceive.js +++ b/utils/BleReceive.js @@ -14,7 +14,9 @@ import { class BleReceive { constructor(_ref) { - this.ref = _ref; + if(_ref){ + this.ref = _ref; + } this.StorageKey = "linkedDevices"; this.HandlerMap = { '/pages/6155/deviceDetail': this.Receive_6155.bind(this), diff --git a/utils/MsgPops.js b/utils/MsgPops.js index fd61c84..2cbb718 100644 --- a/utils/MsgPops.js +++ b/utils/MsgPops.js @@ -2,7 +2,8 @@ var MsgType = { error: "error", succ: "succ", warn: "warn", - info:'info' + info:'info', + prompt:'prompt' } var time = null; // 显示成功 @@ -74,6 +75,26 @@ export const MsgInfo = (msg, btnTxt, ev, isClear,btnCallback) => { return option; +} + +//显示捕获窗口,用于自定义弹窗内容 +export const MsgPrompt = ( ev,refName, btnCallback,isClear) => { + if (!ev) { + + return null; + } + if (!ev.$refs[refName]) { + + return null; + } + let option = ev.$refs[refName].showMsg("", "", MsgType.prompt,btnCallback); + if (isClear === undefined || isClear) { + createClear(ev); + } + + return option; + + } // 隐藏loading