|
|
@@ -27,12 +27,18 @@ class ScaleResult < ActiveRecord::Base
|
|
|
end
|
|
|
end
|
|
|
|
|
|
+ # 格式化数值,保留2位小数
|
|
|
+ def fmt(val)
|
|
|
+ return '-' if val.nil?
|
|
|
+ val.is_a?(Numeric) ? format('%.2f', val) : val.to_s
|
|
|
+ end
|
|
|
+
|
|
|
# 格式化显示测量结果(列表简要版)
|
|
|
def result_summary
|
|
|
return '-' if result.blank?
|
|
|
begin
|
|
|
d = JSON.parse(result)
|
|
|
- "体重:#{d['weight_kg']}kg BMI:#{d['bmi']} 体脂:#{d['bodyFatPercent']}%"
|
|
|
+ "体重:#{fmt(d['weight_kg'])}kg BMI:#{fmt(d['bmi'])} 体脂:#{fmt(d['bodyFatPercent'])}%"
|
|
|
rescue
|
|
|
'-'
|
|
|
end
|
|
|
@@ -58,30 +64,30 @@ class ScaleResult < ActiveRecord::Base
|
|
|
|
|
|
# 基础测量
|
|
|
html += '<tr><th colspan="4" style="background:#f5f5f5;">📊 基础测量</th></tr>'
|
|
|
- html += "<tr><td><b>体重</b></td><td>#{d['weight_kg']} kg</td>"
|
|
|
- html += "<td><b>BMI</b></td><td>#{d['bmi']}</td></tr>"
|
|
|
- html += "<tr><td><b>身体评分</b></td><td>#{d['bodyScore']} 分</td>"
|
|
|
- html += "<td><b>身体年龄</b></td><td>#{d['physicalAge']} 岁</td></tr>"
|
|
|
+ html += "<tr><td><b>体重</b></td><td>#{fmt(d['weight_kg'])} kg</td>"
|
|
|
+ html += "<td><b>BMI</b></td><td>#{fmt(d['bmi'])}</td></tr>"
|
|
|
+ html += "<tr><td><b>身体评分</b></td><td>#{fmt(d['bodyScore'])} 分</td>"
|
|
|
+ html += "<td><b>身体年龄</b></td><td>#{fmt(d['physicalAge'])} 岁</td></tr>"
|
|
|
|
|
|
# 体成分
|
|
|
html += '<tr><th colspan="4" style="background:#f5f5f5;">🏃 体成分分析</th></tr>'
|
|
|
- html += "<tr><td><b>体脂率</b></td><td>#{d['bodyFatPercent']}%</td>"
|
|
|
- html += "<td><b>肌肉率</b></td><td>#{d['musclePercent']}%</td></tr>"
|
|
|
- html += "<tr><td><b>内脏脂肪</b></td><td>#{d['visceralFat']}</td>"
|
|
|
- html += "<td><b>皮下脂肪</b></td><td>#{d['subcutaneousFatPercent']}%</td></tr>"
|
|
|
- html += "<tr><td><b>水分率</b></td><td>#{d['moisturePercent']}%</td>"
|
|
|
- html += "<td><b>蛋白质</b></td><td>#{d['proteinPercent']}%</td></tr>"
|
|
|
- html += "<tr><td><b>骨量</b></td><td>#{d['boneMass']} kg</td>"
|
|
|
- html += "<td><b>基础代谢</b></td><td>#{d['bmr']} kcal</td></tr>"
|
|
|
- html += "<tr><td><b>骨骼肌率</b></td><td>#{d['smPercent']}%</td>"
|
|
|
+ html += "<tr><td><b>体脂率</b></td><td>#{fmt(d['bodyFatPercent'])}%</td>"
|
|
|
+ html += "<td><b>肌肉率</b></td><td>#{fmt(d['musclePercent'])}%</td></tr>"
|
|
|
+ html += "<tr><td><b>内脏脂肪</b></td><td>#{fmt(d['visceralFat'])}</td>"
|
|
|
+ html += "<td><b>皮下脂肪</b></td><td>#{fmt(d['subcutaneousFatPercent'])}%</td></tr>"
|
|
|
+ html += "<tr><td><b>水分率</b></td><td>#{fmt(d['moisturePercent'])}%</td>"
|
|
|
+ html += "<td><b>蛋白质</b></td><td>#{fmt(d['proteinPercent'])}%</td></tr>"
|
|
|
+ html += "<tr><td><b>骨量</b></td><td>#{fmt(d['boneMass'])} kg</td>"
|
|
|
+ html += "<td><b>基础代谢</b></td><td>#{fmt(d['bmr'])} kcal</td></tr>"
|
|
|
+ html += "<tr><td><b>骨骼肌率</b></td><td>#{fmt(d['smPercent'])}%</td>"
|
|
|
html += "<td><b>体型</b></td><td>#{d['bodyType']}</td></tr>"
|
|
|
|
|
|
# 目标建议
|
|
|
html += '<tr><th colspan="4" style="background:#f5f5f5;">🎯 目标建议</th></tr>'
|
|
|
- html += "<tr><td><b>目标体重</b></td><td>#{d['targetWeight']} kg</td>"
|
|
|
- html += "<td><b>体重控制</b></td><td>#{d['weightControl']} kg</td></tr>"
|
|
|
- html += "<tr><td><b>标准体重</b></td><td>#{d['weightStandard']} kg</td>"
|
|
|
- html += "<td><b>标准BMI</b></td><td>#{d['bmiStandard']}</td></tr>"
|
|
|
+ html += "<tr><td><b>目标体重</b></td><td>#{fmt(d['targetWeight'])} kg</td>"
|
|
|
+ html += "<td><b>体重控制</b></td><td>#{fmt(d['weightControl'])} kg</td></tr>"
|
|
|
+ html += "<tr><td><b>标准体重</b></td><td>#{fmt(d['weightStandard'])} kg</td>"
|
|
|
+ html += "<td><b>标准BMI</b></td><td>#{fmt(d['bmiStandard'])}</td></tr>"
|
|
|
|
|
|
# 设备信息
|
|
|
html += '<tr><th colspan="4" style="background:#f5f5f5;">📱 设备信息</th></tr>'
|