element树状表格checkbox选父带子,取消子取消父
Posted 包子源
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element树状表格checkbox选父带子,取消子取消父相关的知识,希望对你有一定的参考价值。
element树状表格checkbox选父带子,取消子取消父
代码:
<template>
<div class="bodybox">
<el-table
class="treetable"
ref="fixtable"
border
:data="tableData"
row-key="id"
default-expand-all
:tree-props=" children: 'children', hasChildren: 'hasChildren' "
highlight-current-row
@select="checkSelect"
height="100%"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column
show-overflow-tooltip
prop="name"
label="名称"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="id"
label="编码"
></el-table-column>
</el-table>
</div>
</template>
<script>
export default
name: "Manage",
components: ,
data()
return
deleteArr: [],
tableData: [
id: "11",
name: "北京市",
children: [
id: "1101",
name: "市辖区",
pid: "11",
children: [
id: "110101", name: "东城区", pid: "1101", children: [] ,
id: "110102", name: "西城区", pid: "1101", children: []
]
]
,
id: "12",
name: "天津市",
children: [
id: "1201",
name: "市辖区",
pid: "12",
children: [
id: "120101", name: "和平区", pid: "1201", children: [] ,
id: "120102", name: "河东区", pid: "1201", children: []
]
]
]
;
,
methods:
// 多选
checkSelect(data, row)
row.isCheck = row.isCheck ? false : true;
this.checkFun(row.children, row.isCheck);
if (!row.isCheck)
this.clearCheckFun(this.tableData, row.pid);
this.deleteArr = [];
this.getId(this.tableData);
console.log(this.deleteArr);
,
// 递归选中
checkFun(data, status)
data.forEach(element =>
element.isCheck = status;
this.$refs.fixtable.toggleRowSelection(element, element.isCheck);
if (element.children)
this.checkFun(element.children, element.isCheck);
);
,
// 清除父节点选中
clearCheckFun(table, pid)
table.forEach(element =>
if (pid == element.id)
element.isCheck = false;
this.$refs.fixtable.toggleRowSelection(element, false);
if (element.pid)
this.clearCheckFun(this.tableData, element.pid);
else
if (element.children)
this.clearCheckFun(element.children, pid);
);
,
// 获取选中ID
getId(data)
data.forEach(element =>
if (element.isCheck)
this.deleteArr.push(element.id);
if (element.children)
this.getId(element.children);
);
;
</script>
<style lang="less">
.treetable
thead
.el-checkbox__inner
display: none;
</style>
效果
以上是关于element树状表格checkbox选父带子,取消子取消父的主要内容,如果未能解决你的问题,请参考以下文章