代码块基础
前提
有一定的 JavaScript 基础,熟悉定义变量、函数、循环、条件判断等常规代码编写,没基础的可以先去 B站/菜鸟教程学习
添加代码块操作
Zion 行为流中的「代码块」目前只支持 JavaScript 语言。 如果想要通过编写 JS 代码来实现更加复杂的业务逻辑时,可以在行为流中添加代码块的操作,只需要点击需要添加代码块的节点,选择代码块即可。
配置代码块
当添加了代码块之后,你可以点击代码块操作修改名称,在右侧的代码编辑区域中可以直接编写 JS 代码,也可以点击代码编辑器右上角「展开」按钮展开代码编辑器界面,使用更大的窗口编辑代码。
配置以及获取入参
如果您的代码块中需要处理用户输入的(行为流最上级的「入参」)或者是上级节点产生的数据,那么首先需要在代码块中所需的【入参】 以触发【微信提醒】为例:
- 先在「行为流」 中配置入参,这里的作用是为了在页面上调用行为流时,可以向行为流中输入参数
- 在 「代码块」 中配置入参,这里的作用是为了告诉代码块,入参具体的值是什么,一般绑定行为流入参的结果
⚠️ 注意:入参名称要与第3步中获取入参的函数括号中的一致!!!
- 在 「代码」 中获取入参,需要使用到 Zion 内置的 context.getArg("入参名称"); 函数来获取入参
⚠️ 注意:名称需要使用英文的「单引号」或者「双引号」包裹 微信提醒
const thing1 = context.getArg('thing1');
const thing4 = context.getArg('thing4');
const date2 = context.getArg('date2');
const accountId = context.getArg('accountId');
const data = { 'thing1':thing1, 'date2':date2, 'thing4':thing4
};
const gql = `mutation publishWechatMessage($data: Map_String_StringScalar,$accountId:Long!){
publishWechatMessage(
accountId: $accountId
data: $data
miniprogramState: FORMAL
page: "pages/lil7gbne/lil7gbne"
lang: CN
templateId: "RQH7FafxS4_jQsRSN6ujLLKUoWuXpC3uLvYP1WL75Ys"
)
}`;
context.runGql('publishWechatMessage', gql,{data,accountId}, { role: 'admin'});
配置以及返回出参
如果你需要将代码块处理的结果拿到行为流下方的其它节点使用时,你需要配置代码块的出参,并且编写返回参数的的代码内容。
在 「代码」 中返回出参,需要使用到 Zion 内置的 context.setReturn("出参名称",出参内容); 函数来返回出参返回手机号码处理结果
const phone_number = context.getArg('phone_number'); // 获取行为流入参手机号 const result = `${phone_number.substring(0,3)}****${phone_number.substring(7,11)}`; // 将获取到的手机号中间四位处理为引号的逻辑 context.setReturn('result_phone', result) ; // 返回处理结果,即出参
在 「代码块」 中配置出参,这里的作用时告诉下级节点,出参的名称以及类型是什么
⚠️ 注意 :出参的名称要与代码中 context.setReturn() 函数中填写的名称一致
- 在「行为流」中配置出参,这里的作用是将上级节点中需要给前端使用的数据返回到前端,进行了这一步之后,在前端页面调用这个行为流时,才会有【结果数据】供页面赋值/使用