fix(detailedReport): 卡片无数据时隐藏整卡,wx:if 统一写 block 上

- 删除多余的 isEightElectrode 字段
- 各指标卡片 rows 为空时不渲染标题
- wx:if 统一移到 block 上,符合 wxml 规范

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
17792275749
2026-08-26 16:08:37 +08:00
co-authored by Claude Opus 4.7
parent 92de746f9e
commit b4d3a034ba
2 changed files with 86 additions and 58 deletions
@@ -189,7 +189,6 @@ Page({
weightControl: { title: '体重管控', rows: [] } as MetricCard, weightControl: { title: '体重管控', rows: [] } as MetricCard,
// 以下卡片为 8 电极专属 // 以下卡片为 8 电极专属
isEightElectrode: false,
cellWater: { title: '细胞液分析', rows: [] } as MetricCard, cellWater: { title: '细胞液分析', rows: [] } as MetricCard,
advancedComposition: { title: '进阶成分', rows: [] } as MetricCard, advancedComposition: { title: '进阶成分', rows: [] } as MetricCard,
bodyFat: { title: '躯干/四肢脂肪', rows: [] } as BodyPartsCard, bodyFat: { title: '躯干/四肢脂肪', rows: [] } as BodyPartsCard,
@@ -347,7 +346,6 @@ Page({
fatAnalysis, fatAnalysis,
physique, physique,
weightControl, weightControl,
isEightElectrode: isEight,
cellWater, cellWater,
advancedComposition, advancedComposition,
bodyFat, bodyFat,
@@ -28,8 +28,12 @@
<view class="weight-unit">kg</view> <view class="weight-unit">kg</view>
</view> </view>
<view class="header-info"> <view class="header-info">
<view class="header-bmi" wx:if="{{ header.bmiText }}">{{ header.bmiText }}</view> <block wx:if="{{ header.bmiText }}">
<view class="header-change" wx:if="{{ header.changeText }}">{{ header.changeText }}</view> <view class="header-bmi">{{ header.bmiText }}</view>
</block>
<block wx:if="{{ header.changeText }}">
<view class="header-change">{{ header.changeText }}</view>
</block>
</view> </view>
</view> </view>
</view> </view>
@@ -47,7 +51,9 @@
<view class="basicIndicatorsLabel">{{ cell.label }}</view> <view class="basicIndicatorsLabel">{{ cell.label }}</view>
<view class="basicIndicatorsValueRow"> <view class="basicIndicatorsValueRow">
<view class="basicIndicatorsValue">{{ cell.value }}</view> <view class="basicIndicatorsValue">{{ cell.value }}</view>
<view class="basicIndicatorsUnit" wx:if="{{ cell.unit }}">{{ cell.unit }}</view> <block wx:if="{{ cell.unit }}">
<view class="basicIndicatorsUnit">{{ cell.unit }}</view>
</block>
</view> </view>
</block> </block>
</view> </view>
@@ -77,68 +83,83 @@
</view> </view>
<!-- 身体成分 --> <!-- 身体成分 -->
<view class="metricCard"> <block wx:if="{{ bodyComposition.rows.length }}">
<view class="metricCardTitle"> <view class="metricCard">
<view class="metricCardBar"></view> <view class="metricCardTitle">
<view class="metricCardTitleText">{{ bodyComposition.title }}</view> <view class="metricCardBar"></view>
</view> <view class="metricCardTitleText">{{ bodyComposition.title }}</view>
<view class="metricCardList"> </view>
<view class="metricCardRow" wx:for="{{ bodyComposition.rows }}" wx:key="label"> <view class="metricCardList">
<view class="metricCardLabel">{{ item.label }}</view> <view class="metricCardRow" wx:for="{{ bodyComposition.rows }}" wx:key="label">
<view class="metricCardValue">{{ item.value }}{{ item.unit }}</view> <view class="metricCardLabel">{{ item.label }}</view>
<view class="metricCardStatus" wx:if="{{ item.status }}" style="background-color: {{ item.color }};">{{ item.status }}</view> <view class="metricCardValue">{{ item.value }}{{ item.unit }}</view>
<block wx:if="{{ item.status }}">
<view class="metricCardStatus" style="background-color: {{ item.color }};">{{ item.status }}</view>
</block>
</view>
</view> </view>
</view> </view>
</view> </block>
<!-- 脂肪分析 --> <!-- 脂肪分析 -->
<view class="metricCard"> <block wx:if="{{ fatAnalysis.rows.length }}">
<view class="metricCardTitle"> <view class="metricCard">
<view class="metricCardBar"></view> <view class="metricCardTitle">
<view class="metricCardTitleText">{{ fatAnalysis.title }}</view> <view class="metricCardBar"></view>
</view> <view class="metricCardTitleText">{{ fatAnalysis.title }}</view>
<view class="metricCardList"> </view>
<view class="metricCardRow" wx:for="{{ fatAnalysis.rows }}" wx:key="label"> <view class="metricCardList">
<view class="metricCardLabel">{{ item.label }}</view> <view class="metricCardRow" wx:for="{{ fatAnalysis.rows }}" wx:key="label">
<view class="metricCardValue">{{ item.value }}{{ item.unit }}</view> <view class="metricCardLabel">{{ item.label }}</view>
<view class="metricCardStatus" wx:if="{{ item.status }}" style="background-color: {{ item.color }};">{{ item.status }}</view> <view class="metricCardValue">{{ item.value }}{{ item.unit }}</view>
<block wx:if="{{ item.status }}">
<view class="metricCardStatus" style="background-color: {{ item.color }};">{{ item.status }}</view>
</block>
</view>
</view> </view>
</view> </view>
</view> </block>
<!-- 体态管理 --> <!-- 体态管理 -->
<view class="metricCard"> <block wx:if="{{ physique.rows.length }}">
<view class="metricCardTitle"> <view class="metricCard">
<view class="metricCardBar"></view> <view class="metricCardTitle">
<view class="metricCardTitleText">{{ physique.title }}</view> <view class="metricCardBar"></view>
</view> <view class="metricCardTitleText">{{ physique.title }}</view>
<view class="metricCardList"> </view>
<view class="metricCardRow" wx:for="{{ physique.rows }}" wx:key="label"> <view class="metricCardList">
<view class="metricCardLabel">{{ item.label }}</view> <view class="metricCardRow" wx:for="{{ physique.rows }}" wx:key="label">
<view class="metricCardValue">{{ item.value }}{{ item.unit }}</view> <view class="metricCardLabel">{{ item.label }}</view>
<view class="metricCardStatus" wx:if="{{ item.status }}" style="background-color: {{ item.color }};">{{ item.status }}</view> <view class="metricCardValue">{{ item.value }}{{ item.unit }}</view>
<block wx:if="{{ item.status }}">
<view class="metricCardStatus" style="background-color: {{ item.color }};">{{ item.status }}</view>
</block>
</view>
</view> </view>
</view> </view>
</view> </block>
<!-- 体重管控 --> <!-- 体重管控 -->
<view class="metricCard"> <block wx:if="{{ weightControl.rows.length }}">
<view class="metricCardTitle"> <view class="metricCard">
<view class="metricCardBar"></view> <view class="metricCardTitle">
<view class="metricCardTitleText">{{ weightControl.title }}</view> <view class="metricCardBar"></view>
</view> <view class="metricCardTitleText">{{ weightControl.title }}</view>
<view class="metricCardList"> </view>
<view class="metricCardRow" wx:for="{{ weightControl.rows }}" wx:key="label"> <view class="metricCardList">
<view class="metricCardLabel">{{ item.label }}</view> <view class="metricCardRow" wx:for="{{ weightControl.rows }}" wx:key="label">
<view class="metricCardValue">{{ item.value }}{{ item.unit }}</view> <view class="metricCardLabel">{{ item.label }}</view>
<view class="metricCardStatus" wx:if="{{ item.status }}" style="background-color: {{ item.color }};">{{ item.status }}</view> <view class="metricCardValue">{{ item.value }}{{ item.unit }}</view>
<block wx:if="{{ item.status }}">
<view class="metricCardStatus" style="background-color: {{ item.color }};">{{ item.status }}</view>
</block>
</view>
</view> </view>
</view> </view>
</view> </block>
<block wx:if="{{ isEightElectrode }}"> <!-- 细胞液分析 -->
<block wx:if="{{ cellWater.rows.length }}">
<!-- 细胞液分析 -->
<view class="metricCard"> <view class="metricCard">
<view class="metricCardTitle"> <view class="metricCardTitle">
<view class="metricCardBar"></view> <view class="metricCardBar"></view>
@@ -148,12 +169,16 @@
<view class="metricCardRow" wx:for="{{ cellWater.rows }}" wx:key="label"> <view class="metricCardRow" wx:for="{{ cellWater.rows }}" wx:key="label">
<view class="metricCardLabel">{{ item.label }}</view> <view class="metricCardLabel">{{ item.label }}</view>
<view class="metricCardValue">{{ item.value }}{{ item.unit }}</view> <view class="metricCardValue">{{ item.value }}{{ item.unit }}</view>
<view class="metricCardStatus" wx:if="{{ item.status }}" style="background-color: {{ item.color }};">{{ item.status }}</view> <block wx:if="{{ item.status }}">
<view class="metricCardStatus" style="background-color: {{ item.color }};">{{ item.status }}</view>
</block>
</view> </view>
</view> </view>
</view> </view>
</block>
<!-- 进阶成分 --> <!-- 进阶成分 -->
<block wx:if="{{ advancedComposition.rows.length }}">
<view class="metricCard"> <view class="metricCard">
<view class="metricCardTitle"> <view class="metricCardTitle">
<view class="metricCardBar"></view> <view class="metricCardBar"></view>
@@ -163,12 +188,16 @@
<view class="metricCardRow" wx:for="{{ advancedComposition.rows }}" wx:key="label"> <view class="metricCardRow" wx:for="{{ advancedComposition.rows }}" wx:key="label">
<view class="metricCardLabel">{{ item.label }}</view> <view class="metricCardLabel">{{ item.label }}</view>
<view class="metricCardValue">{{ item.value }}{{ item.unit }}</view> <view class="metricCardValue">{{ item.value }}{{ item.unit }}</view>
<view class="metricCardStatus" wx:if="{{ item.status }}" style="background-color: {{ item.color }};">{{ item.status }}</view> <block wx:if="{{ item.status }}">
<view class="metricCardStatus" style="background-color: {{ item.color }};">{{ item.status }}</view>
</block>
</view> </view>
</view> </view>
</view> </view>
</block>
<!-- 躯干/四肢脂肪 --> <!-- 躯干/四肢脂肪 -->
<block wx:if="{{ bodyFat.rows.length }}">
<view class="metricCard"> <view class="metricCard">
<view class="metricCardTitle"> <view class="metricCardTitle">
<view class="metricCardBar"></view> <view class="metricCardBar"></view>
@@ -189,8 +218,10 @@
</view> </view>
</view> </view>
</view> </view>
</block>
<!-- 躯干/四肢肌肉 --> <!-- 躯干/四肢肌肉 -->
<block wx:if="{{ bodyMuscle.rows.length }}">
<view class="metricCard"> <view class="metricCard">
<view class="metricCardTitle"> <view class="metricCardTitle">
<view class="metricCardBar"></view> <view class="metricCardBar"></view>
@@ -211,7 +242,6 @@
</view> </view>
</view> </view>
</view> </view>
</block> </block>
</view> </view>