ant design vue tree控件自定义图标并动态变化

效果

在这里插入图片描述
展开文件夹时
在这里插入图片描述

代码


        <a-tree
          :treeData="treeData"
          :default-selected-keys="defaultValue"
          show-icon
          :style="{
            'min-height': '500px',
            height: '700px',
            'border-right': '2px solid #c1c1c1',
            'overflow-y': 'auto',
          }"
          @select="onSelect"
          @expand="onExpand"
        >
          <img src="./img/folder.svg" slot="folder" style="margin-right: 5px;" width="20px" />
          <img src="./img/openFolder.svg" slot="openFolder" style="margin-right: 5px;" width="20px" />
        </a-tree>

/* 前端给treedata赋slots值
 * 使用递归处理
 * 传入的参数:treedata
 */
setIcon(datas) {
      var that = this
      for (var i = 0; i < datas.length; i++) {
        datas[i].slots = { icon: 'folder' }
        if (datas[i].children.length > 0) {
          that.setIcon(datas[i].children)
        }
      }
    },
 /* 点击展开有子节点的节点时 改变图标
  * 通过改变其slots的值来改变图标
  */
onExpand(expandedKeys, event) {
      if (event.expanded) {
        event.node.dataRef.slots.icon = 'openFolder'
      } else {
        event.node.dataRef.slots.icon = 'folder'
      }
 },

如果需要改变目录节点的图标

<a-tree
          :treeData="treeData"
          :default-selected-keys="defaultValue"
          show-icon
          :style="{
            'min-height': '500px',
            height: '700px',
            'border-right': '2px solid #c1c1c1',
            'overflow-y': 'auto',
          }"
          @select="onSelect"
          @expand="onExpand"
        >
        //start  目录节点的图标  务必 slot值为 switcherIcon
          <a-icon slot="switcherIcon" type="down" />
        // end
          <img src="./img/folder.svg" slot="folder" style="margin-right: 5px;" width="20px" />
          <img src="./img/openFolder.svg" slot="openFolder" style="margin-right: 5px;" width="20px" />
        </a-tree>


如果有用,请给小弟一个赞的支持!谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qlanto

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

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

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

打赏作者

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

抵扣说明:

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

余额充值