帆软单独模板存在多个筛选条件,上级筛选条件控制下级筛选条件是否可见可用

场景:

        有时候在帆软模板中存在多个筛选条件,比如分公司,中支公司查询条件,在填写分公司之前页面不显示中支公司的下拉框。并且不同分公司显示不同的中支公司,比如苏州分公司显示常熟中支,吴江中支等,上海分公司显示松江中支,青浦中支等

未选择物料名称时

物料名称选择电池

物料名称选择固化剂

 

具体的操作如下

1.设置控件和控件名称不可见

2.在物料名称控件处添加事件--编辑后

JS如下

var 起始发货日期 = this.options.form.getWidgetByName("起始发货日期");//获取下拉框控件起始发货日期
var 物料名称 = this.options.form.getWidgetByName("物料名称");//获取下拉框控件物料名称
var thislen = this.getValue();//取物料名称控件中的值
//如果物料名称是电池,设置起始发货日期控件和起始发货日期标签可见
if(thislen=='电池')
    {
    起始发货日期.setVisible(true);
    起始发货日期.disabled = false; // 启用控件
    this.options.form.getWidgetByName("Label起始发货日期").setVisible(true);
} else {    
    起始发货日期.setVisible(false);
    起始发货日期.disabled = true; // 禁用控件
    this.options.form.getWidgetByName("Label起始发货日期").setVisible(false);
}

 当物料名称为电池时,起始发货日期控件会可见且可用

在帆软社区给到的信息中,var thislen = this.getValue().length; 是拿字段的长度来作为判断是否展示控件的条件,但是如果第一个控件的值有多个,即不适用,比如上边的物料名称除了电池还挡有围板,这种情况拿

var thislen = this.getValue();//取物料名称控件中的值

会适用。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现多个控制下级菜单的复选框的el-tree,可以使用el-tree的节点插槽(node slot)和scoped slot来实现。 首先,在el-tree添加一个节点插槽,用于自定义节点的内容。然后,在节点插槽使用scoped slot来自定义节点的复选框。 scoped slot可以接收一个参数,该参数包含当前节点的数据和节点深度等信息。在scoped slot,可以根据当前节点的数据和深度等信息来决定该节点下方的子节点是否可见或可选。 以下是一个示例代码: ``` <template> <el-tree :data="data"> <template #default="{ node, data }"> <span>{{ node.label }}</span> <el-checkbox v-model="data.checked" @change="handleCheckChange(data, $event)">选</el-checkbox> <template v-if="node.children"> <el-tree :data="node.children"> <template #default="{ node, data }"> <span>{{ node.label }}</span> <el-checkbox v-model="data.checked" :indeterminate="data.indeterminate" @change="handleCheckChange(data, $event)">选</el-checkbox> </template> </el-tree> </template> </template> </el-tree> </template> <script> export default { data() { return { data: [ { label: "节点1", checked: false, children: [ { label: "子节点1", checked: false }, { label: "子节点2", checked: false } ] }, { label: "节点2", checked: false, children: [ { label: "子节点3", checked: false }, { label: "子节点4", checked: false } ] } ] }; }, methods: { handleCheckChange(data, event) { if (data.children) { this.checkChildren(data.children, event.target.checked); this.checkParent(data); } else { this.checkParent(data); } }, checkChildren(children, checked) { children.forEach(child => { child.checked = checked; if (child.children) { this.checkChildren(child.children, checked); } }); }, checkParent(data) { let parent = this.getParent(data); if (parent) { let checkedCount = 0; let uncheckedCount = 0; parent.children.forEach(child => { if (child.checked) { checkedCount++; } else { uncheckedCount++; } }); if (checkedCount === parent.children.length) { parent.checked = true; parent.indeterminate = false; } else if (uncheckedCount === parent.children.length) { parent.checked = false; parent.indeterminate = false; } else { parent.checked = false; parent.indeterminate = true; } this.checkParent(parent); } }, getParent(data) { let parent = null; let current = this.data; let findParent = function(children) { children.forEach(child => { if (child === data) { parent = current; } else if (child.children) { current = child; findParent(child.children); } }); }; findParent(this.data); return parent; } } }; </script> ``` 在该示例代码,el-tree的每个节点都包含一个复选框,用户可以选择或取消选择该节点。如果该节点有子节点,用户选择或取消选择该节点时,其子节点的复选框也会随之变化。如果该节点的所有子节点都被选,该节点的复选框也会被选;如果该节点的所有子节点都未被选,该节点的复选框也会被取消选;否则,该节点的复选框会处于半选状态。 同时,该示例代码还使用了一个名为`getParent`的方法,该方法用于获取一个节点的父节点。当用户选择或取消选择一个节点时,该方法会递归查找该节点的父节点,并计算其子节点的选状态,从而更新父节点的复选框状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值