vue 组件el-tree添加结构指示线条

效果展示:

注意:组件中需要添加:indent="0" 进行子级缩进处理,否则会出现子级缩进逐级递增

:expand-on-click-node="false" 设置点击箭头图标才会展开或者收起

代码:

html 复制代码
<el-tree class="tree filter-tree" 
    :data="treeList" 
    :props="defaultProps" 
    default-expand-all 
    :indent="0"
    :expand-on-click-node="false" 
    @node-click="handleNodeClick" 
    :filter-node-method="filterNode" 
    highlight-current ref="tree">
</el-tree>
css 复制代码
/* 点击树结构项的选中颜色 */
    .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
        background-color: #c7d1de;
    }

    /* 树形结构节点添加连线 */
    .tree {
        .el-tree-node {
            position: relative;
            padding-left: 20px;
            /* 缩进量 */
        }

        .el-tree-node__children {
            padding-left: 20px;
            /* 缩进量 */
        }

        /* 竖线 */
        .el-tree-node::before {
            content: "";
            height: 100%;
            width: 1px;
            position: absolute;
            left: -3px;
            top: -26px;
            border-width: 1px;
            border-left: 1px dashed #52627C;
        }

        /* 当前层最后一个节点的竖线高度固定 */
        .el-tree-node:last-child::before {
            height: 38px;
            /* 可以自己调节到合适数值 */
        }

        /* 横线 */
        .el-tree-node::after {
            content: "";
            width: 24px;
            height: 20px;
            position: absolute;
            left: -3px;
            top: 16px;
            border-width: 1px;
            border-top: 1px dashed #52627C;
        }

        /* 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了 */
        &>.el-tree-node::after {
            border-top: none;
        }

        &>.el-tree-node::before {
            border-left: none;
        }

        /* 展开关闭的icon */
        .el-tree-node__expand-icon {
            font-size: 16px;

            /* 叶子节点(无子节点) */
            &.is-leaf {
                color: transparent;
                /* 也可以去掉 */
                display: none;
            }
        }

    }
相关推荐
橙子味冰可乐1 小时前
isprintable()方法——判断字符是否为可打印字符
java·前端·javascript·数据库·python
yunpeng.zhou1 小时前
logging 模块简单使用记录
java·前端·数据库
奋斗吧程序媛3 小时前
使用vue动态给同一个a标签添加内容 并给a标签设置hover,悬浮文字变色,结果鼠标悬浮有的字上面不变色
前端·javascript·vue.js
王天平·Jason Wong5 小时前
vue3弹窗usehook
前端·javascript·vue.js
小跳不会Coding5 小时前
vue开发网站--关于window.print()调取打印
前端·javascript·vue.js
concisedistinct6 小时前
深入浅出:npm常用命令详解与实践
前端·npm·node.js·工具·modules
Lily.C7 小时前
【JavaScript 小工具】——获取富文本中的`<a>`标签 中的href值以及a标签中的内容
开发语言·javascript
碎像7 小时前
使用AI工具 Baidu Comate 辅助编码 快速定位修改Bug
java·前端·后端·bug·intellij idea
snow@li7 小时前
工程化:Commitlint / 规范化Git提交消息格式
前端·git
下雪天的夏风7 小时前
React@16.x(43)路由v5.x(8)常见应用场景(5)- 滚动条复位
前端·javascript·react.js