el-tree不显示勾选框时让第一项默认高亮 el-tree使用模板的写法

效果展示
在这里插入图片描述
在这里插入图片描述
组件的引用方式


            <el-tree
                :data="treeData"
                :highlight-current="true"
                node-key="id"
                default-expand-all
                :props="defaultTreeProps"
                @node-click="treeClick"
            >
                <template #default="{ node, data }">
                    <span class="tree-node" :class="{ highlighted: isSelected(node) }" :title="data.title">{{
                        data.title
                    }}</span>
                </template>
            </el-tree>

高亮显示的属性:highlight-current

在获取tree要渲染的数据时,给要默认高亮的节点添加属性selected = true
在这里插入图片描述
我是要让第一个子节点默认高亮

动态添加样式的判断条件

const isSelected = node => {
    // 判断节点是否被选中
  return node.data.selected === true;
};

在节点的点击事件中 要先清除所有节点的selected为false 然后再设置当前点击节点的selected 为true

   const treeClick = e => {
    treeData.value.map(v => {
        v.selected = false;
        if (v.children && v.children.length > 0) {
            v.children.map(i => {
                if (i.id !== e.id) {
                    i.selected = false;
                }
            });
        }
    });
    if (e.isFirst) {
        // 点击一级目录 项目
        // params.projectId = e[0].id;
    } else {
        tableLoading.value = true;
        // 点击二级目录 项目下的应用
        getAbilityListParams.frontSubAppId = e.id;
        getTableData();
    }

最后在style中添加类名

.highlighted {
color: #57a3f3; /* 设置高亮节点的样式 */
}

     .tree-node {
        white-space: nowrap; /* 防止文字换行 */
        overflow: hidden; /* 超出部分隐藏 */
        text-overflow: ellipsis; /* 超出部分显示省略号(...) */
    }
    .tree-node:hover {
        overflow: visible; /* 鼠标悬停时显示全部文字 */
        text-overflow: unset;
    }
     .highlighted {
        color: #57a3f3; /* 设置高亮节点的样式 */
    }
    //改变element默认样式
      .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
    color: #57a3f3;
    background: none;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现el-tree默认全部勾选的效果,可以通过设置data属性中每个节点对象的checked属性为true来实现。具体实现方法如下: 1. 首先,在data属性中的每个节点对象中添加一个checked属性,并将其值设置为true。这样就能实现默认全部勾选的效果。 ``` data: [ { id: 1, label: '选项1', checked: true }, { id: 2, label: '选项2', checked: true }, { id: 3, label: '选项3', checked: true }, // 其他节点... ] ``` 2. 在el-tree组件的模板中,使用v-model绑定每个节点对象的checked属性,确保选中状态与checked属性的值同步。 ```html <el-tree :data="data" show-checkbox default-expand-all node-key="id" ref="tree" highlight-current :props="defaultProps" v-model="node.checked"></el-tree> ``` 通过以上两个步骤,就能实现el-tree默认全部勾选的效果。每个节点对象的checked属性设置为true,即可默认选中该节点。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [el-tree设置利用setCheckedNodes/setCheckedKeys默认勾选节点,以及通过setChecked新增勾选指定节点](https://blog.csdn.net/weixin_43312391/article/details/123844299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值