vue如何在引入的el-tree前添加图标

 更新时间:2024年03月19日 08:44:50   作者:毅争晨夕  
这篇文章主要介绍了vue如何在引入的el-tree前添加图标问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue引入的el-tree前添加图标

根据有没有子节点来显示 前面是文件夹还是文件的图标   (因为遇到了就记录了下来)

如果有子节点(children),就在前面加上一个文件夹的图标(片),如果没有子节点,就显示的是文件的图标(片)

只有部分代码,在要push的地方添加一个icon,然后动态绑定这个icon,注意名字要一样;

<template>
 <div>
  <el-tree
      ref="addre"
      :load="loNo"
      :props="default-props"
      lazy
      node-key="id"
      show-checkbox
      :check-strictly="true"
       @check="heiChange"
      highlight-current
      :key="this.sho"
   >  
     <span class="custom-tree-node" slot-scope="{ node, data }">
        <span  v-if="data.label"  :class="folder">{{ `(${data.label})` }}</span>  
        <span  v-if="!data.label"  :class="data.icon"></span>    //注意此处是动态的绑定下面 push进去定义好的icon名称;
        <span>{{ node.label }}</span>
      </span>
  </el-tree>
 </div>
</template>
<script>
  export default {
     data() {
       return {
         folder:'iconFolder',    //显示文件夹  下面有css样式
         file:'iconFile',        //显示文件    下面有css样式
       };
     },
     methods:{      //省略的点点不重要,
       loNo(aa,bb){
          var data = []
           //....
          if (res.folders) {
              //....
                 data.push({
                    //....
                    icon:this.folder    //在这里追加个icon就行了,然后调上面data里的名称
                 })
               //....
           },
          if (res.files) {
              //....
                 data.push({
                    //....
                    icon:this.files     //在这里追加个icon就行了,然后调上面data里的名称
                 })
               //....
           },
       }
     }
  };
</script>
//样式
<style scoped>
 .iconFolder::before{                 //样式名称与data里的对应
  /* background-color: aqua; */
  content:'';
  /* float: left; */
  display: inline-block;
  width: 15px;
  height: 15px;
  /* border: 1px solid#000; */
  background: url(../../assets/img/wenjianjia.png) no-repeat;
  background-size: 15px;
}
.iconFile::before{                    //样式名称与data里的对应
  /* background-color: aqua; */
  content:'';
  /* float: left; */
  display: inline-block;
  width: 15px;
  height: 15px;
  /* border: 1px solid#000; */
  background: url(../../assets/img/wenjian.png) no-repeat;
  background-size: 15px;
}
</style>

还有一个方法我在看其他内容发现,也是在span标签里套用了俩个img标签 进行判断他们children的长度,如果大于0,就显示这个图片,不用再push里添加icon了,因为用的是img标签,所以图片直接放在了img上的src里了,就不用在这写css了。

ElementUI el-tree树形控件给节点添加图标

<template>
    <div class="tree">     
    
    <el-tree :data="data5" node-key="id" default-expand-all >
        <span class="custom-tree-node" slot-scope="{ node, data }">
            <span>
                <i :class="data.icon"></i>{{ node.label }}
            </span>              
        </span>
    </el-tree>
 
    </div>
</template>
<script>
    export default {
        data () {
            return {
                 data5: [{
                    id: 1,
                    label: '一级 1',
                    icon:'el-icon-success',
                    children: [{
                        id: 4,
                        label: '二级 1-1',
                        children: [{
                            id: 9,
                            label: '三级 1-1-1',
                            icon: 'el-icon-info'
                        }, {
                            id: 10,
                            label: '三级 1-1-2'
                        }]
                    }]
                }, {
                    id: 2,
                    label: '一级 2',
                    children: [{
                        id: 5,
                        label: '二级 2-1',
                    }, {
                        id: 6,
                        label: '二级 2-2'
                    }]
                }, {
                    id: 3,
                    label: '一级 3',
                    children: [{
                        id: 7,
                        label: '二级 3-1'
                    }, {
                        id: 8,
                        label: '二级 3-2'
                    }]
                }]
            }
        }
    
    }
</script>
 
<style scoped>
 
</style>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue3自定义指令语法图文详解

    Vue3自定义指令语法图文详解

    这篇文章主要给大家介绍了Vue3自定义指令的相关资料,自定义指令是一种在Vue应用程序中扩展HTML标签的能力,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • vue3中refs用法举例小结

    vue3中refs用法举例小结

    这篇文章主要给大家介绍了关于vue3中refs用法举例的相关资料,Vue.js中的$refs是一个对象,它持有已注册过ref特性的所有组件和元素,需要的朋友可以参考下
    2023-08-08
  • Vue使用百度地图实现城市定位

    Vue使用百度地图实现城市定位

    这篇文章主要为大家详细介绍了Vue使用百度地图实现城市定位,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 在vue里面设置全局变量或数据的方法

    在vue里面设置全局变量或数据的方法

    下面小编就为大家分享一篇在vue里面设置全局变量或数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 修改vue源码实现动态路由缓存的方法

    修改vue源码实现动态路由缓存的方法

    这篇文章主要介绍了修改vue源码实现动态路由缓存的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Vue2 模板template的四种写法总结

    Vue2 模板template的四种写法总结

    下面小编就为大家分享一篇Vue2 模板template的四种写法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • vue如何批量引入组件、注册和使用详解

    vue如何批量引入组件、注册和使用详解

    这篇文章主要给大家介绍了关于vue如何批量引入组件、注册和使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Vue使用js-audio-recorder实现录制,播放与下载音频功能

    Vue使用js-audio-recorder实现录制,播放与下载音频功能

    这篇文章主要为大家详细介绍了Vue如何使用js-audio-recorder实现录制,播放与下载音频功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2023-12-12
  • vue异步组件使用及加载失败异常处理

    vue异步组件使用及加载失败异常处理

    在构建大型单页应用时,组件的按需加载和延迟加载对于性能优化至关重要,本文主要介绍了vue异步组件使用及加载失败异常处理,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • vue 解决数组赋值无法渲染在页面的问题

    vue 解决数组赋值无法渲染在页面的问题

    今天小编就为大家分享一篇vue 解决数组赋值无法渲染在页面的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10

最新评论