From f3f4d56ceb4e7ae3a11593e1ff45867bc9e6983d Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Tue, 25 Aug 2026 21:11:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(equipment):=20=E5=9B=9E=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=8D=E8=BF=9E=E5=90=8E=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=9E=E6=8E=A5=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- miniprogram/pages/equipment/equipment.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/miniprogram/pages/equipment/equipment.ts b/miniprogram/pages/equipment/equipment.ts index 3d54230..bc61699 100644 --- a/miniprogram/pages/equipment/equipment.ts +++ b/miniprogram/pages/equipment/equipment.ts @@ -53,6 +53,7 @@ interface DeviceItem { let unsubDevicesList: (() => void) | null = null let unsubConnect: (() => void) | null = null let unsubDisconnected: (() => void) | null = null +let unsubDeviceConnect: (() => void) | null = null let scanTimer: number | null = null Page({ @@ -68,18 +69,23 @@ Page({ this.setData({ operationsEngineer: getApp().globalData.operationsEngineer ?? false }) this.loadDevices() this._subscribeDisconnected() + this._subscribeDeviceConnect() }, onHide() { leFuService.stopScan() unsubDisconnected?.() unsubDisconnected = null + unsubDeviceConnect?.() + unsubDeviceConnect = null }, onUnload() { leFuService.stopScan() unsubDisconnected?.() unsubDisconnected = null + unsubDeviceConnect?.() + unsubDeviceConnect = null unsubDevicesList?.() unsubDevicesList = null unsubConnect?.() @@ -97,6 +103,17 @@ Page({ }) }, + /** 订阅连接成功事件:回前台自动重连等场景下,同步页面状态为已连接 */ + _subscribeDeviceConnect() { + unsubDeviceConnect?.() + unsubDeviceConnect = leFuService.onDeviceConnect(() => { + const deviceId = leFuService.lastRawDevice?.deviceId ?? '' + if (deviceId) { + this._updateStatus(deviceId, true) + } + }) + }, + /** 拉取体重设备列表 */ async loadDevices() { const raw = wx.getStorageSync('userInfo') as UserInfo | null @@ -203,7 +220,6 @@ Page({ unsubConnect = null wx.hideLoading() wx.setStorageSync('connectDeviceInfo', matched.raw) - this._updateStatus(targetDeviceId, true) }) }) leFuService.startScan()