From f6cf8037ac859267f30de86e71a61d03d4ab640c Mon Sep 17 00:00:00 2001 From: km2025 Date: Mon, 9 Feb 2026 17:33:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E8=BF=9E=E6=8E=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(tabs)/sync.tsx | 31 +++++++++++++++++++------------ ble/managers/bleManager.ts | 3 ++- stores/bleStore.ts | 3 ++- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/(tabs)/sync.tsx b/app/(tabs)/sync.tsx index 69848c3..0cecebd 100644 --- a/app/(tabs)/sync.tsx +++ b/app/(tabs)/sync.tsx @@ -517,6 +517,8 @@ const DeviceItem = observer(({ device }: { device: any }) => { const [nameShow, setNameShow] = useState(bindDevice ? `${bindDevice?.name}` : name) const tempName = useRef(nameShow) + const connectFinal = isConnected && bindDevice + const canEdit = !!bindDevice && isConnected // 绑定过的设备 @@ -537,13 +539,19 @@ const DeviceItem = observer(({ device }: { device: any }) => { .then(() => { console.log('设备连接成功') if (userId) { - bleManager.bindDevice(userId).then((res) => { - // console.log('Bind device response------------:', res) - if (res.success !== 1) { + bleManager + .bindDevice(userId) + .then((res) => { + console.log('Bind device response------------:', res) + }) + .catch((e) => { + console.log('Bind device error------------:', e) Toast.show({ title: '设备已经被其他用户绑定过了' }) bleManager.disconnectDevice() - } - }) + }) + .finally(() => { + Toast.hideLoading() + }) } }) .catch(() => { @@ -581,7 +589,6 @@ const DeviceItem = observer(({ device }: { device: any }) => { try { await bleManager.unBindDevice(userId!) bleManager.disconnectDevice() - bleStore.removeBindDeviceItem(device.id) setNameShow(device.name || 'Unknown Device') Toast.show({ title: '解绑成功' }) } catch (error: any) { @@ -622,7 +629,7 @@ const DeviceItem = observer(({ device }: { device: any }) => { return ( - {isConnected && } + {connectFinal && } @@ -641,16 +648,16 @@ const DeviceItem = observer(({ device }: { device: any }) => { - {isConnected ? '已连接' : '未连接'} + {connectFinal ? '已连接' : '未连接'} {hasBind && ( 已绑定 @@ -662,10 +669,10 @@ const DeviceItem = observer(({ device }: { device: any }) => { onConnectToggle(device)} > - {isConnected ? '已连接' : '连接'} + {connectFinal ? '已连接' : '连接'} {canEdit && ( ('unbindDevice') await this.deviceInfoService.unbindDevice(state.connectedDevice.id, userId) - + bleStore.removeBindDeviceItem(state.connectedDevice.id) return await resultPromise } catch (e: any) { this.setError(`Request failed: ${e.message}`) diff --git a/stores/bleStore.ts b/stores/bleStore.ts index 40ae599..773b6c6 100644 --- a/stores/bleStore.ts +++ b/stores/bleStore.ts @@ -15,6 +15,8 @@ interface BleState { sn: string isActivated: boolean transferProgress: number + + canBind: boolean discoveredDevices: BleDevice[] loading: { connecting: boolean @@ -43,7 +45,6 @@ class BleStore { connectedDevice: null, deviceInfo: null, version: '', - sn: '', isActivated: false, transferProgress: 0,