动态给组件赋值状态
1. 什么是动态给组件赋值状态
一般情况下,在表单编辑页面我们可以直接去设置组件的状态,设置为隐藏、只读、禁用等,但如果我们想要在表单/流程表单的的填写页面手动控制组件的状态,我们可以通过 JS 实现。
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1641461698762-ec9145f2-95d3-4831-aec3-db73874402cf.png)
表单编辑页面
2. 操作步骤
2.1 在编辑页面,我们可以使用一个单行文本框和单选框,并且设置好单选框的选项
效果如图:
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1641461750789-ab329cf1-30ee-45aa-ba54-cff349be8786.png)
设置单选框的选项值
2.2 点击单选框,高级 >> 新建动作,点击确定,会出现 JS 面板
如图:
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1641461793076-42da7e47-85bf-4e9c-b780-251fcc7d482b.png)
新建动作
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1641461863935-470da33b-6a96-44ed-b14c-1052366ab245.png)
onChange 值发生变化
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1622794601034-369044b7-fa39-4fb7-bfe2-076f870a4bd0.png)
JS 面板
2.3 接着我们可以把以下代码直接复制过去,点击保存
const a = this.$('单选框唯一标识').getValue();
if (a == "普通"){
this.$('被赋值组件的唯一标识').setBehavior('NORMAL')
}else if(a == "禁用"){
this.$('被赋值组件的唯一标识').setBehavior('DISABLED')
}else if(a == "只读"){
this.$('被赋值组件的唯一标识').setBehavior('READONLY')
}else {
this.$('被赋值组件的唯一标识').setBehavior('HIDDEN')
}
2.4 最终效果
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/gif/1621483531479-414b5b81-c4bb-4223-a485-93fa4a848c8c.gif)
3. 常见问题
3.1 为什么流程表单赋值组件状态不生效?
流程表单若在流程设计页面配置过组件状态,则 JS 动态赋值组件状态设置不会执行效果。
--------------------获取宜搭最新信息,欢迎关注我们--------------------
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/jpeg/1632807780139-91cbcd43-8c42-44f3-9b2d-0d8b799ab7ea.jpeg)
本文档对您是否有帮助?