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了。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毅争晨夕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值