关于在vue2中使用el-tree的记录

此文章会持续更新在使用el-tree过程中应用到的功能...

先看此效果:

html:

javascript 复制代码
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick">
        //自定义节点内容
        <span slot-scope="{ data }">
        //此处if判断是让最后一个节点使用自定义的图标
          <span v-if="data.children">
            {{ data.label }} 
            (<span style="color: #fff612">{{data.children.length}}</span>)
            </span>
          <span v-else>
            <img src="@/assets/images/xx.png" alt="" /> 
            {{ data.label }}
          </span>
        </span>
</el-tree>
javascript 复制代码
data: [
    {
        label: '菏泽市',
        children: [
            {
                label: '东明县',
                children:[
                    {
                        label: 'xxx1',
                    },
                    {
                        label: 'xxx2',
                    },
                ]
            }
        ]
    }
],

//此处设置数据结构
defaultProps: {
        children: "children",
        label: "label",
        //这里是让第三级节点不使用收起/展开的图标,配合下方css使用
        isLeaf: (data, node) => {
          if (node.level === 2) {
            return true;
          }
        },
      },
css 复制代码
::v-deep {
  .el-tree {
    position: relative;
    cursor: default;
    background: transparent;
    color: #fff;
  }
//取消el-tree自带的hover效果
  .el-tree-node__content {
    &:hover {
      background: transparent !important;
      color: #fff;
    }
  }
    //取消高亮
  .el-tree-node:focus > .el-tree-node__content {
    background: transparent;
  }
//取消el-tree自带的hover效果
  .el-tree-node.is-current > .el-tree-node__content {
    background-color: transparent !important;
  }
//调整普通节点字体大小
  .el-tree-node__label {
    font-size: calc(0.5vw);
  }
//调整一级节点字体大小
  .el-tree > .el-tree-node > .el-tree-node__content > span {
    font-size: calc(0.9vw);
}
//自定义收起/展开节点图标的旋转
  .el-tree .el-tree-node__expand-icon.expanded {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
//自定义收起图标
  .el-tree .el-icon-caret-right:before {
    color: #5bb9fc;
    content: "\e791";
  }
//自定义展开图标
  .el-tree .el-tree-node__expand-icon.expanded.el-icon-caret-right:before {
    color: #5bb9fc;
    content: "\e790";
  }
    //配合data中defaultProps使用,去掉第三级节点的图标,也可以使用opacity:0
   .is-leaf::before {
    display: none;
  }
}

关于获取自定义收起/展开的图标:

相关推荐
Fan_web36 分钟前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html
冯宝宝^1 小时前
基于mongodb+flask(Python)+vue的实验室器材管理系统
vue.js·python·flask
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
cc蒲公英1 小时前
Vue2+vue-office/excel 实现在线加载Excel文件预览
前端·vue.js·excel
好名字08212 小时前
monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)
前端·javascript
森叶2 小时前
Electron-vue asar 局部打包优化处理方案——绕开每次npm run build 超级慢的打包问题
vue.js·electron·npm
c#上位机2 小时前
C#事件的用法
java·javascript·c#
小小竹子2 小时前
前端vue-实现富文本组件
前端·vue.js·富文本
万物得其道者成2 小时前
React Zustand状态管理库的使用
开发语言·javascript·ecmascript
小白小白从不日白2 小时前
react hooks--useReducer
前端·javascript·react.js