element-ui 树型控件自定义图标(给节点添加图标)

点击查看代码
方法一:
<el-tree
     :data="sourceData"
     node-key="id"
     default-expand-all
     :expand-on-click-node="false"
     :props="defaultProps"
     @node-click="handleNodeClick"
   >
   	 // 重点:给节点添加图标
     <span slot-scope="{ node, data }" class="slot-t-node">
       <template>
         <i
           :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>
   </el-tree>

点击查看代码
  <el-tree
                  v-if="openPanel"
                  ref="Vtree"
                  style="height: 610px"
                  :data="treeData"
                  highlight-current
                  class="filter-tree"
                  node-key="id"
                  :default-expanded-keys="[tree_default_check]"
                  :default-checked-keys="[tree_default_check]"
                  :accordion="true"

                  @node-click="handleNodeClick"
          >
          <span slot-scope="{ node, data }">
            <i :class="icons[data.type]" />
            <span style="margin-left:5px;" :title="data.name">{{ data.name }}</span>
          </span>
          </el-tree>
`
`      icons:{
          category:'categoryTreeIcons',
          table:'tableIcon',
          class:'classIcon'
        },

CSS

  .archives-classification .classIcon{background: url("../../icons/class.png") center no-repeat;padding: 1px 8px !important;}
  .archives-classification .categoryTreeIcons{background: url("../../icons/category.png") center no-repeat;padding: 1px 8px !important;}
  .archives-classification .tableIcon{background: url("../../icons/table.png") center no-repeat;padding: 1px 8px !important;}
点击查看代码
<el-tree
  :data="deptOptions"
  :props="defaultProps"
  highlight-current
  accordion
  node-key="id"
  ref="treesa"
  @node-click="handleNodeClick"
  v-show="closeTree">
  <span class="custom-tree-node" slot-scope="{node,data}">
     <span>
       <i :class="data.icon"></i>{{ data.label }}
     </span>              
  </span>
</el-tree>
posted @ 2022-07-25 17:41  乌卡拉卡  阅读(2672)  评论(0)    收藏  举报