

本文档仅介绍功能流程中的【编程】步骤的编程使用,其他涉及编程的地方由相应文档进行介绍。
1. 进入功能流程。
2. 创建一个新的功能或者点击进入一个已有功能。
3. 添加一个步骤。
4. 基础类型选择“编程”。
5. 点击编程进入编程页面进行代码编写。
代码如下: 复制代码
async function runProcess($model, $plugin, $params){
//$model: 对功能中数据的操作
//$plugin: 对数据库数据的操作
//$params: 编程步骤的传入参数
}
根据步骤id获取指定步骤的json(数组)
输入参数
示例:
返回值
若获取的步骤类型是“数据”,则返回一个json,key为属性id,value为对应的属性值;
若获取的步骤类型是“集合”,则返回一个json list;
弹窗警告提示并中断流程(不再执行后续代码/步骤)
输入参数
示例:
无返回值
在前端输出日志,常用于编程结果调试
输入参数
示例:
无返回值
1. 设置功能提交成功后的提示
2. 设置功能提交成功后进行页面的跳转
3. 设置功能提交后自动调用一个功能(弹窗显示,并非直接提交)
4. 设置功能运行完毕后运行一些前端代码
注意:“tips”可以和“program”或“redirect”同时使用,即功能提交成功后发出提示并功能调用/跳转页面;此外,当使用”tips”时,value传入空json时,功能提交后无提示,即$model.command(“tips”,{})
示例:
无返回值
设置功能返回值,常用于前端调用功能后获取返回值;
输入参数
示例:
输出参数,输出的参数值可在后续步骤中引用。
执行完当前编程步骤后不再执行后续的步骤,无参数。
示例:
代码如下: 复制代码
await $model.stop()
获取数据库中一条数据(json)
输入参数
示例:
返回值
若传入的两个参数正确,返回一条数据的json,key为属性id,value为对应的属性值;
若参数不正确,则返回undefined
注意:获取的数据中关联类型的属性,对应的属性值为关联的数据id,图片/文件类型则为对应的url字符串
删除数据库中一条数据
输入参数
示例:
无返回值
指定一个数据表新增一条数据
输入参数
示例:
返回值:包含_id的数据json
修改一条数据的内容
输入参数
获取指定数据表的符合查询条件的多条数据(可以理解为获取集合的步骤)
输入参数
特殊用法:
代码如下: 复制代码
//直接查询一万条数据
queryData(entity,query,{all:true})
示例:
返回值
返回一个collection,json中的key为属性id,value为属性值
获取指定数据表筛选条件内的数据量。
输入参数
返回值
返回数据量,数字类型。
示例:
指定一个数据表进行批量操作(新增/修改/删除),运行效率比前面的通过循环调用save/update/remove更高
输入参数
示例:
批量新增和修改会返回对应操作后的数据集合
分组统计数据表中的数据
输入参数
示例:
返回值示例:
[ { "_id": "个", "sum": 4800, "avg": 2400, "max": 4200, "min": 600, "count": 2 }, { "_id": "件", "sum": 100, "avg": 100, "max": 100, "min": 100, "count": 1 } ]
返回值参数
获取当前用户信息
无输入参数
返回值
返回当前用户数据json
示例:
直接调用已有的功能并自动提交
输入参数
示例:
返回值
调用功能成功后,返回true,否则返回false,调用功能失败可能的原因:
1. 选择步骤中,选择的数据id不存在或数据表不一致;
2. 功能id不存在或功能未上线
3. 调用的功能中触发了$model.error()
设置在n秒后调用功能
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
n | number | 是 | 在n秒后调用功能 |
flow | string | 是 | 调用的功能id |
form | object | 是 | 功能的填写表单 |
无返回值
设置当天几时几分几秒调用功能
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
hour | number | 是 | 时 |
minute | number | 是 | 分 |
second | number | 是 | 秒 |
flow | string | 是 | 功能id |
form | object | 是 | 功能的填写表单 |
无返回值
获取功能当前线上版本的表单json,可获取到表单步骤procedure,使用的数据表entity,对应字段field等
输入参数
参数名 | 类型 | 是否必须 | 说明 |
flow | string | 是 | 功能id |
返回值示例,其中_process为步骤数据
获取执行功能时当前用户注册信息(账号、电话号码、昵称)json
示例:
返回值:
代码如下: 复制代码
{
user:"",//账号
phone:"",//绑定的手机号
nickname:""//昵称
}
当前用户加入指定角色,且对应的用户数据表中的名称一列会更新为昵称,role为角色id,并非数据库中的角色数据表id
此角色id获取方式:
打开F12,在权限管理中找到对应的角色,点击权限配置的保存;
查看控制台的network,找到bind请求,查看请求头header,找到第一行request url,url最后的/bind前面的id即为角色id;
示例:
创建角色,name为角色名称
示例:
返回值:
返回新增角色的角色id。
绑定角色权限,role为角色id,option参数为绑定的权限数据;
optiton结构:
字段 | 类型 | 是否必须 | 名称 | 描述 |
option.route | Array | 否 | 菜单列表 | 角色可使用的菜单id列表 |
option.program | Array | 否 | 功能列表 | 角色可使用的功能flow列表 |
option.entity | Array | 否 | 主数据集 | 角色可使用的主数据集列表 |
option.shortcut | Array | 否 | 快捷功能 | 就是数据表高级配置那里设置的功能 |
示例:
无返回值
创建子用户,account账号、role角色id、pwd密码、name昵称、phone手机号
输入参数
account正则:^[a-zA-Z][0-9a-zA-Z#!*.@_]{5,15}$
pwd正则:^[a-zA-Z0-9!@#]{6,16}$
手机号正则:^[1][3,4,5,6,7,8,9][0-9]{9}$
示例:
返回值:
若创建成功,则返回用户_user,可以直接用来queryData查询:{_user:"返回的_user值"};
修改子用户信息,account账号,updated要修改的信息
输入参数
无返回值
修改用户状态
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
account | string | 是 | 账号 |
active | boolean | 是 | 是否激活,false表示禁用用户 |
--moment().format("YYYY-MM-DD HH:mm:ss")
获取当前时间,格式可自定义
示例:
获取往前的日期moment().subtract(Number, String);
$plugin.moment(new Date()).subtract(1, 'days').format('YYYY-MM-DD');
$plugin.moment(new Date()).subtract(1, 'months').format('YYYY-MM-DD');
$plugin.moment(new Date()).subtract(1, 'years').format('YYYY-MM-DD');
获取未来的日期moment().add(Number, String);
$plugin.moment(new Date()).add(1, 'days').format('YYYY-MM-DD');
$plugin.moment(new Date()).add(1, 'months').format('YYYY-MM-DD');
$plugin.moment(new Date()).add(1, 'years').format('YYYY-MM-DD');
更多请参考Moment.js中文网
获取全局参数值
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
key | string | 是 | 全局参数的key,写法:$$CONFIG@全局参数key |
示例:
返回值
返回全局参数key对应的值
获取自动编号值
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
key | string | 是 | 自动编号名称 |
option | object | 否 | 获取的配置项 |
option.useFormat | boolean | 否 | true/false,是否使用编号格式,默认否(只获取编号值) |
option.step | number | 否 | 获取步长,默认是1 |
示例:
返回值
返回对应step长度的数组,按编号顺序排序,比如step是,则返回[1],step是2则返回[1,2]
如key对应的自动编号已存在,则按照对应的自动编号返回对应值,如key对应的自动编号不存在,则返回1,且自动创建这个key的自动编号
获取号码归属地
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
mobile | string | 是 | 手机号码 |
返回值
返回一个数组,["手机号前8位","省","市","服务商"]
设置后端缓存数据
输入参数
无返回值
获取设置好的缓存数据,通常和cache.get()接口配合使用
输入参数
参数名称 | 类型 | 是否必须 | 说明 |
key | string | 是 | 数据key值 |
返回值:原来设置的缓存数据是什么就返回什么,如果已经过了缓存时间,则返回undefined
设置当前 步骤/api 代码运行时使用的权限,不设置时默认使用当前用户
示例
可调用Lodash工具库相关方法,相关接口请查看:Lodash 简介 Lodash 中文文档 Lodash 中文网
示例:
发起一个审批流
输入参数
示例:
返回值
true/false 发起成功返回true
该参数来自编程前添加的输入参数,方便编程
如上图所示,若添加了3个参数,则$params的值为:
{
param_1:“2020-10-10”,//字符、日期
param_2:[{},{},{}...],//集合
param_3:100,//数字
}