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>

总结

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

相关文章

  • vue使用element-ui tabs切换echarts解决宽度100%方式

    vue使用element-ui tabs切换echarts解决宽度100%方式

    这篇文章主要介绍了vue使用element-ui tabs切换echarts解决宽度100%方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Vee-Validate的使用方法详解

    Vee-Validate的使用方法详解

    本篇文章主要介绍了Vee-Validate的使用方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 使用vue2实现购物车和地址选配功能

    使用vue2实现购物车和地址选配功能

    这篇文章主要介绍了使用vue2实现购物车和地址选配功能,本文通过实例代码相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-03-03
  • vue proxyTable的跨域中pathRewrite配置方式

    vue proxyTable的跨域中pathRewrite配置方式

    这篇文章主要介绍了vue proxyTable的跨域中pathRewrite配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue init webpack 项目初始化失败问题

    vue init webpack 项目初始化失败问题

    在使用Vue-cli搭建项目时,可能会遇到依赖无法显示版本号的问题,首先检查环境变量配置是否正确,确保vue-init的安装目录被正确添加到path中,若问题仍未解决,尝试卸载并重新安装webpack,确保在正确的项目路径下执行npm install和npm run dev命令
    2024-09-09
  • 解决vue项目router切换太慢问题

    解决vue项目router切换太慢问题

    这篇文章主要介绍了解决vue项目router切换太慢问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue性能优化之cdn引入vue-Router的问题

    vue性能优化之cdn引入vue-Router的问题

    这篇文章主要介绍了vue性能优化之cdn引入vue-Router的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 一次搞清Vue3中组件通讯的全部方式

    一次搞清Vue3中组件通讯的全部方式

    毫无疑问,组件通讯是Vue中非常重要的技术之一,它的出现能够使我们非常方便的在不同组件之间进行数据的传递,以达到数据交互的效果,所以,学习组件通讯技术是非常有必要的,本文将一次解决Vue3中组件通讯的全部方式,总有你想要的那一种,需要的朋友可以参考下
    2024-09-09
  • 浅谈vue限制文本框输入数字的正确姿势

    浅谈vue限制文本框输入数字的正确姿势

    这篇文章主要介绍了vue限制文本框输入数字的正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • vue富文本框(插入文本、图片、视频)的使用及问题小结

    vue富文本框(插入文本、图片、视频)的使用及问题小结

    这篇文章主要介绍了vue富文本框(插入文本、图片、视频)的使用及问题小结,需要的朋友可以参考下
    2018-08-08

最新评论