在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
属性check-strictly官方文档提供属性check-strictly,在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 false。 系统的角色菜单控制的问题问题来了,在系统的角色菜单控制的时候,需要满足以下条件: 需求思考:一、check-strictly=false,行不通按照需要满足的条件,明显靠近将check-strictly设置为false,于是从check-strictly=false父子互相关联的基础入手,需要解决的问题就是: 二、check-strictly=true,试一试只能试一下将check-strictly设置为true,从check-strictly=true严格的遵循父子不互相关联入手,需要解决的问题就是: 解决代码:1、el-tree标签属性<el-tree ref="tree" :data="treeMenus" :props="multiProps" :show-checkbox="true" node-key="menuId" highlight-current :expand-on-click-node="false" :default-checked-keys="checkedId" :check-strictly="true" @check="clickDeal"> node-key:每个树节点用来作为唯一标识的属性,整棵树应该是唯一的。标识节点唯一的键值名称。
而根据后台的返回,针对:props=“multiProps”,我的配置为: multiProps: { children: 'childs', label: 'name', disabled: this.isDisabled } 识别childs字段为子节点name为节点名称,而默认是识别children为子节点label为节点名称。 2、el-tree组件有变化时给多选树重新赋值updated () { // 给多选树设置默认值 this.$refs.tree.setCheckedKeys(this.checkedId) }, checkedId为勾选节点的数组,不区分父子节点。 3、复选框点击时的特殊处理clickDeal (currentObj, treeStatus) { // 用于:父子节点严格互不关联时,父节点勾选变化时通知子节点同步变化,实现单向关联。 let selected = treeStatus.checkedKeys.indexOf(currentObj.menuId) // -1未选中 // 选中 if (selected !== -1) { // 子节点只要被选中父节点就被选中 this.selectedParent(currentObj) // 统一处理子节点为相同的勾选状态 this.uniteChildSame(currentObj, true) } else { // 未选中 处理子节点全部未选中 if (currentObj.childs.length !== 0) { this.uniteChildSame(currentObj, false) } } }, // 统一处理子节点为相同的勾选状态 uniteChildSame (treeList, isSelected) { this.$refs.tree.setChecked(treeList.menuId, isSelected) for (let i = 0; i < treeList.childs.length; i++) { this.uniteChildSame(treeList.childs[i], isSelected) } }, // 统一处理父节点为选中 selectedParent (currentObj) { let currentNode = this.$refs.tree.getNode(currentObj) if (currentNode.parent.key !== undefined) { this.$refs.tree.setChecked(currentNode.parent, true) this.selectedParent(currentNode.parent) } }, 到此这篇关于element的el-tree多选树(复选框)父子节点关联不关联的文章就介绍到这了,更多相关element el-tree多选树不关联内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论