如何使用页面JS插件
在日常的代码开发过程中,您可能需要为某个区块或元素添加事件(例如单击事件)。这类事件通常会被集中管理,并保存在对应的页面JavaScript文件中。
有时,您还需要自定义一些方法以便复用某些逻辑,或者将一些多步骤这样较为复杂的逻辑整合到一起形成自定义方法,这些自定义的方法也需在页面JS文件中实现。在此过程中,需要注意的是,当前页面JS仅支持使用声明式函数定义方式,不支持使用函数表达式声明函数,并且不允许在页面JS中定义其他变量。
以“物料审批流程页面”为例,当用户单击“同步物料信息”按钮时,需完成以下操作:
- 调用接口A,获取物料最新主数据(如SAP数据)。
- 调用接口B,将获取的物料数据同步至当前表单。
- 向用户提示“同步成功”。
通过页面JS插件,可根据上述逻辑编写对应函数,实现按钮单击事件的完整处理流程。
编写JS函数
- 登录流程引擎。
- 在左侧导航栏中,选择“流程元模板”页面。 ,进入
- 在流程元模板所在行,单击
,进入流程元模板的编辑模式。
- 单击“UI编辑”,切换至“UI编辑”页面。
- 在导航树栏中,选择您需要编写JS函数的流程节点,单击左侧插件栏中的
,即可在展开的JS页面编写您的JS代码。
如果您对如何使用JS感到不熟悉,可以单击页面上方的“展示使用帮助”,系统将会显示一些JS代码示例供您参考学习。当您查看完示例后,单击“关闭使用帮助”,即可返回到代码编辑页面继续您的工作。
根据示例,编写如下代码:
// 自定义请求 function syncInfo() { // 第一步:先调用接口 A:获取物料的最新主数据(如SAP数据) const request1 = this.utils.lcRequest(); // 封装请求参数 const params1 = { url: '/test01/A', // url地址 method: 'get', // 请求类型 params: { queryParams: 'xxx1' }, // query参数 data: { bodyParams: 'xxx2' } // body参数 }; // 发起请求,打印请求结果 request1(params1).then((res) => { console.log(res); // 第二步:再调用接口 B:将获取到的物料数据同步到当前表单; const request2 = this.utils.lcRequest(); // 封装请求参数 const params2 = { url: '/test01/B', // url地址 method: 'post', // 请求类型 params: { queryParams: 'xxx1' }, // query参数 data: { bodyParams: res } // 使用接口A的响应数据作为参数 }; // 发起请求,打印请求结果 request2(params2).then((res) => { console.log(res); // 第三步:向用户提示“同步成功” this.utils.toast.success('同步成功'); }); }); }
- 编写完JS代码后,单击JS编辑页面右上角的
,保存所做的修改。
注意,每个节点页面对应的是不同的JS页面,请确保在正确的页面中保存代码。
相关操作
在完成JS代码编写后,您可以根据实际业务场景,为流程节点的UI页面组件绑定对应的JS逻辑。例如,选中“物料审批流程页面”中的“同步物料信息”按钮,在组件属性面板中为其绑定相应的JS代码。具体操作请参见为自定义事件绑定自定义JS。