Vue中使用vue-tree-color组件构建组织架构图完整指南

作者:组件花园时间:2026-10-24 15:32:07浏览:296

本文详细介绍如何在Vue项目中集成vue-tree-color组件以构建组织架构图。内容涵盖组件安装、基础用法、水平排列切换、折叠展开交互及节点点击事件处理,提供完整代码示例与配置说明,帮助开发者快速实现功能丰富的树形展示效果。

使用npm进行安装


# use npm
npm install vue-tree-color

安装loader依赖


npm install --save-dev less less-loader

引入插件配置


import Vue from 'vue'
import Vue2OrgTree from 'vue-tree-color'
 
Vue.use(Vue2OrgTree)

开始使用

由于组件已预先安装,可直接在Vue页面中通过组件标签调用,并动态绑定data数据(该数据需为递归结构)


<vue2-org-tree :data="data"/>

将data数据嵌入页面结构中

在data数据结构中,id字段需为每个元素分配唯一标识,label对应name属性,children则指向其子集数据

使用npm进行安装

调整排列布局

前文展示的是默认垂直排列模式,实际上还支持水平排列方式


# 只需要加上 horizontal 即可
<vue2-org-tree :data="data" :horizontal="true" />

具体效果展示

使用npm进行安装

实现折叠功能

需添加collapsable属性以启用折叠特性


<vue2-org-tree :data="data" :horizontal="true" collapsable />

使用npm进行安装

若要实现展开操作,需调用组件内置方法

监听on-expand事件


<vue2-org-tree :data="data" :horizontal="true" collapsable @on-expand="onExpand" />

JavaScript逻辑部分


methods: {
    collapse(list) {
        var _this = this
        list.forEach(function(child) {
            if (child.expand) {
                child.expand = false
            }
            child.children && _this.collapse(child.children)
        })
    },
    onExpand(e, data) {
        if ('expand' in data) {
            data.expand = !data.expand
            if (!data.expand && data.children) {
                this.collapse(data.children)
            }
        } else {
            this.$set(data, 'expand', true)
        }
    }
}

最终运行效果

使用npm进行安装

处理节点点击事件

绑定on-node-click方法以捕获点击行为


<vue2-org-tree :data="data" :horizontal="true" collapsable @on-expand="onExpand" @on-node-click="onNodeHandle" />

JS代码实现


onNodeHandle(e, data) {
    // e是节点数据
    console.log(e)
    // data是渲染在节点上的数据
    console.log(data)
},

控制台打印输出结果

使用npm进行安装

使用npm进行安装

扩展功能介绍

该组件还提供其他常用功能,例如设置节点颜色、处理鼠标移入移出事件等,具体可参考GitHub地址进一步了解

点击下方链接可访问组件更多功能文档

https://github.com/hukaibaihu/vue-org-tree#readme

至此,关于Vue中vue-tree-color组件实现组织架构图的案例详解已完成,更多相关内容可查阅本站往期文章或继续浏览后续内容,感谢支持!

作者最新文章
相关文章
更多