Vue Element-ui实现树形控件节点添加图标详解

 更新时间:2021年11月23日 15:57:05   作者:一只小木头.  
这篇文章主要为大家介绍了Element-ui实现树形控件节点添加图标,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

1.效果图

效果图

2.树形表格绑定数据加标签

想要在树形控件的树节点加上图片或者element-ui的图标,可以在树形表格绑定数据中加上标签icon

   children: [
       {
           icon:'el-icon-top-right',
           label: ['beam名称',''],
           children: [
               {
                   label:['name','RS49'],
               },
               {
                   icon:'src/assets/images/Organization.png',
                   label:['group('+'3'+')','']
                   children:[
                   {
                   label:['10600361','10950','11200','0']
                    }
   					]
				}
           ]
		}
    ],

在树形控件自定义函数中

直接让class等于element-ui的icon标签

img标签需要加上自己图片的地址

    renderContent(h,{node,data,store}){
        // div代表树形控件的一行,div中包含三个span标签
        // 判断节点的label数组数量,通过三目运算来选择class
        // 设置class来控制树形控件进行对齐
      return h('div',[
          // 在树形控件自定义函数中增加icon和图片的标签
          // img标签需要加上自己图片的地址
           h('span',{class:'top-right'}),
          h('img',{src:data.icon}),
          h('span', {class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label[0]),
          h('span', {class:'groupStyle'},node.label[1]),
          h('span',{class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label.length === 2 ? 				'':node.label[2])
          ]);
    },

3.所有代码

<template>
    <div class="mytree">
          <el-tree
              :data="tree_data"
              :props="defaultProps"
              @node-click="handleNodeClick"
              indent="0"
              :render-content="renderContent"
          ></el-tree>
        </div>
</template>

<script lang="ts">
import { defineComponent, ref  } from 'vue'
export default defineComponent({
    components: {},
    data() {
        return {
              tree_data: [
        		{
          // type:1,
         		 label: 'notice-id1',
                  children: [
                        {

                          label: ['卫星名称代号','ZOHREH-2'],
                        },
                        {

                          label: ['组织机构','IRN'],
                        },
                        {
                          label: ['频率范围','10950-1450'],
                        },
                        {
                          icon:'el-icon-top-right',
                          label: ['beam名称',''],
                          children: [
                              {
                                  label:['name','RS49'],
                              },
                             {
                                  label:['freq_min','10950'],
                              },
                             {
                                  label:['freq_max','14500'],
                              },
                              {
                                  icon:'src/assets/images/Organization.png',
                                  label:['group('+'3'+')','']
                                  children:[
                                     {
                                        label:['10600361','10950','11200','0']
                                     },
                                    {
                                        label:['10600361','10950','11200','0']
                                     },
                                    {
                                        label:['10600361','10950','11200','0']
                                     }
                                  ]
                              }
                      ]
                    },
                  ],
                },
              ],
            defaultProps: {
            children: 'children',
            label: 'label',
          },
        }
    },
    method:{
    // 自定义树形控件函数 node代表每个节点
    renderContent(h,{node,data,store}){
        // div代表树形控件的一行,div中包含三个span标签
        // 判断节点的label数组数量,通过三目运算来选择class
        // 设置class来控制树形控件进行对齐
      return h('div',[
          // 在树形控件自定义函数中增加icon和图片的标签
           h('span',{class:[data.icon,data.icon==='el-icon-top-right'? 'top-right':'bottom-left']}),
          h('img',{src:data.icon === 'src/assets/images/Organization.png' ? data.icon:''}),
          h('span', {class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label[0]),
          h('span', {class:'groupStyle'},node.label[1]),
          h('span',{class:node.label.length === 2 ? 'nodeStyle':'groupStyle'},node.label.length === 2 ? 				'':node.label[2])
          ]);
    },
    }
    
})
</script>

<style lang="scss" scoped>
    
.nodeStyle{
  width:110px;
  display:inline-block;
  text-align:left;
}
.groupStyle{
  width:150px;
  display:inline-block;
  text-align:left;
}
    
</style>

其他实现

vue通过element树形控件实现树形表格

element树形控件添加虚线

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • vue3前端实现微信支付详细步骤

    vue3前端实现微信支付详细步骤

    这篇文章主要给大家介绍了vue3前端实现微信支付的详细步骤,随着移动端的普及和互联网购买需求的增加,微信支付在电商领域中发挥着越来越重要的作用,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-11-11
  • vue双向数据绑定原理分析、vue2和vue3原理的不同点

    vue双向数据绑定原理分析、vue2和vue3原理的不同点

    这篇文章主要介绍了vue双向数据绑定原理分析、vue2和vue3原理的不同点,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • vue中的watch监听数据变化及watch中各属性的详解

    vue中的watch监听数据变化及watch中各属性的详解

    这篇文章主要介绍了vue中的watch监听数据变化及watch中的immediate、handler和deep属性详解,本文大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-09-09
  • vue项目部署到Apache服务器中遇到的问题解决

    vue项目部署到Apache服务器中遇到的问题解决

    这篇文章主要介绍了vue项目部署到Apache中遇到的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • vue实现滑动解锁功能

    vue实现滑动解锁功能

    这篇文章主要为大家详细介绍了vue实现滑动解锁功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 基于Vue和Firebase实现一个实时聊天应用

    基于Vue和Firebase实现一个实时聊天应用

    在本文中,我们将学习如何使用Vue.js和Firebase来构建一个实时聊天应用,Vue.js是一种流行的JavaScript前端框架,而Firebase是Google提供的实时数据库和后端服务,结合这两者,我们可以快速搭建一个功能强大的实时聊天应用,需要的朋友可以参考下
    2023-08-08
  • Vue3中Hooks函数的使用及封装思想详解

    Vue3中Hooks函数的使用及封装思想详解

    Vue 3中的Hooks函数是一种用于在组件中共享可复用逻辑的方式,简单来说,就是将单独功能的js代码抽离出来, 加工成公共函数,从而达到逻辑复用,下面小编就来和大家聊聊Hooks函数的使用及封装思想吧
    2023-06-06
  • 17个vue常用的数组方法总结与实例演示

    17个vue常用的数组方法总结与实例演示

    这篇文章主要介绍了vue中常用的数组方法,包括:VUE数组转换字符串,VUE数组遍历,VUE数组过滤,VUE数组查询,VUE数组排序等功能,需要的朋友可以参考下
    2022-12-12
  • 详解Vue前端生产环境发布配置实战篇

    详解Vue前端生产环境发布配置实战篇

    这篇文章主要介绍了详解Vue前端生产环境发布配置实战篇,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 在Vue中获取自定义属性方法:data-id的实例

    在Vue中获取自定义属性方法:data-id的实例

    这篇文章主要介绍了在Vue中获取自定义属性方法:data-id的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论