From b94ffb7995c774a52317b13d59a71a797f8a8c24 Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Thu, 21 May 2026 17:36:05 +0800 Subject: [PATCH] =?UTF-8?q?[AI=20Generated]:=20feat(device):=20=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=8D=A1=E7=89=87=E6=95=B4=E5=BC=A0=E5=8F=AF=E7=82=B9?= =?UTF-8?q?=E5=87=BB=EF=BC=8C=E6=B3=A2=E7=BA=B9=E6=8C=89=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=92=AD=E6=94=BE=EF=BC=8C=E9=85=8D=E7=BD=91/OTA=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=B8=8E=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- miniprogram/lefu/service.ts | 18 +++++++++------ .../connectedDevice/connectedDevice.less | 20 ++++++++++------ .../pages/connectedDevice/connectedDevice.ts | 10 ++++++++ .../connectedDevice/connectedDevice.wxml | 10 ++++---- miniprogram/pages/home/home.ts | 23 ++++--------------- 5 files changed, 43 insertions(+), 38 deletions(-) diff --git a/miniprogram/lefu/service.ts b/miniprogram/lefu/service.ts index 0ec5740..479297c 100644 --- a/miniprogram/lefu/service.ts +++ b/miniprogram/lefu/service.ts @@ -285,24 +285,27 @@ class LeFuService { configWifi(ssid: string, password: string): Promise { const version = (this._deviceInfo?.modelNumber ?? '').split('-').length === 5 ? 'domain2' : 'domain1' - console.log(TAG, 'configWifi():', ssid, version) - console.log(TAG, 'configNetWork():',this._deviceInfo?.modelNumber, version) + const startTs = Date.now() + console.log(TAG, 'configWifi():', ssid, version, 'ts=', startTs, 'activeProtocol=', !!this._activeProtocol) return new Promise((resolve, reject) => { if (!this._activeProtocol) { + console.warn(TAG, 'configWifi 早期 reject:_activeProtocol 为空') reject(new Error('[LeFu] 设备未连接,无法配网')) return } let settled = false const timer = setTimeout(() => { + console.warn(TAG, 'configWifi 超时触发 elapsed=', Date.now() - startTs, 'settled=', settled) if (settled) return settled = true reject(new Error('[LeFu] 配网超时,请重试')) }, 20000) - const callback = (res: number) => { + console.log(TAG, 'configWifi 已注册 20s 定时器 timerId=', timer) + const callback = (res: number, ...extra: any[]) => { + console.log(TAG, 'configWifi 回调 res=', res, 'extra=', extra, 'elapsed=', Date.now() - startTs, 'settled=', settled) if (settled) return settled = true clearTimeout(timer) - console.log(TAG, 'configWifi 回调:', res) res === 23 ? resolve() : reject(new Error(`[LeFu] 配网失败,错误码:${res}`)) } if (version === 'domain1') { @@ -347,8 +350,9 @@ class LeFuService { const needUpdate = isServerNewer(mcuVer, mcuVersion) || isServerNewer(bleVer, bleVersion) || isServerNewer(wifiVer, wifiVersion) || isServerNewer(resVer, resVersion) if (!needUpdate) { resolve(false); return } - this._activeProtocol.codeOtaUpdate((status: boolean) => { - status ? reject(new Error('[LeFu] OTA 升级失败')) : resolve(true) + this._activeProtocol.codeOtaUpdate((status: number) => { + console.log(`codeOtaUpdatecodeOtaUpdatecodeOtaUpdate ${status}`) + status != 0 ? reject(new Error('[LeFu] OTA 升级失败')) : resolve(true) }) }) .catch(reject) @@ -405,7 +409,7 @@ class LeFuService { const clearTimer = setTimeout(() => reject(new Error('[LeFu] 清除设备成员超时')), 15000) this._activeProtocol.codeClearDeviceData('01', (clearRes: number) => { clearTimeout(clearTimer) - if (clearRes !== 0x00) { reject(new Error('[LeFu] 清除设备成员失败')); return } + if (clearRes != 0) { reject(new Error('[LeFu] 清除设备成员失败')); return } let index = 0 let syncTimer: number | null = null diff --git a/miniprogram/pages/connectedDevice/connectedDevice.less b/miniprogram/pages/connectedDevice/connectedDevice.less index 116f225..b379761 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.less +++ b/miniprogram/pages/connectedDevice/connectedDevice.less @@ -16,22 +16,28 @@ align-items: center; justify-content: center; - /* 波纹圆环 */ + /* 波纹圆环:默认隐藏,仅在 .ripple--active 时播放动画 */ .ripple-ring { position: absolute; width: 300rpx; height: 300rpx; border-radius: 50%; background-color: #1385FA; - animation: ripple-expand 2.4s ease-out infinite; + opacity: 0; } - .ripple-ring--delay1 { - animation-delay: 0.8s; - } + &.ripple--active { + .ripple-ring { + animation: ripple-expand 2.4s ease-out infinite; + } - .ripple-ring--delay2 { - animation-delay: 1.6s; + .ripple-ring--delay1 { + animation-delay: 0.8s; + } + + .ripple-ring--delay2 { + animation-delay: 1.6s; + } } /* 中心实心圆 + 图标 */ diff --git a/miniprogram/pages/connectedDevice/connectedDevice.ts b/miniprogram/pages/connectedDevice/connectedDevice.ts index babfb0a..e39a135 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.ts +++ b/miniprogram/pages/connectedDevice/connectedDevice.ts @@ -159,6 +159,16 @@ Page({ console.log(TAG, 'lefuService.startScan() 已调用') }, + /** 点击整张卡片:已连接 → 跳转配网页;未连接 → 走连接流程 */ + onTapCard(e: WechatMiniprogram.TouchEvent) { + const connected = e.currentTarget.dataset.connected as boolean + if (connected) { + wx.navigateTo({ url: '/pages/connectedWifi/connectedWifi' }) + return + } + this.onConnect(e) + }, + /** 连接指定设备 */ onConnect(e: WechatMiniprogram.TouchEvent) { const index = e.currentTarget.dataset.index as number diff --git a/miniprogram/pages/connectedDevice/connectedDevice.wxml b/miniprogram/pages/connectedDevice/connectedDevice.wxml index 4055105..8153b70 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.wxml +++ b/miniprogram/pages/connectedDevice/connectedDevice.wxml @@ -1,7 +1,7 @@ - - + + @@ -55,7 +55,7 @@ - + @@ -69,10 +69,10 @@ - 断开连接 + 断开连接 - 连接 + 连接 diff --git a/miniprogram/pages/home/home.ts b/miniprogram/pages/home/home.ts index 053bd94..93bfad9 100644 --- a/miniprogram/pages/home/home.ts +++ b/miniprogram/pages/home/home.ts @@ -118,7 +118,6 @@ Page({ const raw = wx.getStorageSync('userInfo') as StorageUserInfo | null if (!raw?.userId) return - wx.showLoading({ title: '加载中...', mask: true }) get('weighingScale/v3/getMeasureHistory', { userId: raw.userId, }, { loading: false }) @@ -144,9 +143,6 @@ Page({ } this.setData({ hasData: true, record }) }) - .finally(() => { - wx.hideLoading() - }) }, /** OTA 固件检测,连接成功后自动调用,有新版本直接升级,整个页面生命周期只触发一次 */ @@ -154,22 +150,11 @@ Page({ if (this._otaChecked) return this._otaChecked = true lefuService.checkAndUpgrade() - .then(needUpdate => { - if (!needUpdate) return + .then(() => { wx.showLoading({ title: '固件升级中...', mask: true }) - lefuService.checkAndUpgrade() - .then(() => { - wx.hideLoading() - wx.showModal({ - title: '升级完成', - content: '固件升级成功,请重新开启设备', - showCancel: false, - }) - }) - .catch((err: Error) => { - wx.hideLoading() - wx.showToast({ title: err.message || '升级失败,请重试', icon: 'none' }) - }) + setTimeout(() => { + wx.hideLoading() + }, 15000) }) .catch(() => {}) },