计算最大值

1. 简介

1.1 案例简介

本案例以开发自建插件「计算最大值」为例,介绍如何开发一个完整的插件,并实现在表单中调用插件的效果。

1.2 设计思路

1)新建「计算最大值」表单,用于录入用户需要比较的系列数字,如:数字 a、数字 b、数字 c 等;

2)开发自建插件「计算最大值」,用于计算用户输入的多个数字中的最大值,具体包括:

  • 设置请求参数,确保能够获取到用户所输入的多个数字;
  • 设置返回参数,将通过代码计算出的最大值返回给用户;
  • 进行代码编辑,计算用户所输入的多个数字中的最大值。

3)在表单中设置前端事件,调用自建插件「计算最大值」,从而实现将计算出的最大值回写在表单中的效果。

1.3 预期效果

以计算三个数字中的最大值为例,效果如下所示:

2. 表单搭建

在学习之前建议安装 计算最大值应用模板,本文将按照模板中的示例数据进行讲解。

新建「计算最大值」表单,字段设置如下所示:

字段名称

字段类型

请输入数字

子表单

数字a

子字段-数字

数字b

数字c

是否开始计算

按钮

最大值

数字

3. 自建插件设计

3.1 新建自建插件

在「开放平台 >> 开发者后台 >> 自建插件」处,点击「新建插件」,并在「插件设计」页面中修改自建插件的名字为「计算最大值」。

3.2 新建函数

进入「插件设计」页面中,系统默认添加一个后端函数,点击函数右侧的三个小圆点,选择「编辑名称」,并修改函数名称为「计算最大值」。

3.3 设置参数

3.3.1 设计请求参数

点击「请求参数」,在页面中添加并设置字段控件,如下所示:

字段名称

字段类型

字段设置

子表单

子表单

在右侧字段信息处,修改 ID 为 abc

数字a

数字

在右侧字段信息处,修改 ID 为 a

数字b

在右侧字段信息处,修改 ID 为 b

数字c

在右侧字段信息处,修改 ID 为 c

3.3.2 设计返回参数

点击「返回参数」,添加返回参数,并进行如下设置:

  • 修改显示名称为「返回参数」;
  • 修改 ID 为「zuidazhi」;
  • 选择类型为「any」。

3.4 编辑代码

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

def calculate_max(input_dicts):
    
    max_value = float('-inf')
     
    for d in input_dicts:
        a, b, c = d['a'], d['b'], d['c']
        x = max(a, b, c)
        max_value = max(max_value,x)
        
     
    return max_value
 
# # 示例用法
# input_dicts = [
#     {'a': 10, 'b': 20, 'c': 30},
#     {'a': 5, 'b': 15, 'c': 25},
#     {'a': 8, 'b': 12, 'c': 16}
# ]
 
# 2. 从triggerConf获取入参
result = calculate_max(triggerConf.get('abc'))
return {"zuidazhi":result}

3.5 保存并启用

参数和代码都设计完成后,点击右上角的「保存」按钮,并返回至「自建插件」页面中,打开「计算最大值」右侧开关,即可启用插件。

4. 调用插件

4.1 添加按钮执行动作

进入计算最大值」表单中,点击「是否开始计算」按钮,在「字段属性 >> 执行动作」处点击「设置」,添加一个前端事件。

4.2 设置事件名称和说明

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

4.3 设置执行动作

设置执行动作如下:

  • 选择插件:选择「计算最大值」插件;
  • 子表单:选择赋值方式为「按子表单赋值」,并选择子表单为「请输入数字」,详细设置如下:
    • 数字 a:设置为「字段值」,即「请输入数字.数字 a」字段;
    • 数字 b:设置为「字段值」,即「请输入数字.数字 b」字段;
    • 数字 c:设置为「字段值」,即「请输入数字.数字 c」字段;
  • 字段存储关系:点击添加按钮,将「返回参数」的值存储到「最大值」中。

全部设置完成后,点击「保存」按钮。

5. 效果演示

效果参见【1.3 预期效果】。

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验