消息中心监听新消息
parent
a14e2b9b0d
commit
d83f75f2d6
|
|
@ -102,6 +102,7 @@
|
|||
import UniDividerText from "../../components/uni-divider/uni-divider-text.vue";
|
||||
import {isTodayDate,formatTime} from "@/utils/agri";
|
||||
import {getMsgOverview, removeBatch, updateRead} from "@/api/warn/message";
|
||||
import * as mqttUtil from "@/utils/mqtt";
|
||||
export default {
|
||||
components: {
|
||||
UniDividerText
|
||||
|
|
@ -163,8 +164,22 @@ export default {
|
|||
}
|
||||
},
|
||||
onShow() {
|
||||
console.info("消息中心监听")
|
||||
mqttUtil.setOnMessageCallback(this.ackMsg);
|
||||
this.getMsgOverview();
|
||||
},
|
||||
onHide() {
|
||||
console.info("消息中心取消监听")
|
||||
mqttUtil.removeOnMessageCallback();
|
||||
},
|
||||
onUnload() {
|
||||
console.info("消息中心取消监听")
|
||||
mqttUtil.removeOnMessageCallback();
|
||||
},
|
||||
beforeDestroy() {
|
||||
console.info("消息中心取消监听")
|
||||
mqttUtil.removeOnMessageCallback();
|
||||
},
|
||||
methods: {
|
||||
isTodayDate,
|
||||
formatTime,
|
||||
|
|
@ -219,6 +234,12 @@ export default {
|
|||
getMsgOverview().then(response => {
|
||||
if (response.code === 200) {
|
||||
this.messageList = response.data;
|
||||
// this.messageList.forEach((msgItem, msgIndex) => {
|
||||
// this.msgList[msgItem.msgType].numBadge = msgItem.unreadCount || null
|
||||
// this.msgList[msgItem.msgType].content = msgItem.content || null
|
||||
// this.msgList[msgItem.msgType].createTime = msgItem.createTime || null
|
||||
// })
|
||||
|
||||
this.msgList.forEach((item, index) => {
|
||||
item.numBadge = null;
|
||||
item.content = null;
|
||||
|
|
@ -275,6 +296,42 @@ export default {
|
|||
change(e, type) {
|
||||
console.log((type === 'showLeft' ? '左窗口' : '右窗口') + (e ? '打开' : '关闭'));
|
||||
this[type] = e
|
||||
},
|
||||
|
||||
ackMsg(topic, payload) {
|
||||
var words = topic.split("/");
|
||||
if (words.length!==3) {
|
||||
return;
|
||||
}
|
||||
const agriList = uni.getStorageSync('agri_list')
|
||||
if (agriList.length === 0 || !agriList.includes(words[1])) {
|
||||
return;
|
||||
}
|
||||
const tag = topic.match(/[^/]+$/)?.[0]
|
||||
var regex = {
|
||||
alarm:1,
|
||||
notice:2,
|
||||
event:3
|
||||
}
|
||||
if (!regex[tag]) return;
|
||||
console.info("收到消息2222",topic)
|
||||
|
||||
let msgData = {};
|
||||
// 优化:捕获JSON解析异常
|
||||
try {
|
||||
msgData = JSON.parse(payload);
|
||||
var msg = msgData.msgType;
|
||||
console.info("收到消息5555",msg)
|
||||
if (!regex[tag]) return;
|
||||
const item = this.msgList[regex[tag]];
|
||||
item.numBadge+=1;
|
||||
item.content = msg.content;
|
||||
item.createTime = msg.createTime;
|
||||
console.info("收到消息3333",item)
|
||||
|
||||
} catch (e) {
|
||||
console.error("MQTT消息解析失败:", e, payload);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,14 +190,18 @@ export default {
|
|||
gotoDevice(item) {
|
||||
const agriList = uni.getStorageSync('agri_list')
|
||||
if (agriList.length === 0 || !agriList.includes(item.imei)) {
|
||||
return
|
||||
return;
|
||||
}
|
||||
this.$tab.navigateTo(item.linkUrl)
|
||||
},
|
||||
ackAlarm(topic, payload) {
|
||||
|
||||
const regex = /^device\/\d+\/alarm$/;
|
||||
if (!regex.test(topic)) return;
|
||||
var words = topic.split("/");
|
||||
const agriList = uni.getStorageSync('agri_list')
|
||||
if (agriList.length === 0 || !agriList.includes(words[1])) {
|
||||
return;
|
||||
}
|
||||
let msgData = {};
|
||||
// 优化:捕获JSON解析异常
|
||||
try {
|
||||
|
|
|
|||
Loading…
Reference in New Issue