Files
bodyWeight/miniprogram/pages/data/data.wxml
T
17792275749andClaude Opus 4.7 8284bf107b feat(data): 体重差值按 weightDiff/weightTrend 动态渲染并区分增减颜色
- 差值图标与数值改用后端 weightDiff/weightTrend
- 首次测量/持平不显示差值块
- 增加红色、减少绿色

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-03 08:50:51 +08:00

122 lines
4.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<view class="data">
<!-- 数据卡(用户信息 + 时间 Tab + 统计) -->
<view class="data-card">
<!-- 用户信息 -->
<view class="userInfo" wx:if="{{ userInfo }}">
<view class="avatar">
<image src="{{ userInfo.sex_dictText === '女' ? '/images/woman.png' : '/images/man.png' }}" mode="aspectFit" />
</view>
<view class="info">
<view class="info-name-row">
<view class="info-name">{{ userInfo.realname }}</view>
<block wx:if="{{ userInfo.isSelf }}">
<view class="badge-self">本人</view>
</block>
</view>
<view class="info-meta">
<view class="meta-text">{{ userInfo.sex_dictText }}</view>
<view class="meta-divider">·</view>
<view class="meta-text">{{ userInfo.age }}岁</view>
<view class="meta-divider">|</view>
<view class="meta-text">{{ userInfo.height }}cm</view>
</view>
</view>
<view class="btn" bind:tap="onTapSwitchMember">切换用户</view>
</view>
<view class="card-divider"></view>
<!-- 时间范围 Tab -->
<view class="nav">
<block wx:for="{{ rangeTabs }}" wx:key="key">
<view class="{{ activeType === item.key ? 'active' : '' }}" data-key="{{ item.key }}" bind:tap="onTapRange">{{ item.label }}</view>
</block>
</view>
<!-- 统计摘要(4格) -->
<view class="summary">
<view class="summary-item">
<view class="summary-label">最高体重</view>
<view class="summary-value">{{ stats.maxWeight }}<text>kg</text></view>
</view>
<view class="summary-item">
<view class="summary-label">最低体重</view>
<view class="summary-value">{{ stats.minWeight }}<text>kg</text></view>
</view>
<view class="summary-item">
<view class="summary-label">平均体重</view>
<view class="summary-value">{{ stats.avgWeight }}<text>kg</text></view>
</view>
<view class="summary-item">
<view class="summary-label">体重变化</view>
<view class="summary-value {{ stats.weightChange < 0 ? 'value-down' : 'value-up' }}">
{{ stats.weightChange > 0 ? '+' : '' }}{{ stats.weightChange }}<text>kg</text>
</view>
</view>
</view>
</view>
<view class="data-user-title page-container">
<view>记录列表</view>
<view>共 {{total}} 条记录</view>
</view>
<view class="data-user-list">
<scroll-view class="scrollView" scroll-y refresher-enabled refresher-triggered="{{ refresherTriggered }}" bind:refresherrefresh="onRefresh" bind:scrolltolower="onScrollToLower">
<view class="scrollViewContent">
<!-- 有数据:记录列表 -->
<block wx:if="{{ records.length }}">
<view class="data-list">
<block wx:for="{{ records }}" wx:key="recordId">
<view class="list" bind:tap="onTapRecord" data-record-id="{{ item.recordId }}">
<view class="list-examTime">{{ item.examTime }}</view>
<view class="list-weight arrow">
<view>{{ item.weight }}<text>kg</text></view>
<block wx:if="{{ item.weightTrend === 1 || item.weightTrend === -1 }}">
<view class="{{ item.weightTrend === 1 ? 'diff-up' : '' }}">
<view>
<image src="{{ item.weightTrend === 1 ? '/images/data/add.png' : '/images/data/sub.png' }}" mode="aspectFit" />
</view>
<view>{{ item.weightDiff }}</view>
</view>
</block>
</view>
<view class="list-bmi">
<view>
<view>
<image src="/images/data/user.png" mode="aspectFit" />
</view>
<view>BMI</view>
<view>{{ item.bmi }}</view>
</view>
<view>
<view>
<image src="/images/data/droplet.png" mode="aspectFit" />
</view>
<view>体脂率</view>
<view>{{ item.fatRate }}%</view>
</view>
</view>
<!-- <view>{{ item.examTime }}</view>
<view class="arrow">
<view>体重:<text>{{ item.weight }}kg</text></view>
<view>BMI<text>{{ item.bmi }}</text></view>
<view>体脂率:<text>{{ item.fatRate }}%</text></view>
</view> -->
</view>
</block>
</view>
</block>
<!-- 无数据:占位 -->
<block wx:else>
<empty-data text="暂无称重数据" />
</block>
</view>
</scroll-view>
</view>
</view>
<select-member-drawer show="{{ showSelectDrawer }}" source="history" exclude-user-id="{{ userInfo.userId || '' }}" bind:select="onSelectMember" bind:close="onCloseDrawer" />