代码
<template>
<Table row-key="id" :columns="columns16" :data="data12" border @on-select="onselect"></Table>
</template>
<script>
export default {
data () {
return {
columns16: [
{
type: 'selection',
width: 60,
align: 'center'
},
{
title: 'Name',
key: 'name',
tree: true
},
{
title: 'Age',
key: 'age'
},
{
title: 'Address',
key: 'address'
}
],
data12: [
{
id: '100',
name: 'John Brown',
age: 18,
address: 'New York No. 1 Lake Park'
},
{
id: '101',
name: 'Jim Green',
age: 24,
address: 'London No. 1 Lake Park',
children: [
{
id: '10100',
name: 'John Brown',
age: 18,
address: 'New York No. 1 Lake Park'
},
{
id: '10101',
name: 'Joe Blackn',
age: 30,
address: 'Sydney No. 1 Lake Park'
},
{
id: '10102',
name: 'Jon Snow',
age: 26,
address: 'Ottawa No. 2 Lake Park',
children: [
{
id: '1010200',
name: 'Jim Green',
age: 24,
address: 'New York No. 1 Lake Park'
}
]
}
]
},
{
id: '102',
name: 'Joe Black',
age: 30,
address: 'Sydney No. 1 Lake Park'
},
{
id: '103',
name: 'Jon Snow',
age: 26,
address: 'Ottawa No. 2 Lake Park'
}
]
}
},
methods:{
onselect(sel, row){
let mindex = -1;
let mrow = row;
//获取当前选中行index
this.data12.forEach((item,index) => {
if(item.id ==row.id) mindex = index
})
//判断是否有子节点
if(row.children){
row.children.forEach((item,index) => {
item._checked = true;
})
}
//改变数据源
this.data12.splice(mindex, 1, mrow)
}
}
}
</script>