效果图如下:
整体思路,后台返回的每行数据都会有一个字段,hasChildren 我用来判断是否显示 ‘+’,第一次加载不传id,拿到根节点数据。
点击加号,用当前行id查询数据,获取下级数据,调用方法,在原数据基础上增加子节点数据。
JSON.parse(res.data.ext).reverse().forEach(item => {
this.data.splice(index + 1,0,item)
})
我的问题在于,不知道点击 ‘-’ 执行怎样的方法了。
我最初是用 this.data = this.data.filter(item => item.pid != row.id) 但是这样会有一个问题,子节点的子节点如果展开了,这种方法就不行了。
求教应该怎么处理呢?
最后解决了,思路是在收起的动作时,用递归获取当前操作行下的所有子节点id,最后根据这id的数组,对源数据进行晒出。
封装了一个异步加载数据的tree-table组件 贴下代码。 感谢回答问题的朋友。
效果图:
myAsynTreeTable.vue
<template>
</template>
<script>
</script>
<style lang="less" rel="stylesheet/less" scoped>
</style>