fastbee/yack-mini/miniprogram/pages/device/detail/detail.wxml
2026-09-05 10:19:07 +08:00

91 lines
3.2 KiB
Plaintext

<!-- 设备详情页 -->
<view class="container">
<!-- 设备信息 -->
<view class="device-info card">
<view class="info-row">
<text class="info-label">设备名称</text>
<text class="info-value">{{device.name || '-'}}</text>
</view>
<view class="info-row">
<text class="info-label">设备编号</text>
<text class="info-value">{{device.serialNumber || '-'}}</text>
</view>
<view class="info-row">
<text class="info-label">产品ID</text>
<text class="info-value">{{device.productId || '-'}}</text>
</view>
<view class="info-row">
<text class="info-label">BLE 地址</text>
<text class="info-value">{{device.deviceId || '-'}}</text>
</view>
<view class="info-row">
<text class="info-label">BLE 状态</text>
<view class="status-tag {{bleConnected ? 'online' : 'offline'}}">
{{bleConnected ? '已连接' : '未连接'}}
</view>
</view>
<view class="info-row">
<text class="info-label">MQTT 状态</text>
<view class="status-tag {{mqttConnected ? 'online' : 'offline'}}">
{{mqttConnected ? '已连接' : '未连接'}}
</view>
</view>
</view>
<!-- 实时数据 -->
<view class="data-section">
<view class="section-header">
<text class="section-title">实时数据</text>
<text class="clear-btn" bindtap="handleClearData">清空</text>
</view>
<view class="data-list card" wx:if="{{dataList.length > 0}}">
<view class="data-item" wx:for="{{dataList}}" wx:key="id">
<view class="data-time">{{item.time}}</view>
<view class="data-hex">{{item.hex}}</view>
<view class="data-action" wx:if="{{item.uploaded}}">
<text class="uploaded">已上报</text>
</view>
<view class="data-action" wx:else>
<text class="upload-btn" bindtap="handleUploadSingle" data-index="{{index}}">上报</text>
</view>
</view>
</view>
<view class="empty" wx:else>
<text class="empty-text">暂无数据</text>
<text class="empty-hint">连接 BLE 设备后,数据将在此显示</text>
</view>
</view>
<!-- 统计信息 -->
<view class="stats-section card">
<view class="stat-item">
<text class="stat-value">{{stats.received}}</text>
<text class="stat-label">接收数据</text>
</view>
<view class="stat-item">
<text class="stat-value">{{stats.uploaded}}</text>
<text class="stat-label">已上报</text>
</view>
<view class="stat-item">
<text class="stat-value">{{stats.failed}}</text>
<text class="stat-label">失败</text>
</view>
</view>
<!-- 操作按钮 -->
<view class="action-group">
<button class="btn-connect" bindtap="handleConnect" loading="{{connecting}}" disabled="{{connecting}}">
{{bleConnected ? '断开 BLE' : '连接 BLE'}}
</button>
<button class="btn-mqtt" bindtap="handleMqttConnect" loading="{{mqttConnecting}}" disabled="{{mqttConnecting}}">
{{mqttConnected ? '断开 MQTT' : '连接 MQTT'}}
</button>
<button class="btn-upload" bindtap="handleUploadAll" disabled="{{!mqttConnected || dataList.length === 0}}">
全部上报
</button>
</view>
</view>