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;
            }
        }

    }
相关推荐
小奶包他干奶奶13 小时前
Webpack学习——如何自定义钩子
前端·学习·webpack
AI3D_WebEngineer13 小时前
企业级业务平台项目设计、架构、业务全解之平台篇
前端·javascript·vue
该用户已不存在13 小时前
免费 SSL 证书缩短至 90 天,你的运维成本还能hold住吗
前端·后端·https
汤姆Tom14 小时前
前端转战后端:JavaScript 与 Java 对照学习指南 (第二篇 - 基本数据类型对比)
java·javascript·全栈
七月十二14 小时前
【Vite】离线打包@iconify/vue的图标
前端·vue.js
星空的资源小屋14 小时前
Explorer++:更强大的Windows文件管理器
javascript·人工智能·django·电脑
米花丶14 小时前
解决前端监控上报 Script Error实践
前端·javascript
JarvanMo14 小时前
如何在 Flutter 应用中大规模实现多语言翻译并妥善处理 RTL(从右到左)布局?
前端
Haha_bj14 小时前
iOS深入理解事件传递及响应
前端·ios·app
1024小神14 小时前
用html和css实现放苹果的liquidGlass效果
前端