前端:vue实现树状结构图

使用vue-org-tree实现此种效果

实现步骤:

1.

npm install vue-tree-color——安装vue-tree-color,注意不是vue-org-tree

2.

npm install --save-dev less less-loader

3.

增加配置:

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

4:

代码实现:

	<div style="font-size:12px;margin-top:30px;">
			<vue2-org-tree
				collapsable
				:data="data"
				@on-expand="onExpand"
				:horizontal="true"
				:label-class-name="labelClassName"
				:renderContent="renderContent"
			/>
		</div>

js代码实现

  data() {
    return {
       data: {
        id: 0,
        label: "XXX科技有限公司",
        children: [
          {
            id: 2,
            label: "产品研发部",
            children: [
              {
                id: 5,
                label: "研发-前端"
              },
              {
                id: 6,
                label: "研发-后端"
              },
              {
                id: 9,
                label: "UI设计"
              },
              {
                id: 10,
                label: "产品经理"
              }
            ]
          },
          {
            id: 3,
            label: "销售部",
            children: [
              {
                id: 7,
                label: "销售一部"
              },
              {
                id: 8,
                label: "销售二部"
              }
            ]
          },
          {
            id: 4,
            label: "财务部"
          },
          {
            id: 9,
            label: "HR人事"
          }
        ]
      }
    }
  },

插入methods:

	//渲染节点
	renderContent(h, data) {
						return (
							<table>
 								 <tr>
   									 <td><div ><img style = " width: 40px; height: 40px;" src="https://pcm.trplus.com.tw/1200x1200/sys-master/productImages/h45/h3e/8811488346142/000000000016053593-gallery-01.jpg" /></div>
  							     </td>
 								  	 <td>          
 									  		<div>
       								     <span>网络类型</span>
         								   <span>设备类型</span>
        							     <span>设备名称</span>
        		    				   <span>{data.label}</span>
       					  		  </div>
         						    <div style="font-size:12px;line-height:20px; "><span>设备ID</span><span>设备IP</span></div></td>
  							</tr>
							</table>
      );
    },

展开方法:

  //展开
    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);
      }
    },

    collapse(list) {
      list.forEach(child => {
        if (child.expand) {
          child.expand = false;
        }
        child.children && this.collapse(child.children);
      });
    },
 getList() {
      // 后台回去的数据 赋值给data即可
    },

样式:

<style>
	.org-tree-node-label-inner {
  color: #000000;
  background-color: #BBBBBB;
}

</style>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值