feasure
lld 2026-03-08 19:26:28 +08:00
parent 1b8112880d
commit a7df117a65
1 changed files with 41 additions and 34 deletions

View File

@ -52,7 +52,7 @@
:class="['list-item', { 'list-item-disabled': item.online === '离线' }]" :class="['list-item', { 'list-item-disabled': item.online === '离线' }]"
:right-options="options"> :right-options="options">
<view class="item-card" <view class="item-card"
@click="item.online !== '离线' && onItemTap(item)"> @click="onItemTap(item)">
<view class="item-title"> <view class="item-title">
<view class="title-text">{{ item.agriName }}</view> <view class="title-text">{{ item.agriName }}</view>
<text :class="['tag','tag-status',{'tag-manual':item.workModeDesc==='手动模式'}]" v-if="item.workModeDesc">{{ item.workModeDesc }}</text> <text :class="['tag','tag-status',{'tag-manual':item.workModeDesc==='手动模式'}]" v-if="item.workModeDesc">{{ item.workModeDesc }}</text>
@ -355,35 +355,25 @@ export default {
makeSpecialData: function (msgData){ makeSpecialData: function (msgData){
const online = TimeUtil.isLessThanSpecifiedSeconds(msgData.ts,90)?'在线':'离线'; const online = TimeUtil.isLessThanSpecifiedSeconds(msgData.ts,90)?'在线':'离线';
this.listData.push( const deviceConfigs = [
{ { agriName: "八方南棚", imei: "A", temps: [1,2,3,4] },
agriName: "八方南棚", { agriName: "九方春棚", imei: "B", temps: [5,6,7,8] },
imei: "A", { agriName: "十二方棚", imei: "C", temps: [9,10,11,12] }
temp1: msgData.temp1, ];
temp2: msgData.temp2,
temp3: msgData.temp3, const devices = deviceConfigs.map(({agriName, imei, temps}) => ({
temp4: msgData.temp4, agriName,
online:online imei,
}, temp1: msgData[`temp${temps[0]}`],
{ temp2: msgData[`temp${temps[1]}`],
agriName: "九方春棚", temp3: msgData[`temp${temps[2]}`],
imei: "B", temp4: msgData[`temp${temps[3]}`],
temp1: msgData.temp5, online
temp2: msgData.temp6, }));
temp3: msgData.temp7,
temp4: msgData.temp8, this.listData.push(...devices);
online:online //
}, // devices.forEach(d => this.imeiToDeviceMap.set(d.imei, d));
{
agriName: "十二方棚",
imei: "C",
temp1: msgData.temp9,
temp2: msgData.temp10,
temp3: msgData.temp11,
temp4: msgData.temp12,
online:online
},
)
}, },
ackMessage(topic, payload) { ackMessage(topic, payload) {
const regex = /^device\/\d+\/status$/; const regex = /^device\/\d+\/status$/;
@ -410,18 +400,19 @@ export default {
} }
this.getDataDetails(); this.getDataDetails();
}, },
// 线 线
updateDeviceStatusFast(targetImei, isOnline) { updateDeviceStatusFast(targetImei, isOnline) {
console.info("监听到状态",targetImei, isOnline)
// Map // Map
const targetDevice = this.imeiToDeviceMap.get(targetImei); const targetDevice = this.imeiToDeviceMap.get(targetImei);
if (!targetDevice) return; if (!targetDevice) return;
const statusText = isOnline ? '在线' : '离线';
// //
targetDevice.deviceStatus = statusText; targetDevice.deviceStatus = isOnline;
targetDevice.online = statusText; targetDevice.online = isOnline;
}, },
updateTempFast: function (msgData,topic) { updateTempFast: function (msgData,topic) {
console.info("监听到温度",topic,msgData)
const regexWithGroup = /^frontend\/(.+)\/dtu\/(\d+)\/listener$/; const regexWithGroup = /^frontend\/(.+)\/dtu\/(\d+)\/listener$/;
const matchResult = topic.match(regexWithGroup); const matchResult = topic.match(regexWithGroup);
const imei = matchResult[2]; // '1234567890' const imei = matchResult[2]; // '1234567890'
@ -435,6 +426,22 @@ export default {
targetDevice.temp2 = div10(msgData['202']); targetDevice.temp2 = div10(msgData['202']);
targetDevice.temp3 = div10(msgData['203']); targetDevice.temp3 = div10(msgData['203']);
targetDevice.temp4 = div10(msgData['204']); targetDevice.temp4 = div10(msgData['204']);
// if (imei === '862538065276061') {
// const deviceConfigs = [
// { agriName: "", imei: "A", temps: [1,2,3,4] },
// { agriName: "", imei: "B", temps: [5,6,7,8] },
// { agriName: "", imei: "C", temps: [9,10,11,12] }
// ];
//
// deviceConfigs.forEach(({agriName, imei, temps}) => {
// var target = this.imeiToDeviceMap.get(imei);
// target.temp1 = div10(msgData[`20${temps[0]}`]);
// target.temp2 = div10(msgData[`20${temps[1]}`]);
// target.temp3 = div10(msgData[`20${temps[2]}`]);
// target.temp4 = div10(msgData[`20${temps[3]}`]);
// })
// }
}, },
getDataDetails() { getDataDetails() {
this.dataDetails = { this.dataDetails = {