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 @@
-
+
+
-
-
+
+
-
-
-
- 暂未搜索到可用设备,请重新搜索
-
-
-
-
-
-
-
-
-
- {{ 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?
+ 查看帮助
+
+