feat(mp): 连接M2手环后自动测量5项指标 + 修复仪表盘数值不可见
- 连接认证成功后自动依次测量心率→血氧→血压→体温→压力 - 列表式进度UI展示每项指标状态(等待/测量中/完成/跳过) - 总进度条百分比实时更新 - 测量完成后保存结果并显示'查看结果并返回'按钮 - 支持取消自动测量,已测得的数据不丢失 - 修复仪表盘中心区域缺少背景色导致数值与底色混淆不可见
This commit is contained in:
@@ -48,7 +48,78 @@
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<!-- ═══ 就绪 + 测量 ═══ -->
|
||||
<!-- ═══ 自动测量中 / 自动测量完成 ═══ -->
|
||||
<block wx:elif="{{phase === 'ready' && (autoMeasuring || autoMeasureDone)}}">
|
||||
<view class="measure-page">
|
||||
<!-- 设备状态栏 -->
|
||||
<view class="device-bar">
|
||||
<view class="device-bar__left">
|
||||
<view class="device-bar__dot"></view>
|
||||
<text class="device-bar__name">{{deviceName}}</text>
|
||||
<text wx:if="{{batteryLevel !== null}}" class="device-bar__battery">{{batteryLevel}}%</text>
|
||||
</view>
|
||||
<view wx:if="{{autoMeasuring}}" class="device-bar__disconnect" bindtap="handleCancelAutoMeasure">取消</view>
|
||||
</view>
|
||||
|
||||
<view class="auto-measure">
|
||||
<!-- 标题 -->
|
||||
<view class="auto-measure__header">
|
||||
<text class="auto-measure__title">{{autoMeasureDone ? '✓ 测量完成!' : '正在自动测量...'}}</text>
|
||||
<text wx:if="{{!autoMeasureDone}}" class="auto-measure__subtitle">请保持手环佩戴,无需任何操作</text>
|
||||
</view>
|
||||
|
||||
<!-- 指标列表 -->
|
||||
<view class="auto-measure__list">
|
||||
<view
|
||||
wx:for="{{measureTypes}}"
|
||||
wx:key="type"
|
||||
class="auto-item {{autoMeasureStatus[item.type] === 'done' ? 'auto-item--done' : autoMeasureStatus[item.type] === 'measuring' ? 'auto-item--active' : autoMeasureStatus[item.type] === 'error' ? 'auto-item--error' : ''}}"
|
||||
>
|
||||
<view class="auto-item__left">
|
||||
<view class="auto-item__icon-wrap" style="background: {{autoMeasureStatus[item.type] === 'done' ? item.color : autoMeasureStatus[item.type] === 'error' ? '#ccc' : item.color}}">
|
||||
<text class="auto-item__icon">{{autoMeasureStatus[item.type] === 'done' ? '✓' : autoMeasureStatus[item.type] === 'error' ? '✕' : item.icon}}</text>
|
||||
</view>
|
||||
<text class="auto-item__label">{{item.label}}</text>
|
||||
</view>
|
||||
<view class="auto-item__right">
|
||||
<block wx:if="{{autoMeasureStatus[item.type] === 'done'}}">
|
||||
<text class="auto-item__value" style="color: {{item.color}}">{{autoMeasureValues[item.type]}}</text>
|
||||
<text wx:if="{{item.unit}}" class="auto-item__unit">{{item.unit}}</text>
|
||||
</block>
|
||||
<text wx:elif="{{autoMeasureStatus[item.type] === 'measuring'}}" class="auto-item__status auto-item__status--active">测量中...</text>
|
||||
<text wx:elif="{{autoMeasureStatus[item.type] === 'error'}}" class="auto-item__status auto-item__status--error">已跳过</text>
|
||||
<text wx:else class="auto-item__status">等待中</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 进度条 -->
|
||||
<view class="auto-progress">
|
||||
<view class="auto-progress__bar">
|
||||
<view class="auto-progress__fill" style="width: {{autoMeasureProgress}}%"></view>
|
||||
</view>
|
||||
<text class="auto-progress__text">{{autoMeasureProgress}}%</text>
|
||||
</view>
|
||||
|
||||
<!-- 免责声明 -->
|
||||
<view class="disclaimer">
|
||||
<text class="disclaimer__text">测量数据仅供参考,不作为医学诊断依据。如有不适请及时就医。</text>
|
||||
</view>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<view class="actions">
|
||||
<block wx:if="{{autoMeasureDone}}">
|
||||
<view class="btn btn--primary" bindtap="handleBack">查看结果并返回</view>
|
||||
</block>
|
||||
<block wx:elif="{{autoMeasuring}}">
|
||||
<view class="btn btn--text" bindtap="handleCancelAutoMeasure">取消自动测量</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<!-- ═══ 就绪 + 手动测量 ═══ -->
|
||||
<block wx:elif="{{phase === 'ready'}}">
|
||||
<view class="measure-page">
|
||||
<!-- 设备状态栏 -->
|
||||
|
||||
Reference in New Issue
Block a user