在权限中父子集不关联,一开始,我以为default-checked-keys值不对,最后看了文档,原来是check-strictly被开启了
<el-tree ref="menu" :data="permissionSelectList" :default-checked-keys="permissionArr" :props="defaultProps" show-checkbox node-key="permissionId" />
首先去掉了,然后父子联动没有问题了,但是,又出现了新的问题,主要病症出现在半选的父节点数据上,接口要求是半选的节点也要提交的,但是点击修改,回显的时候,因为提交了半选的数据,此时,selected是1,勾选的状态,导致回显都是被选中的状态。
修改方案:回显过滤一下数据
1、过滤menu,selected为1
// 递归获取 已选择的权限 function getSelectSermissions(list) { const selectArr = []; function asyncSelect(list) { return list.filter((item) => { if (item.selected && item.selected === "1") { selectArr.push(item.permissionId); } // 判断是否有子组件 if (item.children && item.children.length) { asyncSelect(item.children); } return true; }); } asyncSelect(list); return selectArr; }
2、过滤menu的children,selected为0,
标签:selectArr,list,selected,tree,element,item,ui,asyncSelect,children From: https://www.cnblogs.com/wang715100018066/p/16644199.html