vue中使用element组件库tree实现动态增加节点

  最近项目遇到一个树形结构数据业务场景如下:

  前期版本中仅需要展示分类树(由专门单独的接口返回),具体分类下数据由单独的表格展示(有另外一个接口返回,可根据分类id筛选),随着需求迭代设计,需要在分类树中展示数据,对此,在不修改分类接口的前提下,新增接口获取数据,动态添加到分类树节点上。为此利用element->tree组件节点API实现。

//template


  定义在点击节点时加载子节点数据,利用updateKeyChildren: 

export default {
    name:'component',
    data(){
        return {
            treeData:[{
                "children": [
                    {
                        "children": [
                            {
                                "children": [
                                    {
                                        "children": [],
                                        "name": "第四层",
                                        "id": 5
                                    },
                                        {
                                        "children": [],
                                        "name": "添加层级",
                                        "id": 51
                                    },
                                    {
                                        "children": [],
                                        "name": "ss",
                                        "id": 75
                                    }
                                ],
                                "name": "第三层",
                                "id": 3
                            }
                        ],
                        "name": "第二层",
                        "id": 2
                    }
                ],
                "name": "系统",
                "id": 1
            }]
        }
    },
    methods:{
        //加载标签数据
        async nodeClick(data,node){
            if (node.level == 4 && !data.children) {
                let { result } = await this.Api.getData();
                if (result && result.length > 0) {
                    this.$nextTick(() => {
                        this.$refs['tree'].updateKeyChildren(data.id,result);
                    })
                }
            }
        }
    }
}

  根据节点key设置选中状态:setCheckedKeys

    根据节点nodes设置选中状态:setCheckedNodes

    获取树选中状态节点数据数组:getCheckedNodes

  获取树选中状态节点key值数组:getCheckedKeys

转载于:https://www.cnblogs.com/zhang134you/p/10694465.html

你可能感兴趣的:(vue中使用element组件库tree实现动态增加节点)