Skip to content

工作流专题:「代码块」

代码块 是可以编写 JavaScript 代码来实现自定义功能的节点。

注意

使用代码块需要有一定 JavaScript 基础
代码块 基础说明可查阅 代码块

场景1:「代码块」转换中文日期

场景说明

在订单系统中,存在表单: 订单表
场景需求:需要将订单中的 下单日期 转换为 中文日期

1.1 创建记录表单

创建 订单表

1.2 创建表单工作流

创建表单事件,用于转换中文日期

添加代码块,用于设置详细的转换逻辑

提示

以下为 代码块代码模块 的设置

JS
const dirt = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一"];
let source = new Date(input.source);

let result = "";
let year = source.getFullYear().toString();
for(i = 0; i < year.length; i ++){
    result += dirt[year[i]];
}
result += '年'
result += dirt[source.getMonth() + 1] + '月';
result += dirt[source.getDate()] + '日';
return { zh: result }

以下为 返回参数 的设置

json
{"zh": "中文日期"}

添加更新节点,更新记录中的中文日期

提示

筛选条件:记录ID = 记录ID(表单事件触发)

1.3 触发表单事件

点击 +记录 新增一条记录

提示

新增记录后,刷新一下就可以看到回填的 中文日期

1.4 查看流程日志

查看 流程日志 ,可以查看工作流的执行情况,这里可以看到转换的中文日期和更新的记录条数

场景2:「代码块」操作子表数据

场景说明

在订单系统中存在表: 订单表
场景需求:新增记录后,为每一条明细添加序号

2.1 创建记录表单

创建 订单表

提示

已精简掉所有不相关字段

2.2 创建表单工作流

创建表单事件,用于添加明细序号

添加 代码块 节点

提示

代码模块 设置

js
let list = input.list;
for(i = 0; i < list.length; i++){
    list[i].id = i + 1;
}

return {result: list}

返回参数 设置

json
{"result": [{"name":"商品名称","id":1}]}

添加 更新记录,清空子表

为什么清空子表?

因为子表更新只能针对 单条 子表更新
但清空子表后,使用 增加子表记录 就可以做到子表的批量添加
此处场景简单,可以这样使用

添加 更新记录,新增子表

2.3 触发表单事件

点击 +记录 新增一条记录

提示

新增记录时,没有填写序号
提交后,再次点开,就能看到序号自动生成了

2.4 查看流程日志

查看 流程日志 ,可以看到 代码块 的填充情况和更新情况