如何在ProcessMaker 4中实现自动勾选复选框控件?(附v3代码迁移需求)
ProcessMaker 4 实现复选框自动勾选逻辑的替代方案
ProcessMaker 4 基于 Vue.js 构建,前端API和依赖jQuery的ProcessMaker 3差异较大,以下是对应功能的实现方式:
实现步骤
- 在表单设计器中,选中
amount字段,添加变更事件(Change Event),事件类型选择JavaScript。 - 替换为以下代码:
// 获取当前amount字段的新值 const newValue = this.getValue(); // 获取amount2字段的控件实例并取值 const amount2 = this.$form.getControl('amount2').getValue(); // 获取目标复选框控件实例 const myCheckbox = this.$form.getControl('myCheckbox'); // 显示复选框控件 myCheckbox.setVisible(true); // 根据数值比较结果设置复选框状态 if (newValue >= amount2) { myCheckbox.setValue(true); } else { myCheckbox.setValue(false); }
关键差异说明
- PM4中通过
this.$form.getControl('控件ID')获取表单控件实例,替代PM3的jQuery DOM选择器 - 复选框的
setValue()方法接受布尔值true/false,而非PM3的字符串"1"/"0" - 控件显示/隐藏使用
setVisible(布尔值)方法,替代PM3的show()/hide()
额外注意
如果amount或amount2是文本类型字段,需要先转换为数值再比较,避免字符串逻辑错误,示例:
const newValue = parseFloat(this.getValue()) || 0; const amount2 = parseFloat(this.$form.getControl('amount2').getValue()) || 0;
内容的提问来源于stack exchange,提问作者Ghodsieh Shahsavan
相关产品推荐
相关产品推荐

