BMI/标准体重计算
1. 简介
1.1 案例简介
本案例以开发自建插件「BMI/标准体重计算」为例,介绍简道云自建插件中通过前端函数调用后端函数的实现方法。
1.2 设计思路
1)新建「BMI/标准体重计算」表单,用于录入用户的数据,如:身高、体重等;
2)开发自建插件「BMI/标准体重计算」,用于计算用户的 BMI 和标准体重,具体包括:
- 设计后端函数「BMI 计算」,通过获取用户提供的身高和体重数据,计算对应的 BMI 指数;
- 设计后端函数「标准体重计算」,通过获取用户提供的身高数据,计算对应的标准体重;
- 设计前端函数「BMI/标准体重计算器」,根据用户选择的计算类型,调用对应的后端函数,并将计算结果返回给用户。
3)在表单中设置前端事件,调用自建插件「BMI/标准体重计算」,从而实现根据用户选择的计算类型,将计算结果回写在表单中的效果。
1.3 预期效果
以计算 BMI 指数和标准体重为例,效果如下所示:

2. 表单搭建
在学习之前建议安装 BMI/标准体重计算应用模板,本文将按照模板中的示例数据进行讲解。
字段名称 | 字段类型 | 字段设置 |
计算类型 | 下拉框 | 在「字段属性 >> 选项」处选择「自定义」,并设置选项如下所示:
|
您的身高(cm) | 数字 | —— |
您的体重(kg) | ||
是否开始计算 | 按钮 | |
计算结果 | 多行文本 |

3. 自建插件设计
3.1 新建自建插件
在「开放平台 >> 开发者后台 >> 自建插件」处,点击「新建插件」,并在「插件设计」页面中修改自建插件的名字为「BMI/标准体重计算」。

3.2 BMI计算
1)新增后端函数
点击左下角的「新增函数」,选择「后端函数 >> Python 3.10」,并修改函数名称为「BMI 计算」。

2)设计请求参数
点击「请求参数」,在页面中添加并设置字段控件,如下所示:
字段名称 | 字段类型 | 字段设置 |
身高(cm) | 数字 | 在右侧字段信息处,修改 ID 为 height_1 |
体重(kg) | 在右侧字段信息处,修改 ID 为 weight_1 |

3)设计返回参数
点击「返回参数」,添加返回参数,并进行如下设置:
- 修改显示名称为「返回参数」;
- 修改 ID 为「res」;
- 选择类型为「any」。

4)编辑代码
请求参数和返回参数都设计完成后,点击「代码」进入代码编辑页面。代码示例如下所示:

def calculate_bmi(height_1,weight_1):
height_m = height_1 / 100
bmi = weight_1 / (height_m ** 2)
return{
"res":"身体质量指数计算成功。"+"你的BMI是:"+str(bmi)
}
return calculate_bmi(triggerConf.get('height_1'),triggerConf.get('weight_1'))3.3 标准体重计算
1)新增后端函数
点击左下角的「新增函数」,选择「后端函数 >> Python 3.10」,并修改函数名称为「标准体重计算」。

2)设计请求参数
点击「请求参数」,在页面中添加并设置字段控件,如下所示:
字段名称 | 字段类型 | 字段设置 |
身高(cm) | 数字 | 在右侧字段信息处,修改 ID 为 height_2 |

3)设计返回参数
点击「返回参数」,添加返回参数,并进行如下设置:
- 修改显示名称为「返回参数」;
- 修改 ID 为「res」;
- 选择类型为「any」。

4)编辑代码
请求参数和返回参数都设计完成后,点击「代码」进入代码编辑页面。代码示例如下所示:

def calculate_standard(height_2):
standard = (height_2-100)*0.9
return{
"res":"标准体重计算成功。"+"你的标准体重应为:"+str(standard)
}
return calculate_standard(triggerConf.get('height_2'))
3.4 BMI/标准体重计算器
1)新增前端扩展函数
进入「插件设计」页面中,点击左下角的「新增函数」,选择「前端扩展」,并修改函数名称为「BMI/标准体重计算器」。

2)设计请求参数
点击「请求参数」,在页面中添加并设置字段控件,如下所示:
字段名称 | 字段类型 | 字段设置 |
计算类型 | 下拉框 | 在右侧字段信息处,修改 ID 为 select |
身高(cm) | 数字 | 在右侧字段信息处,修改 ID 为 height |
体重(kg) | 数字 | 在右侧字段信息处,修改 ID 为 weight |

3)设计返回参数
点击「返回参数」,添加返回参数,并进行如下设置:
- 修改显示名称为「返回参数」;
- 修改 ID 为「resText」;
- 选择类型为「any」。

4)编辑代码
请求参数和返回参数都设计完成后,点击「代码」进入代码编辑页面。代码示例如下所示:

let message;
const selectedFunction = triggerConf['select'];
// 根据选择调用不同的函数
if (selectedFunction === "BMI计算") {
message = await $g.utils.callFunction({
name: 'func.686a53c802b5333e9cfe899b',
data: {height_1:triggerConf['height'],weight_1:triggerConf['weight']}
});
} else if (selectedFunction === "标准体重计算") {
message = await $g.utils.callFunction({
name: 'func.686a7966e513d5ba0b2b24b1',
data: {height_2:triggerConf['height']}
})
}
else {
return { resText: '无效的选择,请选择计算类型' };
}
// 验证返回的数据结构
//if (!message || !message.result || !message.result.res) {
//console.error('无效的返回数据:', message);
//return { error: '函数返回的数据结构不符合预期', code: 500 };
//}
// 返回处理后的数据
return { resText: message.result.res };
3.5 保存并启用
参数和代码都设计完成后,点击右上角的「保存」按钮,并返回至「自建插件」页面中,打开「BMI/标准体重计算」右侧开关,即可启用插件。

4. 调用插件
4.1 添加按钮执行动作
进入「BMI/标准体重计算」表单中,点击「是否开始计算」按钮,在「字段属性 >> 执行动作」处点击「设置」,添加一个前端事件。

4.2 设置事件名称和说明
添加好前端事件后,首先设置前端事件的基础信息,即事件名称和事件说明,用于区分前端事件。设置完成后,点击「下一步」。

4.3 设置前端事件
设置执行动作如下:
- 选择插件:选择「BMI/标准体重计算 >> BMI/标准体重计算器」插件;
- 计算类型:设置为「字段值」,即「计算类型」字段;
- 身高(cm):设置为「字段值」,即「您的身高(cm)」字段;
- 体重(kg):设置为「字段值」,即「您的体重(kg)」字段;
- 字段存储关系:点击添加按钮,将「返回参数」的值存储到「计算结果」中。
全部设置完成后,点击「保存」按钮。

5. 效果演示
效果参见本文【1.3 预期效果】。

400-111-0890
在线咨询