From 640966ae618593950ea15457de31df12ce095c91 Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Mon, 11 May 2026 16:25:35 +0800 Subject: [PATCH] =?UTF-8?q?[AI=20Generated]:=20refactor(Views):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E8=BF=9E=E6=8E=A5=E8=AE=BE=E5=A4=87=E9=A1=B5?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=88=97=E8=A1=A8=E4=B8=BA=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E5=B9=B6=E8=A1=A5=E5=85=A8=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/claudeCodeTabState.xml | 6 + .../pages/connectedDevice/connectedDevice.js | 32 ++-- .../connectedDevice/connectedDevice.less | 154 +++++++++++++++++- .../connectedDevice/connectedDevice.wxml | 100 +++++------- .../pages/connectedWifi/connectedWifi.wxml | 92 ++++++++++- 5 files changed, 310 insertions(+), 74 deletions(-) create mode 100644 .idea/claudeCodeTabState.xml diff --git a/.idea/claudeCodeTabState.xml b/.idea/claudeCodeTabState.xml new file mode 100644 index 0000000..14424ed --- /dev/null +++ b/.idea/claudeCodeTabState.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/miniprogram/pages/connectedDevice/connectedDevice.js b/miniprogram/pages/connectedDevice/connectedDevice.js index 703939f..f5431e6 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.js +++ b/miniprogram/pages/connectedDevice/connectedDevice.js @@ -15,10 +15,7 @@ Page({ */ status: 'idle', - /* 已连接的设备(null 表示没有) */ - connectedDevice: null, - - /* 未连接的设备列表 */ + /* 设备列表(包含已连接和未连接,每项含 connected: boolean) */ deviceList: [], }, @@ -38,7 +35,6 @@ Page({ onStartSearch() { this.setData({ status: 'searching', - connectedDevice: null, deviceList: [], }) @@ -47,14 +43,10 @@ Page({ if (MOCK_HAS_DEVICES) { this.setData({ status: 'found', - connectedDevice: { - id: 'mock-connected', - name: '智能体重秤 Pro', - icon: '', - }, deviceList: [ - { id: 'mock-1', name: '体重秤 Basic', icon: '' }, - { id: 'mock-2', name: '体脂秤 Plus', icon: '' }, + { id: 'mock-connected', name: '智能体重秤 Pro', icon: '', connected: true }, + { id: 'mock-1', name: '体重秤 Basic', icon: '', connected: false }, + { id: 'mock-2', name: '体脂秤 Plus', icon: '', connected: false }, ], }) } else { @@ -63,16 +55,24 @@ Page({ }, MOCK_SEARCH_DURATION) }, - /* 连接某台未连接设备 */ + /* 连接某台设备:同时只能一台已连接,自动断开其他设备 */ onConnect(e) { const { id } = e.currentTarget.dataset - console.log('连接设备:', id) + const deviceList = this.data.deviceList.map(item => ({ + ...item, + connected: item.id === id, + })) + this.setData({ deviceList }) /* TODO: 接入真实蓝牙连接逻辑 */ }, - /* 断开已连接设备 */ + /* 断开当前已连接设备 */ onDisconnect() { - console.log('断开连接') + const deviceList = this.data.deviceList.map(item => ({ + ...item, + connected: false, + })) + this.setData({ deviceList }) /* TODO: 接入真实蓝牙断开逻辑 */ }, diff --git a/miniprogram/pages/connectedDevice/connectedDevice.less b/miniprogram/pages/connectedDevice/connectedDevice.less index a4f3182..c28cd89 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.less +++ b/miniprogram/pages/connectedDevice/connectedDevice.less @@ -58,6 +58,7 @@ color: #808080; font-size: 30rpx; line-height: 30rpx; + margin-right: 8rpx; } .help-link { @@ -68,11 +69,160 @@ } .search-device { + width: 100%; - } + .search-device-header { + width: 100%; + height: 32rpx; + display: flex; + flex-wrap: nowrap; + justify-content: space-between; + margin-bottom: 38rpx; - .empty { + .search-device-title { + color: #252535; + height: 32rpx; + font-size: 32rpx; + font-weight: bold; + line-height: 32rpx; + } + .search-device-count { + height: 32rpx; + display: flex; + flex-wrap: nowrap; + + .count-text { + color: #808080; + height: 32rpx; + font-size: 28rpx; + line-height: 32rpx; + } + + .count-num { + color: #1385FA; + height: 32rpx; + font-size: 28rpx; + font-weight: bold; + line-height: 32rpx; + padding: 0 6rpx; + } + } + } + + .empty { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + margin-top: 160rpx; + + .empty-image { + width: 193rpx; + height: 138rpx; + margin-bottom: 40rpx; + background-color: #F5F5F5; + } + + .empty-text { + color: #808080; + width: 100%; + height: 30rpx; + font-size: 30rpx; + line-height: 30rpx; + text-align: center; + } + } + + .device-list { + width: 100%; + display: flex; + flex-direction: column; + + .device-card { + width: 100%; + height: 150rpx; + display: flex; + align-items: center; + padding: 0 30rpx; + background-color: #FFFFFF; + border: 2rpx solid #E6E6EA; + border-radius: 16rpx; + box-sizing: border-box; + margin-bottom: 24rpx; + + .card-icon { + width: 90rpx; + height: 90rpx; + overflow: hidden; + border-radius: 24rpx; + margin-right: 24rpx; + background-color: red; + } + + .card-info { + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + + .card-name { + color: #252535; + font-size: 32rpx; + font-weight: bold; + height: 32rpx; + line-height: 32rpx; + } + + .card-status { + margin-top: 18rpx; + display: flex; + align-items: center; + + .card-dot { + width: 12rpx; + height: 12rpx; + border-radius: 50%; + background-color: #2AC79F; + margin-right: 15rpx; + } + + .card-status-text { + color: #2AC79F; + height: 28rpx; + font-size: 28rpx; + font-weight: 500; + line-height: 28rpx; + } + } + } + + .card-btn-primary { + color: #FFFFFF; + font-size: 24rpx; + font-weight: 500; + width: 88rpx; + height: 48rpx; + line-height: 48rpx; + text-align: center; + border-radius: 8rpx; + background-color: #2AC79F; + } + + .card-btn-danger { + color: #F24439; + font-size: 24rpx; + font-weight: 500; + width: 120rpx; + height: 48rpx; + line-height: 44rpx; + text-align: center; + border: 2rpx solid #F24439; + border-radius: 8rpx; + box-sizing: border-box; + } + } + } } } diff --git a/miniprogram/pages/connectedDevice/connectedDevice.wxml b/miniprogram/pages/connectedDevice/connectedDevice.wxml index c3622f0..b752ade 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.wxml +++ b/miniprogram/pages/connectedDevice/connectedDevice.wxml @@ -23,62 +23,52 @@ - + + - - - 搜索结果 - - 发现 - {{ status === 'found' ? (deviceList.length + (connectedDevice ? 1 : 0)) : 0 }} -  台设备 - - + + + 搜索结果 + + 发现 + {{ deviceList.length }} + 台设备 + + - - - - 暂未搜索到可用设备,请重新搜索 - - - - - - - - - - {{ connectedDevice.name }} - - - 已连接 - - - 断开连接 - - - - - - - {{ item.name }} - 连接 - - - - - - + + + + + 暂未搜索到可用设备,请重新搜索 + + + + + + + + + + {{ item.name }} + + + + 已连接 + + + + + 断开连接 + + + 连接 + + + + + + + diff --git a/miniprogram/pages/connectedWifi/connectedWifi.wxml b/miniprogram/pages/connectedWifi/connectedWifi.wxml index 8ca26c7..3eab3e0 100644 --- a/miniprogram/pages/connectedWifi/connectedWifi.wxml +++ b/miniprogram/pages/connectedWifi/connectedWifi.wxml @@ -1 +1,91 @@ -connectedWifi 占位 + + + + + + + + + + + + + {{ + status === 'idle' ? '为设备配置 WiFi' : + status === 'configuring' ? '正在配网中...' : + status === 'success' ? '配网成功' : '配网失败' + }} + + + + + {{ + status === 'idle' ? '请输入 2.4G WiFi 名称和密码,确保设备处于配网状态' : + status === 'configuring' ? '请保持设备与手机靠近,正在传输配网信息' : + status === 'success' ? '设备已成功连入 WiFi 网络,可正常使用' : '请检查 WiFi 密码或设备状态后重试' + }} + + + + + + + + + WiFi 名称 + + + + + + WiFi 密码 + + + {{ form.showPwd ? '隐藏' : '显示' }} + + + + + + + + + + 设备已成功连接到 {{ form.ssid || '当前 WiFi' }} + + + + + + {{ + status === 'idle' ? '开始配网' : + status === 'configuring' ? '配网中...' : + status === 'success' ? '完成' : '重新配网' + }} + + + + + 设备无法连接 WiFi? + 查看帮助 + +