element-ui中tree组件选择子节点,如何默认选中所有父级节点
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
·
在做角色权限配置这块,用element-UI中的tree组件来做。想选中单个页面,或者单个页面的某个具体按钮,就能把所有父级菜单勾选。原生配置项并没有这种玩法,百度搜索也没有具体写法,这里分享一下我的做法。上代码
<el-tree :data="treeData" node-key="id" :check-strictly="true" ref="tree" :show-checkbox="true" @check="checkeTree"></el-tree>
methods: {
initForm (data) {
this.treeData = [{
id: 1,
label: '一级 1',
children: [{
id: 4,
label: '二级 1-1',
children: [{
id: 9,
label: '三级 1-1-1'
}, {
id: 10,
label: '三级 1-1-2'
}]
}]
}, {
id: 2,
label: '一级 2',
children: [{
id: 5,
label: '二级 2-1'
}, {
id: 6,
label: '二级 2-2'
}]
}, {
id: 3,
label: '一级 3',
children: [{
id: 7,
label: '二级 3-1'
}, {
id: 8,
label: '二级 3-2'
}]
}]
},
// 选中子节点,默认选中父节点
checkeTree (data) {
let thisNode = this.$refs.tree.getNode(data.id) // 获取当前节点
const keys = this.$refs.tree.getCheckedKeys() // 获取已勾选节点的key值
if (thisNode.checked) { // 当前节点若被选中
for (let i = thisNode.level; i > 1; i--) { // 判断是否有父级节点
if (!thisNode.parent.checked) { // 父级节点未被选中,则将父节点替换成当前节点,往上继续查询,并将此节点key存入keys数组
thisNode = thisNode.parent
keys.push(thisNode.data.id)
}
}
}
this.$refs.tree.setCheckedKeys(keys) // 将所有keys数组的节点全选中
},
cancel () {
this.$refs.tree.setCheckedKeys([1, 4, 2])
console.log(this.$refs.tree.getHalfCheckedKeys())
// this.$emit('dialogSwitch')
}
}
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:2 个月前 )
c345bb45
1 年前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)