Element-UI定制化Tree 树形控件

1.复制

说明:复制Tree树形控件。

javascript 复制代码
<script>
export default {
  data() {
    return {
      data: [{
        label: '一级 1',
        children: [{
          label: '二级 1-1',
          children: [{
            label: '三级 1-1-1'
          }]
        }]
      }, {
        label: '一级 2',
        children: [{
          label: '二级 2-1',
          children: [{
            label: '三级 2-1-1'
          }]
        }, {
          label: '二级 2-2',
          children: [{
            label: '三级 2-2-1'
          }]
        }]
      }, {
        label: '一级 3',
        children: [{
          label: '二级 3-1',
          children: [{
            label: '三级 3-1-1'
          }]
        }, {
          label: '二级 3-2',
          children: [{
            label: '三级 3-2-1'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    };
  },
  methods: {
    handleNodeClick(data) {
      console.log(data);
    }
  }
};
</script>
<template>
<div>
  <h1>我是树形控件</h1>
  <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
</div>
</template>

<style scoped>

</style>

2.显示

3.图标

3.1新增图标

说明:每一个label前面都有一个定制图标

javascript 复制代码
<template>
<div>
  <h1>我是树形控件</h1>
  <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick">
      <span slot-scope="{ node, data }" style="align-items: center">
        <i class="icon-book">
          <img style="width: 20px;" src="../../gis/images/bookmark-one.png">
        </i>
        <span>{{node.label}}</span>
      </span>
  </el-tree>
</div>
</template>

或者

javascript 复制代码
<template>
<div>
  <h1>我是树形控件</h1>
  <el-tree class="custom-el-tree" :data="data" :props="defaultProps" @node-click="handleNodeClick">
    <template v-slot="{ node, data }">
    <span style="align-items: center">
      <i>
        <img style="width: 20px;" src="../../gis/images/bookmark-one.png">
      </i>
      <span>{{ node.label }}</span>
    </span>
    </template>
  </el-tree>
</div>
</template>

3.2修改默认图标

说明: 将默认箭头形式变成加号形式。

css 复制代码
<style scoped>
/* 加号*/
/deep/ .custom-el-tree .el-icon-caret-right:before {
  content: "\e6d9";
  font-size: 18px;
}

</style>

4.源码

javascript 复制代码
<script>
export default {
  data() {
    return {
      data: [{
        label: '一级 1',
        children: [{
          label: '二级 1-1',
          children: [{
            label: '三级 1-1-1'
          }]
        }]
      }, {
        label: '一级 2',
        children: [{
          label: '二级 2-1',
          children: [{
            label: '三级 2-1-1'
          }]
        }, {
          label: '二级 2-2',
          children: [{
            label: '三级 2-2-1'
          }]
        }]
      }, {
        label: '一级 3',
        children: [{
          label: '二级 3-1',
          children: [{
            label: '三级 3-1-1'
          }]
        }, {
          label: '二级 3-2',
          children: [{
            label: '三级 3-2-1'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    };
  },
  methods: {
    handleNodeClick(data) {
      console.log(data);
    }
  }
};
</script>
<template>
<div>
  <h1>我是树形控件</h1>
  <el-tree class="custom-el-tree" :data="data" :props="defaultProps" @node-click="handleNodeClick">
    <template v-slot="{ node, data }">
    <span style="align-items: center">
      <i>
        <img style="width: 20px;" src="../../gis/images/bookmark-one.png">
      </i>
      <span>{{ node.label }}</span>
    </span>
    </template>
  </el-tree>
</div>
</template>

<style scoped>
/* 加号*/
/deep/ .custom-el-tree .el-icon-caret-right:before {
  content: "\e6d9";
  font-size: 18px;
}

</style>
相关推荐
10mAh2 小时前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
深念Y2 小时前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步
java·前端·数据库
小帅不太帅2 小时前
1.5M 参数的 OCR 模型,我把它跑进了浏览器
前端·javascript·ai编程
风骏时光牛马3 小时前
AI编程场景下故障根因分析与复盘总结
前端
Sterting3 小时前
Element-Plus 入门与整体布局
前端·vue.js·elementui
程序员黑豆10 小时前
Java 注释详解:单行、多行与文档注释的完整指南
java·前端·ai编程
剪刀石头布啊10 小时前
antd中可编辑表格中巧用useWatch实现联动高性能效果,以及定制延伸学习
前端
油丶酸萝卜别吃11 小时前
前端转全栈学习路线
前端·学习
浮生望11 小时前
前端路由进阶:History API原理与手写HistoryRouter
前端
陆枫Larry11 小时前
JavaScript 中的竞态是什么,为啥会有竟态?
前端