vue中树状组织架构插件

最近公司项目中使用树形展示公司结构,但是项目中主要使用(Vue + Element),奈何 Element 的树形结构实在不符合需求,我就在网上找到了本文的主角vue2-org-tree,该插件的最大优点就是可定制性较高,对于后期'和蔼可亲'的甲方提出的需求,可以很好的进行满足。

安装

# use npm
npm i vue2-org-tree

# use yarn
yarn add vue2-org-tree

# 建议安装 less-loader 防止样式出现问题
npm install --save-dev less less-loader
yarn add --save-dev less less-loader
复制代码

引入

main.js中添加

import Vue2OrgTree from 'vue2-org-tree'
import 'vue2-org-tree/dist/style.css'

Vue.use(Vue2OrgTree)
复制代码

使用

在项目中创建一个 vue 文件, 配置好路由方便测试

在模板中

<vue2-org-tree :data="data"/>
复制代码

data函数中

// 定义数据
data: {
  label: '江苏XX',
  value: '-1',
  children: [
    { 
      value: 'reqjfxqfzr',
      label: '需求室负责人',
      children: [
        {
          label: '任通',
          value: '1000035939'
        },
        {
          label: '林萍',
          value: '23000068'
        },
        {
          label: '王庆安',
          value: '23000079'
        }
      ]
    },
    { 
      value: 'req_fzr_kf',
      label: '开发室负责人',
      children: [
        {
          label: '任通',
          value: '1000035939'
        },
        {
          label: '林萍',
          value: '23000068'
        },
        {
          label: '王庆安',
          value: '23000079'
        }
      ]
    },
    { 
      value: 'req_fzr_dsj',
      label: '大数据室负责人',
      children: [
        {
          label: '任通',
          value: '1000035939'
        },
        {
          label: '林萍',
          value: '23000068'
        },
        {
          label: '王庆安',
          value: '23000079'
        }
      ]
    },
    { 
      value: 'req_fzr_bas',
      label: '经分室负责人',
      children: [
        {
          label: '任通',
          value: '1000035939'
        },
        {
          label: '林萍',
          value: '23000068'
        },
        {
          label: '王庆安',
          value: '23000079'
        }
      ]
    },
    { 
      value: 'reqownerinfo',
      label: '信息化室负责人',
      children: [
        {
          label: '任通',
          value: '1000035939'
        },
        {
          label: '林萍',
          value: '23000068'
        },
        {
          label: '王庆安',
          value: '23000079'
        }
      ]
    },
    { 
      value: 'reqownerinfo-aq',
      label: '安全室负责人',
      children: [
        {
          label: '任通',
          value: '1000035939'
        },
        {
          label: '林萍',
          value: '23000068'
        },
        {
          label: '王庆安',
          value: '23000079'
        }
      ]
    }
  ]

}
复制代码

效果如下

可以设置属性:horizontal="true",从左到右展示

<vue2-org-tree :data="data" :horizontal="true"/>
复制代码

使用 label-class-name 我们还可以动态绑定自定义class

<vue2-org-tree :data="data" :horizontal="true" :label-class-name="labelClassName" />
复制代码

data函数中定义变量labelClassName

labelClassName:"bg-color-blue",
复制代码

在样式中对.bg-color-blue 设置样式

style标签里不能加 scoped 不然自定义样式无效

.bg-color-blue{
  color: #fff;
  background-color: skyblue;
}
复制代码

样式效果如下

设置属性 collapsable可以收缩起来, @on-expand="onExpand" 可以进行展开操作,

使用 render-content 属性可以自行渲染节点的内容和样式,有利于扩展

@on-node-click="nodeClick"节点点击属性,可以获得点击时间和节点数据

@on-node-mouseover="onMouseover" 鼠标移入, @on-node-mouseout="onMouseout" 鼠标移出等事件,有需要的小伙伴可以参考案例!

案例代码

vue2-org-tree 案例使用代码:

gitee.com/yunxii/vue-…

工程化案例使用代码: gitee.com/yunxii/vue-…


 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在Vue项目组织架构可以通过封装API接口来获取数据,并进行树形处理。首先,需要在src/views/departments/index.vue文件引入组织架构模块的组件TreeTools。然后,在该文件可以使用el-tree组件来展示组织架构的内容。可以通过设置el-tree的data属性来传入组织架构的数据,通过设置defaultProps属性来指定显示内容的属性。同时,可以使用作用域插槽来循环展示每个节点的数据,并在插槽引入TreeTools组件来实现对节点的操作。\[3\] 在获取组织架构数据时,可以封装API接口来获取数据。可以在src/views/departments/index.vue文件定义一个data属性来存储组织架构的数据。可以通过调用API接口来获取数据,并将获取到的数据赋值给data属性的departs。\[3\] 在进行树形处理时,可以将获取到的数据转化成树形结构。可以在src/views/departments/index.vue文件定义一个方法来实现将数组数据转化成树形结构的功能。可以通过遍历数组数据,根据节点的父子关系来构建树形结构。\[1\] 综上所述,在Vue项目,可以通过封装API接口来获取组织架构数据,并通过树形处理将数据转化成树形结构,然后在组织架构模块引入相应的组件来展示和操作组织架构的内容。 #### 引用[.reference_title] - *1* *2* *3* [Vue项目实战之人力资源平台系统(五)组织架构模块](https://blog.csdn.net/qq_40652101/article/details/126836202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值