npm

@yolanda-qn/eight-electrodes-report-lib
TypeScript icon, indicating that this package has built-in type declarations

1.4.1 • Public • Published

八电极指标报告库

示例

Usage

名称 类型 必须 默认值 说明
measureData measureData Y 测量数据
config config N

示例:

在模块中

import getReports, { WeightUnitEnum, LangsEnum } from '@yolanda-qn/eight-electrodes-report-lib';
// 引入所有语言
import locales from '@yolanda-qn/eight-electrodes-report-lib/dist/locales';

// 设置所有语言。默认只有简体中文和英语
getReports.i18n.setLangPack(locales);
// 设置回退语言
getReports.i18n.setFallbackLang('en');

 // 测量的数据
cosnt measureData = { height: 170, gender: 1, weight: 65 /* 其他字段 */ };
// 可不传
const config = {
	weightUnit : WeightUnitEnum.kg, // 重量单位。默认 kg
	lang : LangsEnum.zh_CN // 指定语言。默认 en
};

// 这里拿到的是原始的报告项数据,尚未进行重量单位转换
const reportItems = getReports(
	measureData, 
	config,
); // ReportItems[]

// 这里的数据进行了单位转换。不做额外处理的话直接展示数据即可
const reportObjects = reportItems.map((r) => r.toObject());

在浏览器中

<script src="./dist/index.umd.js"></script>
<!-- 引入所有语言 -->
<script src="./dist/locales/index.umd.js"></script>
<script>
	// 设置完整的语言包,默认只包含简体中文和英语
  window.QN_globalGetEightElectrodesReports.default.i18n.setLangPack(window.QN_globalEightElectrodesLocales);
	
	// 获取报告数据
	const reportItems = window.QN_globalGetEightElectrodesReports.default(measureData, config)
</script>

exports

// 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 util from './util';
export { default as createI18n } from './i18n/createI18n';
export { default as genPageTemplateModel } from './genPageTemplateModel';

export { default } from './main';

// SECTION ======================== consts export ========================
export * as consts from './consts';
export {
  StandardsEnum,
  UserGenderEnum,
  WeightUnitEnum,
  WeightUnitTextEnum,
  ReportBuilderOrderEnum,
  ReportBuilderIdsEnum,
  LevelColors,
  LevelsMapping,
  LangsEnum,
  DefaultLang,
} from './consts';
// !SECTION

// SECTION ======================== typings export ========================
export type {
  TypedUserGender,
  TypedScaleData,
  TypedConfig,
  TypedLevels,
} from './typings.d';
export type {
  TypeReportItemObject,
} from './ReportItem';
// !SECTION

measureData

名称 类型 必须 说明 单位
gender 1和0 Y 性别
birthday string Y 生日。例如:2021-06-17
height double Y 身体高度 cm
bmi int Y BMI kg/m²
bmr double Y 基础代谢量 kcal
body_age int Y 体年龄
bodyfat double Y 体脂率 %
bodyfat_left_arm double Y 体脂率(左上肢) %
bodyfat_left_leg double Y 体脂率(左下肢) %
bodyfat_right_arm double Y 体脂率(右上肢) %
bodyfat_right_leg double Y 体脂率(右下肢) %
bodyfat_trunk double Y 体脂率(躯干) %
bone double Y 骨量(又称无机盐) kg
lbm double Y 去脂体重 kg
muscle double Y 骨骼肌率 %
protein double Y 蛋白质 %
subfat double Y 皮下脂肪 %
visfat double Y 内脏脂肪
water double Y 体水分 %
weight double Y 体重 kg
sinew double Y 肌肉量 kg
sinew_left_arm double Y 肌肉量(左上肢) kg
sinew_left_leg double Y 肌肉量(左下肢) kg
sinew_right_arm double Y 肌肉量(右上肢) kg
sinew_right_leg double Y 肌肉量(右下肢) kg
sinew_trunk double Y 肌肉量(躯干) kg
score double N 健康评分

config

可选参数

名称 类型 必须 默认值 说明
builderIds Array<ReportBuilderIdsEnum> N 全部 指定报告项
weightUnit WeightUnitEnum N kg 重量单位
standard StandardsEnum N asia 标准
levelColors Record<LevelColors, string> N 自定义标准颜色
lang LangsEnum N en 语言
fallbackLang LangsEnum N en 回退语言

handler

可选参数

class CunstomReportBuilder extends ReportBuilder {
	static id = 'CunstomReportBuilder';

	build() {
		return new ReportItem();
	}
}

getMeasureReports(measureData, config, ({ setBuilders }) => {
	// 返回自定义指标构造器类表
	setBuilders((builders) => {
		return [
			// 已有的指标构造器
			...builders,
			// 自定义构造函数
			CunstomReportBuilder,
		];
	});
});

ReportBuilderIdsEnum

名称 单位 说明
Weight Weight WeightUnitTextEnum 体重
WaterMass WaterMass WeightUnitTextEnum 体水分
ProteinMass ProteinMass WeightUnitTextEnum 蛋白质
Bone Bone WeightUnitTextEnum 骨量/无机盐
MuscleMass MuscleMass WeightUnitTextEnum 骨骼肌量
BMI BMI kg/m²
Visfat Visfat 内脏脂肪等级
Obesity Obesity % 肥胖度
SinewMass SinewMass WeightUnitTextEnum 肌肉量
SinewLeftArm SinewLeftArm % 左上肢肌肉率
SinewRightArm SinewRightArm % 右上肢肌肉率
SinewLeftLeg SinewLeftLeg % 左下肢肌肉率
SinewRightLeg SinewRightLeg % 右下肢肌肉率
SinewTrunk SinewTrunk % 躯干肌肉率
Bodyfat Bodyfat % 体脂率
BodyfatLeftArm BodyfatLeftArm % 左上肢体脂率
BodyfatRightArm BodyfatRightArm % 右上肢体脂率
BodyfatLeftLeg BodyfatLeftLeg % 左下肢体脂率
BodyfatRightLeg BodyfatRightLeg % 右下肢体脂率
BodyfatTrunk BodyfatTrunk % 躯干体脂率
BodyfatMass BodyfatMass WeightUnitTextEnum 脂肪量
Subfat Subfat % 皮下脂肪占比
BMR BMR kcal 基础代谢量
LBM LBM WeightUnitTextEnum 去脂体重
BodyAge BodyAge 体年龄
FattyLiver FattyLiver 脂肪肝风险等级

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

StandardsEnum

指标标准

名称 说明
asia asia 亚洲。默认值
ocean ocean 海外欧美

LevelColors

默认的等级颜色

名称 说明
ColorLower #4FB1FB 偏低
ColorStandard #1CCDAA 标准
ColorHigher #FFC53D 超标准
ColorHigher01 #FF9E3D II级 脂肪肝风险等级
ColorHigher02 #FF6E3D III级 脂肪肝风险等级
ColorHigher03 #F54531 IV级 脂肪肝风险等级

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 荷兰语

1.0.6 语种code变化 韩语 由 kr 变为 ko 法语 由 fr 变为 fa 俄语 由 ru 变为 rus 捷克语 由 cs 变为 csy

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.2
  • 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.0
  • 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: 展示结果是否需要单位换算

constructor

  • args
  • params
    • type: Partial<Pick<ReportItem, TypeAllowedProp>> | ReportItem
    • default: {}

call

  • args
    • fn
      • type: string
      • desc: 方法名
    • args
      • type: any[]
      • desc: 要传递的参数

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取值方式
  • 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取值方式
  • 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取值方式
  • example
value = 255.5;
toExponential(value, 5); // "2.55500e+2"

toObject

输出为普通对象

export type TypeReportItemObject = {
  id: string;
  nameI18nKey: string;
  name: string;
  value: string;
  stdValue: string; // since v1.3.2
  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; // since v1.3.0
  processBarVisible: 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

有对应的get和set方法。 例如: getId() setId('Weight')

extendGlobalBuilder

扩展全局指标构造器列表

import { ReportBuilder, ReportItem, extendGlobalBuilder } from '@yolanda-qn/eight-electrodes-report-lib';

class CunstomReportBuilder extends ReportBuilder {
	static id = 'CunstomReportBuilder';

	build() {
		return new ReportItem();
	}
}

extendGlobalBuilder(CunstomReportBuilder);

removeGlobalBuilder

移除指定id的全局指标构造器

import { removeGlobalBuilder } from '@yolanda-qn/eight-electrodes-report-lib';

// builder id
removeGlobalBuilder('CunstomReportBuilder');

获取页面数据模型

点击查看

Readme

Keywords

none

Package Sidebar

Install

npm i @yolanda-qn/eight-electrodes-report-lib

Weekly Downloads

1

Version

1.4.1

License

none

Unpacked Size

628 kB

Total Files

108

Last publish

Collaborators

  • yolanda-h5