|
|
@@ -8,14 +8,11 @@
|
|
|
tagline="科学管理全家健康"
|
|
|
quote="身体健康是幸福的基础" />
|
|
|
|
|
|
- <!-- 雷达图 -->
|
|
|
- <view class="section" v-if="dimensionData">
|
|
|
- <view class="section-header" v-if="dimensionData.isAverage">
|
|
|
- <text class="section-title">七维健康图</text>
|
|
|
- <text class="avg-badge">同龄同性平均值 · 上传报告后显示个人数据</text>
|
|
|
- </view>
|
|
|
- <view class="section-header" v-else>
|
|
|
+ <!-- 雷达图(始终显示,无用户数据时仅显示人群平均值) -->
|
|
|
+ <view class="section">
|
|
|
+ <view class="section-header">
|
|
|
<text class="section-title">七维健康图</text>
|
|
|
+ <text class="avg-badge" v-if="!dimensionData">同龄同性平均值 · 上传报告后显示个人数据</text>
|
|
|
</view>
|
|
|
<RadarChart
|
|
|
v-if="radarDimensions && radarDimensions.length >= 3"
|
|
|
@@ -183,19 +180,30 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
- /** 七维雷达图:维度标签(遵守 AGENTS.md 禁止模板内方法调用,使用 computed 缓存) */
|
|
|
+ /** 七维雷达图:维度标签(API无数据时使用默认标签) */
|
|
|
radarDimensions: function() {
|
|
|
var dims = this.dimensionData && this.dimensionData.dimensions
|
|
|
- if (!dims) return []
|
|
|
- var result = []
|
|
|
- for (var i = 0; i < dims.length; i++) {
|
|
|
- var d = dims[i]
|
|
|
- if (!d) continue
|
|
|
- result.push({ label: d.label || '', key: d.dimension || '' })
|
|
|
+ if (dims && dims.length > 0) {
|
|
|
+ var result = []
|
|
|
+ for (var i = 0; i < dims.length; i++) {
|
|
|
+ var d = dims[i]
|
|
|
+ if (!d) continue
|
|
|
+ result.push({ label: d.label || '', key: d.dimension || '' })
|
|
|
+ }
|
|
|
+ return result
|
|
|
}
|
|
|
- return result
|
|
|
+ // 无数据时使用默认七维标签
|
|
|
+ return [
|
|
|
+ { label: '生长发育', key: 'growth' },
|
|
|
+ { label: '睡眠质量', key: 'sleep' },
|
|
|
+ { label: '视力健康', key: 'vision' },
|
|
|
+ { label: '免疫力', key: 'immunity' },
|
|
|
+ { label: '营养均衡', key: 'nutrition' },
|
|
|
+ { label: '肠胃健康', key: 'gut' },
|
|
|
+ { label: '运动活力', key: 'exercise' }
|
|
|
+ ]
|
|
|
},
|
|
|
- /** 七维雷达图:分值(对 null/NaN 做归一化,避免 Canvas 计算 NaN 静默失败) */
|
|
|
+ /** 七维雷达图:分值(无数据时返回空数组,仅显示平均值) */
|
|
|
radarScores: function() {
|
|
|
var dims = this.dimensionData && this.dimensionData.dimensions
|
|
|
if (!dims) return []
|