功能流程编程

Lin
• 发表于:2023年04月07日 17:44 • 更新于:2024年01月22日 17:28
2891

前言

本文档仅介绍功能流程中的【编程】步骤的编程使用,其他涉及编程的地方由相应文档进行介绍。

如何进入编程步骤中的编程页面:

1. 进入功能流程。

2. 创建一个新的功能或者点击进入一个已有功能。

3. 添加一个步骤。

4. 基础类型选择“编程”。

5. 点击编程进入编程页面进行代码编写。



编程方法体

代码如下:         复制代码

async function runProcess($model, $plugin, $params){

//$model: 对功能中数据的操作

//$plugin: 对数据库数据的操作

//$params: 编程步骤的传入参数

}

$model

--getValue(procedure)

根据步骤id获取指定步骤的json(数组)

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680830920178_image.png



示例:


返回值

若获取的步骤类型是“数据”,则返回一个json,key为属性id,value为对应的属性值;

若获取的步骤类型是“集合”,则返回一个json list;

--error(code, msg)

弹窗警告提示并中断流程(不再执行后续代码/步骤)

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680830936273_image.png



示例:




无返回值

--log(msg)

在前端输出日志,常用于编程结果调试

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680830959928_image.png




示例:


无返回值

--command(type, value)

1. 设置功能提交成功后的提示

2. 设置功能提交成功后进行页面的跳转

3. 设置功能提交后自动调用一个功能(弹窗显示,并非直接提交)

4. 设置功能运行完毕后运行一些前端代码


https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680831575592_image.png

注意:“tips”可以和“program”或“redirect”同时使用,即功能提交成功后发出提示并功能调用/跳转页面;此外,当使用”tips”时,value传入空json时,功能提交后无提示,即$model.command(“tips”,{})

示例:


无返回值

--result(value)

设置功能返回值,常用于前端调用功能后获取返回值;

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680831593396_image.png

示例:

--output["output"]

输出参数,输出的参数值可在后续步骤中引用。

--stop()

执行完当前编程步骤后不再执行后续的步骤,无参数。

示例:

代码如下:         复制代码

await $model.stop()


$plugin

--data.getData(entity, id)

获取数据库中一条数据(json)

输入参数


https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680831789907_image.png

示例:

返回值

若传入的两个参数正确,返回一条数据的json,key为属性id,value为对应的属性值;

若参数不正确,则返回undefined

注意:获取的数据中关联类型的属性,对应的属性值为关联的数据id,图片/文件类型则为对应的url字符串

--data.removeData(entity, id)

删除数据库中一条数据

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680831986972_image.png

示例:

无返回值

--data.saveData(entity, form)

指定一个数据表新增一条数据

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832250509_image.png

示例:

返回值:包含_id的数据json

--data.updateData(entity,id,form)

修改一条数据的内容

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832323319_image.png

--data.queryData(entity, query, option)

获取指定数据表的符合查询条件的多条数据(可以理解为获取集合的步骤)

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832341982_image.png

特殊用法:

代码如下:         复制代码

//直接查询一万条数据
queryData(entity,query,{all:true})

示例:

返回值

返回一个collection,json中的key为属性id,value为属性值

--data.countData(entity, query)

获取指定数据表筛选条件内的数据量。

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832479437_image.png

返回值

返回数据量,数字类型。

示例:

--data.bulk(entity, bulk)

指定一个数据表进行批量操作(新增/修改/删除),运行效率比前面的通过循环调用save/update/remove更高

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832496495_image.png

示例:

无返回值

--data.summaryData(entity, summary_field, group_field, query)

分组统计数据表中的数据

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832514715_image.png

示例:

返回值示例:

[ { "_id": "个", "sum": 4800, "avg": 2400, "max": 4200, "min": 600, "count": 2 }, { "_id": "件", "sum": 100, "avg": 100, "max": 100, "min": 100, "count": 1 } ]

返回值参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832526974_image.png

--data.getUser()

获取当前用户信息

无输入参数

返回值

返回当前用户数据json

示例:

--program.exec(flow, form)

直接调用已有的功能并自动提交

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832568899_image.png

示例:

返回值

调用功能成功后,返回true,否则返回false,调用功能失败可能的原因:

1. 选择步骤中,选择的数据id不存在或数据表不一致;

2. 功能id不存在或功能未上线

3. 调用的功能中触发了$model.error()


--schedule.setJobIn(n,flow,form)

设置在n秒后调用功能

输入参数

参数名称

类型

是否必须

说明

n

number

在n秒后调用功能

flow

string

调用的功能id

form

object

功能的填写表单

无返回值

--schedule.setJobAt({hour,minute,second},flow,form)

设置当天几时几分几秒调用功能

输入参数

参数名称

类型

是否必须

说明

hour

number

minute

number

second

number

flow

string

功能id

form

object

功能的填写表单

无返回值


--program.display(flow)

获取功能当前线上版本的表单json,可获取到表单步骤procedure,使用的数据表entity,对应字段field等

输入参数

参数名

类型

是否必须

说明

flow

string

功能id

返回值示例,其中_process为步骤数据

--user.getInfo()

获取执行功能时当前用户注册信息(账号、电话号码、昵称)json

示例:

返回值:

代码如下:         复制代码

{

        user:"",//账号

        phone:"",//绑定的手机号

        nickname:""//昵称

}


--user.join(role)

当前用户加入指定角色,且对应的用户数据表中的名称一列会更新为昵称,role为角色id,并非数据库中的角色数据表id

此角色id获取方式:

打开F12,在权限管理中找到对应的角色,点击权限配置的保存;

查看控制台的network,找到bind请求,查看请求头header,找到第一行request url,url最后的/bind前面的id即为角色id;

示例:


--admin.createRole(name)

创建角色,name为角色名称

示例:

返回值:

返回新增角色的角色id。

--admin.bindRoleAuth(role,option)

绑定角色权限,role为角色id,option参数为绑定的权限数据;

optiton结构:

字段

类型

是否必须

名称

描述

option.route

Array

菜单列表

角色可使用的菜单id列表

option.program

Array

功能列表

角色可使用的功能flow列表

option.entity

Array

主数据集

角色可使用的主数据集列表

option.shortcut

Array

快捷功能

就是数据表高级配置那里设置的功能

示例:

无返回值

--admin.createUser(account,role,pwd,name,phone)

创建子用户,account账号、role角色id、pwd密码、name昵称、phone手机号

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832669856_image.png

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}$

示例:

返回值:

若创建成功,则返回用户id;


--admin.updateUser(account,updated)

修改子用户信息,account账号,updated要修改的信息

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832893311_image.png

无返回值


--admin.setUserActive(account, active)

修改用户状态

输入参数

参数名称

类型

是否必须

说明

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中文网


--share.get(key)

获取全局参数值

输入参数

参数名称

类型

是否必须

说明

key

string

全局参数的key,写法:$$CONFIG@全局参数key

示例:

返回值

返回全局参数key对应的值



--increment.get(key,option)

获取自动编号值

输入参数

参数名称

类型

是否必须

说明

key

string

自动编号名称

option

object

获取的配置项

option.useFormat

boolean

true/false,是否使用编号格式,默认否(只获取编号值)

option.step

number

获取步长,默认是1

示例:

https://pan.bnocode.com/project/62dfc125b702df15e7988dba/attachment/20230711/1689043694441_image.png

返回值

返回对应step长度的数组,按编号顺序排序,比如step是,则返回[1],step是2则返回[1,2]

如key对应的自动编号已存在,则按照对应的自动编号返回对应值,如key对应的自动编号不存在,则返回1,且自动创建这个key的自动编号


--lib.phone.getPhoneInfo(mobile)

获取号码归属地

输入参数

参数名称

类型

是否必须

说明

mobile

string

手机号码

返回值

返回一个数组,["手机号前8位","省","市","服务商"]


--cache.set(key,value,time)

设置后端缓存数据

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680832924802_image.png

无返回值


--cache.get(key)

获取设置好的缓存数据,通常和cache.get()接口配合使用

输入参数

参数名称

类型

是否必须

说明

key

string

数据key值

返回值:原来设置的缓存数据是什么就返回什么,如果已经过了缓存时间,则返回undefined


--env.token

设置当前 步骤/api 代码运行时使用的权限,不设置时默认使用当前用户

示例



--_.*

可调用Lodash工具库相关方法,相关接口请查看:Lodash 简介  Lodash 中文文档  Lodash 中文网

示例:

--approval.apply(entity,data)

发起一个审批流

输入参数

https://pan.bnocode.com/project/642283bde81aad5e5587ce87/attachment/20230407/1680833224227_image.png

示例:

https://pan.bnocode.com/project/62dfc125b702df15e7988dba/attachment/20231110/1699600870476_image.png

返回值

true/false 发起成功返回true

$params

该参数来自编程前添加的输入参数,方便编程


如上图所示,若添加了3个参数,则$params的值为:

{

    param_1:“2020-10-10”,//字符、日期

    param_2:[{},{},{}...],//集合

    param_3:100,//数字

}




本文是否对您有帮助?
有帮助
没帮助
您是否遇到了以下问题?
内容过期或不准确
缺少场景、事例
链接有误
太简单,步骤待完善
其他
提交反馈
如需获取即时帮助,请联系
小助理
微信扫码添加小助理
让你的想法快速变成软件吧~
功能流程编程
联系我们
售前咨询电话
020-88520693
意见箱 · 建议反馈
您的宝贵建议,使白码更完美!
微信扫码添加白码小助理
返回顶部