el-tree组件只有一级节点显示图片,并默认是一张图片,展开时是另外一张图片

 <el-tree :data="treeData" :props="defaultProps" show-checkbox :render-content="renderContent"
          @check-change="handleCheckChange" >
        </el-tree>

data数据:

 treeData: [{
            id: 1,
            label: "一级节点 1",
            children: [{
                id: 2,
                label: "二级节点 1-1"
              },
              {
                id: 3,
                label: "二级节点 1-2"
              }
            ]
          },
          {
            id: 4,
            label: "一级节点 2",
            children: [{
                id: 5,
                label: "二级节点 2-1"
              },
              {
                id: 5,
                label: "二级节点 2-1"
              },
              {
                id: 5,
                label: "二级节点 2-1"
              }
            ]
          }
        ],
        defaultProps: {
          children: "children",
          label: "label"
        },

方法:

renderContent(h, {
        node,
        data,
        store
      }) {
        const isTopLevel = node.level === 1;
        return ( <
          span class = "custom-tree-node" > {
            isTopLevel && ( <
              img src = {
                node.checked ? require('@/assets/33.png') : require('@/assets/32.png')
              }
              alt = "Node Image"
              style = "width: 16px; height: 16px; vertical-align: middle; margin-right: 5px;" /
              >
            )
          } {
            node.label
          } <
          /span>
        );
      },
      handleCheckChange(data, checked, indeterminate) {
        this.$refs.tree.updateKeyChildren(data.id);
      },

如果都需要图片:去掉isTopLevel即可,

如果是图标:在el-tree中添加插槽(也是父节点有图标,反之去掉判断)

<span slot-scope="{ node, data }" class="slot-t-node">
            <template>
            
              <i v-if="node.level === 1" :class="{
                       'el-icon-folder': !node.expanded,       // 节点收缩时的图标
                       'el-icon-folder-opened': node.expanded, // 节点展开时的图标
                       'el-icon-user-solid': data.type === 2   // data.type是后端配合提供的识别字段,最后一级
                     }" style="color: #409eff;" />
              <span>{{ node.label }}</span>
            </template>
          </span>

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 20:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 20:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 20:56:02       82 阅读
  4. Python语言-面向对象

    2024-04-14 20:56:02       91 阅读

热门阅读

  1. centos7升级openssl3.0.13版本

    2024-04-14 20:56:02       36 阅读
  2. vue2隐藏浏览器右侧滚动条

    2024-04-14 20:56:02       33 阅读
  3. Redis提供两种持久化机制RDB和AOF机制

    2024-04-14 20:56:02       34 阅读
  4. 【Linux】SCP命令:文件传输的简易指南

    2024-04-14 20:56:02       31 阅读
  5. 数据结构之堆练习题及PriorityQueue深入讲解!

    2024-04-14 20:56:02       32 阅读
  6. 算法刷题记录 Day46

    2024-04-14 20:56:02       39 阅读