Element-UI实现Tree 树形控件节点添加图标

Element-UI实现Tree 树形控件节点添加图标:

属于自定义节点内容,可以通过两种方法进行树节点内容的自定义:render-content 和 scoped slot。
1、scoped slot 实现在节点区添加图标
传入两个参数 node 和 data , 分别表示当前节点的 Node 对象和当前节点的数据

<template>
<div>
  <el-tree :data="data" :props="defaultProps" default-expand-all>
    <span slot-scope="{ node, data }">
      <i :class="data.icon"></i>
      <span style="padding-left: 4px;">{{node.label}}</span>
    </span>
  </el-tree>
</div>
</template>
 
<script>
var menus = [
  {
    'menuId': 1,
    'menuName': '系统管理',
    'icon': 'el-icon-menu',
    'children': [
      {
        'menuId': 100,
        'menuName': '用户管理',
        'icon': 'el-icon-menu',
        'children': [
          {
            'menuId': 1000,
            'menuName': '用户查询',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1001,
            'menuName': '用户新增',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1002,
            'menuName': '用户修改',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1003,
            'menuName': '用户删除',
            'icon': 'el-icon-document'
          }
        ]
      },
      {
        'menuId': 101,
        'menuName': '角色管理',
        'icon': 'el-icon-menu',
        'children': [
          {
            'menuId': 1006,
            'menuName': '角色查询',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1007,
            'menuName': '角色新增',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1008,
            'menuName': '角色修改',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1011,
            'menuName': '删除角色',
            'icon': 'el-icon-document'
          }
        ]
      }
    ]
  }
];
export default {
  name: 'tree',
  data () {
    return {
      data: menus,
      defaultProps: {
        children: 'children',
        label: 'menuName'
      }
    };
  },
  methods: {}
};
</script>
 
<style scoped>
 
</style>

2、render-content 实现在节点区添加图标

<template>
<div>
  <el-tree :data="data" :props="defaultProps" default-expand-all
           :render-content="renderContent"></el-tree>
</div>
</template>
 
<script>
var menus = [
  {
    'menuId': 1,
    'menuName': '系统管理',
    'icon': 'el-icon-menu',
    'children': [
      {
        'menuId': 100,
        'menuName': '用户管理',
        'icon': 'el-icon-menu',
        'children': [
          {
            'menuId': 1000,
            'menuName': '用户查询',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1001,
            'menuName': '用户新增',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1002,
            'menuName': '用户修改',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1003,
            'menuName': '用户删除',
            'icon': 'el-icon-document'
          }
        ]
      },
      {
        'menuId': 101,
        'menuName': '角色管理',
        'icon': 'el-icon-menu',
        'children': [
          {
            'menuId': 1006,
            'menuName': '角色查询',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1007,
            'menuName': '角色新增',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1008,
            'menuName': '角色修改',
            'icon': 'el-icon-document'
          },
          {
            'menuId': 1011,
            'menuName': '删除角色',
            'icon': 'el-icon-document'
          }
        ]
      }
    ]
  }
];
export default {
  name: 'tree',
  data () {
    return {
      data: menus,
      defaultProps: {
        children: 'children',
        label: 'menuName'
      }
    };
  },
  methods: {
    renderContent: function (h, {node, data, store}) {
      return (<span><i class={data.icon}></i><span style="padding-left: 4px;">{node.label}</span></span>);
    }
  }
};
</script>
 
<style scoped>
 
</style>
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值