@yolanda-qn/four-electrodes-report-lib-pe
v1.1.6
Published
四电极报告 public edition
Readme
四电极指标报告库
Usage
|名称|类型|必须|默认值|说明| |:--|:--|:--:|:--|:--| |measureData|measureData|Y||测量数据| |config|config|N||
- 返回
- type: Array<ReportItem>
示例:
在模块中
// 引入iconfont图标,如果需要展示图标。注意只能使用 svg 方式引入
import '@yolanda-qn/four-electrodes-report-lib-pe/icons';
import getReports from '@yolanda-qn/four-electrodes-report-lib-pe';
// 引入所有语言
import locales from '@yolanda-qn/four-electrodes-report-lib-pe/dist/locales';
// 设置所有语言。默认只有简体中文和英语
getReports.i18n.setLangPack(locales);
// 设置回退语言
getReports.i18n.setFallbackLang('en');
// 测量的数据
cosnt measureData = {"gender":1,"birthday":"1994-08-08","height":"168","weight":"65.6","bmi":"23.2","bodyfat":"16.8","subfat":"14.9","visfat":"6","water":"60.1","bmr":"1549","body_age":"27","muscle":"47.4","bone":"2.7","sinew":"51.9","protein":"19","lbm":"54.6","body_shape":"4","heart_index":"3","heart_rate":"83","score":"94.4"};
const config = {
weightUnit : 'kg', // 重量单位
lang : 'zh_CN', // 当前系统语言
};
// 这里拿到的是原始的报告项数据,尚未进行重量单位转换
const reportItems = getReports(
measureData,
config,
);
// 这里的数据进行了单位转换。不做额外处理的话直接展示数据即可
const reportObjects = reportItems.map((r) => r.toObject());
在浏览器中
<!-- 引入iconfont图标,如果需要展示图标。注意只能使用 svg 方式引入 -->
<script src="./dist/icons.js"></script>
<script src="./dist/index.umd.js"></script>
<!-- 引入所有语言 -->
<script src="./dist/locales/index.umd.js"></script>
<script>
// 设置完整的语言包,默认只包含简体中文和英语
window.QN_globalGetPeFourElectrodesReports.default.i18n.setLangPack(window.QN_globalPeFourElectrodesLocales);
// 获取报告数据
const reportItems = window.QN_globalGetPeFourElectrodesReports.default(measureData, config);
</script>
预览测试
yarn previewexports
// export { default as Big } from 'big.js';
export { default as ReportBuilder } from './ReportBuilder';
export { default as ReportItem } from './ReportItem';
export { default as builders } from './builders';
export { default as version } from './version';
export * as consts from './consts';
export * as util from './util';
export { default as createI18n } from './i18n/createI18n';
export { default } from './main';measureData
|名称|类型|必须|说明|单位| |:--|:--|:--:|:--|:--| |gender |1和0 |Y|性别。1:男性,0:女性|| |birthday |string |Y|生日。例如:1994-06-17|| |local_updated_at|string,number|Y|测量时间。有效的日期格式。别名:timestamp,time|| |height |number |Y|身体高度|cm| |weight |number |Y|体重|kg| |stature |number |N|身高。注意这个只有身高秤才有。如果存在此值,则会作为height值进行计算|cm| |bmi |number |N|BMI|kg/m²| |bodyfat |number |N|体脂率|%| |subfat |number |N|皮下脂肪率|%| |visfat |number |N|内脏脂肪等级|| |water |number |N|体水分|%| |bmr |number |N|基础代谢量|kcal| |body_age |number |N|体年龄。别名:bodyAge,bodyage|岁| |muscle |number |N|骨骼肌率|%| |bone|number |N|骨量(又称无机盐)|kg| |sinew |number |N|肌肉量。别名:muscleMass|kg| |protein |number |N|蛋白质|%| |lbm|number|N|去脂体重。别名:fat_free_weight|kg| |body_shape|number|N|体型。别名:bodyShape|| |heart_index|number|N|心脏等级。别名:heartIndex,cardiac_index|| |heart_rate|number|N|心率。别名:heartRate|次/分钟| |score|number|N|健康评分|| |fatty_liver|number|N|脂肪肝风险等级。别名:fattyLiver,fatty_liver_risk|| |bodyfat_mass|number|N|脂肪重量。别名:bodyfatMass,fat_weight|kg| |obesity|number|N|肥胖度|%| |water_mass|number|N|体水量。别名:waterMass,water_content|kg| |protein_mass|number|N|蛋白质量。别名:proteinMass,protein_quality|kg| |mineral_salt|number|N|无机盐状况。别名:mineralSalt,inorganic_salt|| |best_visual_weight|number|N|理想视觉体重。别名:bestVisualWeight,ideal_visual_weight|kg| |standard_weight|number|N|标准体重。别名:standardWeight|kg| |sinew_rate|number|N|肌肉率。别名:sinewRate,muscle_rate|%| |weight_control|number|N|体重控制。别名:weightControl|kg| |fat_control|number|N|脂肪控制。别名:fatControl|kg| |sinew_control|number|N|肌肉控制。别名:sinewControl,muscle_control|kg|
注意:测量记录一定要保存用户当时测量的用户信息数据,历史数据的指标展示不能根据现在的用户信息去计算
config
|名称|类型|必须|默认值|说明| |:--|:--|:--:|:--|:--| |builderIds|Array<ReportBuilderIdsEnum>|N|全部|指定报告项| |weightUnit|WeightUnitEnum|N|kg|重量单位| |levelColors|Record<LevelColors, string>|N||自定义标准颜色| |lang|LangsEnum|N|zh_CN|语言| |fallbackLang|LangsEnum|N|en|回退语言|
ReportBuilderIdsEnum
|名称|值|单位|说明| |:--|:--|:--|:-| |Weight|Weight|WeightUnitTextEnum|体重| |Stature|Stature|cm|测量的身高| |WeightControl|WeightControl|WeightUnitTextEnum|体重控制| |BMR|BMR|kcal|基础代谢量| |BestVisualWeight|BestVisualWeight|WeightUnitTextEnum|理想视觉体重| |Bodyfat|Bodyfat|%|体脂率| |BodyfatMass|BodyfatMass|WeightUnitTextEnum|脂肪量| |BMI|BMI|kg/m²|| |BodyAge|BodyAge|岁|体年龄| |BodyShape|BodyShape||体型| |Bone|Bone|WeightUnitTextEnum|骨量/无机盐 |FatControl|FatControl|WeightUnitTextEnum|脂肪控制| |HeartIndex|HeartIndex|L/min/m^2|心脏指数| |HeartRate|HeartRate|bpm|心率| |LBM|LBM|WeightUnitTextEnum|去脂体重| |MineralSalt|MineralSalt||无机盐状况| |Muscle|Muscle|%|骨骼肌率| |SinewControl|SinewControl|WeightUnitTextEnum|肌肉控制| |Sinew|Sinew|WeightUnitTextEnum|肌肉量| |SinewRate|SinewRate|%|肌肉率| |Obesity|Obesity|%|肥胖度| |Protein|Protein|%|蛋白质| |ProteinMass|ProteinMass|WeightUnitTextEnum|蛋白质量 |Score|Score||健康评分| |StandardWeight|StandardWeight|WeightUnitTextEnum|标准体重| |Subfat|Subfat|%|皮下脂肪率| |Visfat|Visfat||内脏脂肪等级| |Water|Water|%|体水分| |WaterMass|WaterMass|WeightUnitTextEnum|体水量| |FattyLiver|FattyLiver|FattyLiverReportValueEnum|脂肪肝风险等级|
WeightUnitEnum
重量单位枚举
|名称|值|说明| |:--|:--|:--| |kg|kg|| |lb|lb|| |st|st|外版新增st_only标识| |st_lb|st_lb|对应 海外版st标识| |jin|jin|斤|
WeightUnitTextEnum
重量单位展示文字
|名称|值|说明| |:--|:--|:--| |kg|kg|| |lb|lb|| |st|st|外版新增st_only标识| |st_lb|st:lb|对应 海外版st标识。可能的展示方式为 10st:3lb| |jin|斤||
LevelColors
默认的等级颜色
|名称|值|说明| |:--|:--|:--| |ColorLowest|#AA8EE4|严重偏低| |ColorLower|#00C1E4|偏低| |ColorStandard|#A7CB40|标准| |ColorHigher|#FBC13D|偏高| |ColorHighest|#F74142|严重偏高| |ColorSufficient|#3EA42C|充足/优秀| |ColorHigh01|#FF8C00|轻度肥胖| |ColorHigh02|#F54531|严重肥胖|
LangsEnum
语种枚举。建议只使用英语和中文
|名称|值|说明| |:--|:--|:--| |zh_CN|zh_CN|简体中文| |en|en|英语| |zh_TW|zh_TW|繁体中文| |ko|ko|韩语| |jp|jp|日语| |de|de|德语| |fa|fa|法语| |rus|rus|俄语| |es|es|西班牙语| |pt|pt|葡萄牙语| |ar|ar|阿拉伯语| |csy|csy|捷克语| |it|it|意大利语| |tr|tr|土耳其语| |ro|ro|罗马尼亚语| |hu|hu|匈牙利语| |pl|pl|波兰语| |sk|sk|斯洛伐克语| |th|th|泰语| |nl|nl|荷兰语|
ReportItem
id
- type: string
- desc: 指标id。
nameI18nKey
- type: string
- default: ''
- desc: 当前名称对应语言的key
name
- type: string
- default: ''
- desc: 指标名
value
- type: string | number
- desc: 指标数值
stdValue
- since:
v1.3.1 - type: number
- default: 0
- desc: 标准值。有些指标会输出标准值。如果为0则表示未输出标准值
fixed
- type: number
- default: 2
- desc: 设定value,boundaries,min,max等保留的小数位
unit
- type: string
- default: '',
- desc: 单位。展示用。当使用toObject方法导出数据,默认unit的值为unitValue
unitValue
- type: string
- default: ''
- desc: 单位的值。例如 unitValue: jin。unit则为 斤。如果不是重量单位,unitValue一般为unit值的 i18nKey名
order
- type: number
- default: 0
- desc: 排序。10作为梯度
icon
- type: string
- default: ''
- desc: 图标名或地址
descI18nKey
- type: string
- default: ‘’
- desc: 来自levels中对应等级的descI18nKey
desc
- type: string
- default: ''
- desc: 来自levels中对应等级的desc
introI18nKey
- type: string
- default: ‘’
- desc: 指标介绍的i18nKey
intro
- type: string
- default: ''
- desc: 指标介绍
boundaries
- type: Array<string | number>
- default: []
- desc: 边界值数组
subBoundaries
- type: Array<string | number>
- default: []
- desc: 细分边界值数组
min
- type: string | number
- default: 0
- desc: 最小值
max
- type: string | number
- default: 9999
- desc: 最大值
levels
- type: Array<{ color: string; nameI18nKey: string; name: string; desc: string; descI18nKey: string; }>
- default: []
- desc: 等级描述
levelIndex
- type: number
- default: 0
- desc: 当前等级索引
progress
- type: number
- default: 0
- desc: 总进度。例如 50。 如果小于最小值则会为负数。 大于最大值则会超过100。 计算公式:(value - min) / (max - min)。 注意此字段不应该作为进度条展示依据。单条进度条百分比展示请使用 displayProgress 字段。
displayProgress
readonly
- since:
v1.3.1 - type: number
- desc: 可用于单条进度条百分比展示
levelProgress
- type: number
- default: 0
- desc: 在当前区间的进度。例如 30。 如果小于最小值则为 -100。 大于最大值为 100。 计算公式:(value - levelStart) / (levelEnd - levelStart)。 区间进度条分段展示可用此字段。
processBarVisible
- type: boolean
- default: false
- desc: 是否显示进度条
valueFormatter
- type: (ctx: ReportItem) => string
- desc: 对value值格式化展示。会根据重量单位进行数值转换以及toFixed
stdValueFormatter
- type: (ctx: ReportItem) => string
- desc: 对stdValue值格式化展示。会根据重量单位进行数值转换以及toFixed
minFormatter
- type: (ctx: ReportItem) => string
- desc: 对min值格式化展示。会根据重量单位进行数值转换以及toFixed
maxFormatter
- type: (ctx: ReportItem) => string
- desc: 对max值格式化展示。会根据重量单位进行数值转换以及toFixed
unitFormatter
- type: (ctx: ReportItem) => string
- desc: 对unit值格式化展示。会根据重量单位以及unitValue决定返回的文字
boundariesFormatter
- type: (ctx: ReportItem) => string
- desc: 对boundaries值格式化展示。会根据重量单位进行数值转换以及toFixed
subBoundariesFormatter
- type: (ctx: ReportItem) => string
- desc: 对subBoundaries值格式化展示。会根据重量单位进行数值转换以及toFixed
isNeedTransformWeightValueByUnit
- type: boolean
- default: false
- desc: 展示结果是否需要单位换算
isAdditional
- type: boolean
- default: false
- desc: 是否是额外指标
constructor
- args
- params
- type: Partial<Pick<ReportItem, TypeAllowedProp>> | ReportItem
- default: {}
call
- args
- fn
- type: string
- desc: 方法名
- args
- type: any[]
- desc: 要传递的参数
- fn
toFixed
- args
- value
- type: string | number
- default: tihs.value
- fixed
- type: number
- default: this.fixed
- tz
- type: boolean
- default: true
- desc: 是否去掉小数位末尾的0
- rm
- type: number
- desc: round取值方式
- value
- example
value = 255.5;
toFixed(value, 5); // "255.5"
toFixed(value, 5, false); // "255.50000"toPrecision
固定位数
- args
- value
- type: string | number
- default: tihs.value
- precision
- type: number
- rm
- type: number
- desc: round取值方式
- value
- example
value = 255.5;
toPrecision(value, 5); // "255.50"toExponential
科学计数法结果
- args
- value
- type: string | number
- default: tihs.value
- dp
- type: number
- rm
- type: number
- desc: round取值方式
- value
- example
value = 255.5;
toExponential(value, 5); // "2.55500e+2"toObject
输出为普通对象
export type TypeReportItemObject = {
id: string;
nameI18nKey: string;
name: string;
value: string;
stdValue: string;
fixed: number;
unit: string;
unitValue: string;
order: number;
icon: string;
descI18nKey: string;
desc: string;
introI18nKey: string;
intro: string;
boundaries: string[];
subBoundaries: string[];
min: string;
max: string;
levels: TypedLevels[];
levelIndex: number;
progress: number;
levelProgress: number;
displayProgress: number;
processBarVisible: boolean;
isNeedTransformWeightValueByUnit: boolean;
isAdditional: boolean;
};setter, getter
id,nameI18nKey,name,value,stdValue,fixed,unit,unitValue,order,icon,descI18nKey,desc,introI18nKey,intro,boundaries,subBoundaries,min,max,levelIndex,levels,progress,levelProgress,processBarVisible,valueFormatter,stdValueFormatter,minFormatter,maxFormatter,unitFormatter,boundariesFormatter,subBoundariesFormatter,isNeedTransformWeightValueByUnit, isAdditional
有对应的get和set方法。
例如:
getId()
setId('Weight')
无机盐输出的值的定义
对应返回字段mineral_salt
export enum MineralSaltReportValueEnum {
// 充足
adequate = 3,
// 正常
normal = 2,
// 缺乏
lack = 1,
}体型输出值的定义
对应返回的字段body_shape
export enum BodyShapeReportValueEnum {
// 隐形肥胖型
shape1 = 1,
// 运动不足型
shape2 = 2,
// 偏瘦型
shape3 = 3,
// 标准型
shape4 = 4,
// 偏瘦肌肉型
shape5 = 5,
// 肥胖型
shape6 = 6,
// 偏胖型
shape7 = 7,
// 标准肌肉型
shape8 = 8,
// 非常肌肉型
shape9 = 9,
}脂肪肝风险等级输出值定义
export enum FattyLiverReportValueEnum {
// 0级
level0 = 0,
// I级
level1 = 1,
// II级
level2 = 2,
// III级
level3 = 3,
// IV级
level4 = 4,
}
