From ecad105f361820e1616916ce3dbc6a404adc2ad2 Mon Sep 17 00:00:00 2001 From: lld <15027638633@163.com> Date: Tue, 3 Mar 2026 03:48:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=A7=E6=A3=9A=E5=90=8E?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=A2=E9=98=85=E4=B8=BB=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 41 +-------- components/addAgri/addAgri.vue | 8 ++ utils/mqtt.js | 151 +++++++++++++++++++++++---------- 3 files changed, 113 insertions(+), 87 deletions(-) diff --git a/App.vue b/App.vue index 49b2c32..8a554c4 100644 --- a/App.vue +++ b/App.vue @@ -3,10 +3,6 @@ import config from './config' import { getToken } from '@/utils/auth' import mqttUtil from '@/utils/mqtt' import {startMqttOnlinePing, stopMqttOnlinePing} from "./utils/mqtt"; -import {batchSubscribe} from "./api/system/mqtt"; -import store from "store"; -import {listAgri} from "./api/system/assets/agri"; - export default { subscribeList:[], globalData: { @@ -123,27 +119,7 @@ export default { console.error('MQTT连接失败') return } - var clientId = mqttUtil.getMqttState().clientId; - this.getSubscribeImei(clientId).then(res=>{ - console.info("subscribeList",res) - const subscribeList = res; - this.globalData.mqtt.subscribeList = subscribeList || [] - batchSubscribe({clientId: clientId}).then((result) => { - if (result.code === 200) { - console.info(`设备列表订阅成功:${subscribeList}`) - } - }) - - // ========== 新增:登录成功时同步到localStorage ========== - uni.setStorageSync('mqtt_subscribe_list', subscribeList || []) - - if (subscribeList.length > 0) { - mqttUtil.updateSubscribeList(subscribeList) - console.log('恢复MQTT订阅列表:', subscribeList) - // ========== 新增:恢复订阅后同步到localStorage ========== - uni.setStorageSync('mqtt_subscribe_list', subscribeList) - } - }) + mqttUtil.updateSubscribeTopic(); }, loginSuccess(token) { this.globalData.mqtt.hasLogin = true @@ -163,21 +139,6 @@ export default { uni.removeStorageSync('mqtt_subscribe_list') console.log('登出成功,MQTT已断开') }, - - getSubscribeImei(clientId) { - return listAgri().then(response => { - const subscribeList = []; - if (response.code === 200) { - response.rows.forEach(item => - subscribeList.push(`frontend/${clientId}/dtu/${item.imei}/+`) - ); - if (store.getters && store.getters.name === 'admin') { - subscribeList.push(`frontend/${clientId}/dtu/862538065276061/+`) - } - } - return subscribeList; - }) - }, // token过期处理逻辑(核心) handleTokenExpired() { diff --git a/components/addAgri/addAgri.vue b/components/addAgri/addAgri.vue index e60ca0d..4662967 100644 --- a/components/addAgri/addAgri.vue +++ b/components/addAgri/addAgri.vue @@ -35,6 +35,9 @@