STM32_KQZLJC/minicode-1/pages/bluetooth/bluetooth.wxml

111 lines
4.1 KiB
Plaintext

<view class="container">
<!-- 顶部标题栏 -->
<view class="header">
<view class="back-btn" bindtap="goBack">
<text class="back-icon">←</text>
<text class="back-text">返回</text>
</view>
<text class="title">蓝牙设备搜索</text>
<button
class="refresh-btn"
bindtap="refreshDevices"
disabled="{{searching}}"
hover-class="btn-hover"
loading="{{searching}}"
>
{{searching ? '搜索中...' : '刷新'}}
</button>
</view>
<!-- 搜索状态提示 -->
<view class="status-bar">
<text class="status-indicator {{searching ? 'searching' : 'completed'}}">●</text>
<text class="status-text">
{{searching ? '正在搜索蓝牙设备...' : '搜索完成'}}
</text>
<text class="search-count" wx:if="{{!searching && devices.length > 0}}">
找到 {{devices.length}} 个设备
</text>
</view>
<!-- 搜索进度条 -->
<view class="progress-container" wx:if="{{searching}}">
<view class="progress-bar">
<view class="progress-fill" style="width: {{searchProgress}}%;"></view>
</view>
<text class="progress-text">搜索中 {{searchProgress}}%</text>
</view>
<!-- 加载状态 -->
<view class="loading-container" wx:if="{{loading}}">
<view class="loading-spinner"></view>
<text class="loading-text">初始化蓝牙适配器...</text>
<text class="loading-subtext">请确保蓝牙已开启</text>
</view>
<!-- 设备列表 -->
<view class="device-list" wx:else>
<!-- 空状态 -->
<view wx:if="{{devices.length === 0}}" class="empty-state">
<view class="empty-icon">🔍</view>
<text class="empty-text">
{{searching ? '正在搜索附近的蓝牙设备...' : '未搜索到蓝牙设备'}}
</text>
<text class="empty-hint">请确保:</text>
<view class="empty-checklist">
<text class="checklist-item">• 蓝牙设备已开启</text>
<text class="checklist-item">• 设备处于可发现状态</text>
<text class="checklist-item">• 设备距离手机较近</text>
<text class="checklist-item">• 手机蓝牙已开启</text>
</view>
<button class="retry-btn" bindtap="refreshDevices" disabled="{{searching}}">
{{searching ? '搜索中...' : '重新搜索'}}
</button>
</view>
<!-- 设备列表项 -->
<view
wx:for="{{devices}}"
wx:key="{{item.deviceId}}"
class="device-item"
bindtap="connectDevice"
data-device="{{item}}"
hover-class="item-hover"
>
<view class="item-header">
<view class="device-info">
<text class="device-name">{{item.name || '未知设备'}}</text>
<text class="device-type">{{item.name ? '蓝牙设备' : '未知设备'}}</text>
</view>
<view class="signal-strength">
<view class="signal-bars">
<view class="signal-bar" style="opacity: {{Math.max(0, (item.RSSI + 90) / 30)}}"></view>
<view class="signal-bar" style="opacity: {{Math.max(0, (item.RSSI + 80) / 30)}}"></view>
<view class="signal-bar" style="opacity: {{Math.max(0, (item.RSSI + 70) / 30)}}"></view>
<view class="signal-bar" style="opacity: {{Math.max(0, (item.RSSI + 60) / 30)}}"></view>
</view>
<text class="signal-value">{{item.RSSI ? item.RSSI + 'dBm' : 'N/A'}}</text>
</view>
</view>
<view class="item-body">
<text class="device-id">{{item.deviceId}}</text>
<text class="device-address" wx:if="{{item.advertisData}}">
广播数据: {{item.advertisData.byteLength}} bytes
</text>
</view>
<view class="item-footer">
<view class="connect-btn">
<text class="connect-icon">🔗</text>
<text class="connect-text">连接</text>
</view>
</view>
</view>
</view>
<!-- 搜索提示 -->
<view class="search-tips" wx:if="{{!loading && devices.length > 0}}">
<text class="tips-text">💡 点击设备卡片进行连接</text>
<text class="tips-text">📱 信号强度越高,连接越稳定</text>
</view>
</view>