element plus树形控件-自定义样式,给树形控件的每个子节点前都添加小圆点

给树形控件的每个子节点前都添加小圆点,可以使用 Element UI 提供的插槽(slot)功能,通过插槽来自定义每个节点的内容。

如果节点的层级(level)大于 1,就显示小圆点,这样就不会在根节点前添加小圆点

<template>
    <div>
        <el-tree :data="treeData" :props="defaultProps">
            <!-- 使用scoped slot自定义每个节点的内容 -->
            <template v-slot:default="{ node, data }">
                <span>
                    <!-- 添加小圆点样式 -->
                    <span v-if="node.level > 1" class="tree-dot"></span>
                    {{ data.label }}
                </span>
            </template>
        </el-tree>
    </div>
</template>
  
<style scoped>
/* 自定义的小圆点样式 */
.tree-dot {
    display: inline-block;
    width: 6px;
    /* 圆点直径 */
    height: 6px;
    /* 圆点直径 */
    border-radius: 50%;
    background-color: #000;
    /* 圆点颜色 */
    margin-right: 5px;
    /* 圆点与文本间距 */
}
</style>
  
<script>
export default {
    data() {
        return {
            treeData: [
                {
                    label: 'Level one 1',
                    children: [
                        {
                            label: 'Level two 1-1',
                        },
                        {
                            label: 'Level two 1-2',
                        },
                        {
                            label: 'Level two 1-3',
                        },
                    ],
                },
            ],
            defaultProps: {
                children: 'children',
                label: 'label',
            },
        };
    },
};
</script>
  

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Element Plus 的树形表格默认只支持展开两级,如果需要展开三级以上,需要进行一些定制化操作。具体步骤如下: 1. 在表格的 columns 属性中,为需要展开的列(一般是第一列)添加 scopedSlot 插槽,并为插槽指定一个模板。 例如: ```html <template v-slot:default="{row}"> <span v-if="row.level === 0">{{ row.name }}</span> <span v-else-if="row.level === 1" style="padding-left: 20px">{{ row.name }}</span> <span v-else-if="row.level === 2" style="padding-left: 40px">{{ row.name }}</span> <span v-else style="padding-left: 60px">{{ row.name }}</span> </template> ``` 上述代码中,我们为第一列添加了一个 scopedSlot 插槽,根据行数据的 level 属性来确定该行的缩进量,从而实现展开三级及以上。 2. 在表格的 data 属性中,为每一行数据添加一个 level 属性,用来标记该行的层级。 例如: ```js [ { name: '一级 1', level: 0, children: [ { name: '二级 1-1', level: 1, children: [ { name: '三级 1-1-1', level: 2 }, { name: '三级 1-1-2', level: 2 } ] }, { name: '二级 1-2', level: 1, children: [ { name: '三级 1-2-1', level: 2 }, { name: '三级 1-2-2', level: 2 } ] } ] }, { name: '一级 2', level: 0, children: [ { name: '二级 2-1', level: 1, children: [ { name: '三级 2-1-1', level: 2 }, { name: '三级 2-1-2', level: 2 } ] }, { name: '二级 2-2', level: 1, children: [ { name: '三级 2-2-1', level: 2 }, { name: '三级 2-2-2', level: 2 } ] } ] } ] ``` 上述代码中,我们为每一行数据都添加了一个 level 属性,用来标记该行的层级。 通过以上两个步骤,我们就可以实现 Element Plus 树形表格的三级及以上展开了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值