首页大棚温度改为实时

feasure
lld 2026-03-07 23:56:37 +08:00
parent a5718c6ea0
commit b7705ae680
1 changed files with 29 additions and 3 deletions

View File

@ -174,6 +174,7 @@ export default {
return false*/ return false*/
}, },
onShow() { onShow() {
console.info("首页在线状态注册回调")
mqttUtil.setOnMessageCallback(this.ackMessage); mqttUtil.setOnMessageCallback(this.ackMessage);
}, },
onLoad() { onLoad() {
@ -181,6 +182,7 @@ export default {
this.refresh(); this.refresh();
}, },
onHide() { onHide() {
console.info("首页在线状态注销回调")
mqttUtil.removeOnMessageCallback(); mqttUtil.removeOnMessageCallback();
}, },
onReady() { onReady() {
@ -369,8 +371,10 @@ export default {
) )
}, },
ackMessage(topic, payload) { ackMessage(topic, payload) {
const regex2 = /^device\/\d+\/status$/; const regex = /^device\/\d+\/status$/;
if (!regex2.test(topic)) return; const regex1 = /^frontend\/.+\/dtu\/\d+\/listener$/;
if (!regex.test(topic) && !regex1.test(topic)) return;
let msgData = {}; let msgData = {};
// JSON // JSON
@ -381,9 +385,15 @@ export default {
return; return;
} }
// 线 // 线
if (msgData.online && "time" in msgData && "imei" in msgData) { if (regex.test(topic) && msgData.online && "time" in msgData && "imei" in msgData) {
this.updateDeviceStatusFast(msgData.imei, msgData.online) this.updateDeviceStatusFast(msgData.imei, msgData.online)
} }
//
const allKeysNumeric2 = Object.keys(msgData).every(key => /^\d+$/.test(key));
if (regex1.test(topic) && Object.keys(msgData).length > 0 && allKeysNumeric2) {
this.updateTempFast(msgData)
}
}, },
updateDeviceStatusFast(targetImei, isOnline) { updateDeviceStatusFast(targetImei, isOnline) {
// Map // Map
@ -394,6 +404,22 @@ export default {
// //
targetDevice.deviceStatus = statusText; targetDevice.deviceStatus = statusText;
targetDevice.online = statusText; targetDevice.online = statusText;
},
updateTempFast: function (msgData) {
const regexWithGroup = /^frontend\/(.+)\/dtu\/(\d+)\/listener$/;
const matchResult = regexWithGroup.match(msgData);
const imei = matchResult[2]; // '1234567890'
// Map
const targetDevice = this.imeiToDeviceMap.get(imei);
if (!targetDevice) return;
const div10 = (v) => (v == null ? null : Math.round((Number(v) / 10) * 10) / 10);
//
targetDevice.temp1 = msgData['201'];
targetDevice.temp2 = msgData['202'];
targetDevice.temp3 = msgData['203'];
targetDevice.temp4 = msgData['204'];
} }
} }
} }