el-tree 点击树的文字不要收缩仅点击图标的时候收缩

本文介绍了如何在 Element UI 的 el-tree 组件中禁用点击节点的默认展开行为,以便仅通过箭头图标控制节点状态。详细说明了 `expand-on-click-node` 属性的应用和其默认值的更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

expand-on-click-node:是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。

<el-tree
  :data="data"
  show-checkbox
  node-key="id"
  default-expand-all
  :expand-on-click-node="false"
  :render-content="renderContent">
</el-tree>
### 如何修改 el-tree 组件的收缩和展开图标Element UI 的 `el-tree` 组件中,默认情况下会显示一个折叠/展开的小箭头作为节点的操作图标。如果希望自定义这些图标,可以通过覆盖默认样式或者通过插槽机制实现。 #### 方法一:通过 CSS 覆盖默认样式 可以利用 `.el-tree-node__expand-icon` 类名来调整默认的折叠/展开图标。以下是具体方法: ```css /* 移除默认的旋转效果 */ .el-tree /deep/ .el-tree-node__expand-icon { display: none; } /* 添加自定义图标 */ .el-tree /deep/ .el-tree-node__expand-icon:before { content: "\e78b"; /* 替换为你想要的字体图标 Unicode 编码 */ font-family: element-icons !important; /* 使用 Element 提供的字体库 */ } /* 展开状态下的图标 */ .el-tree /deep/ .is-expanded .el-tree-node__expand-icon:before { content: "\e6d9"; /* 更改展开后的图标编码 */ } ``` 上述代码实现了隐藏默认图标并替换为新的自定义图标[^2]。 --- #### 方法二:通过作用域插槽 (Scoped Slot) 实现更灵活的控制 除了简单的样式更改外,还可以完全移除默认图标并通过模板重新渲染一个新的图标控件。以下是一个完整的例子: ```vue <el-tree :data="treeData" default-expand-all> <!-- 定义节点的内容 --> <span class="custom-tree-node" slot-scope="{ node, data }"> <!-- 自定义图标逻辑 --> <i v-if="!node.isLeaf" @click.stop="toggle(node)" :class="[node.expanded ? 'icon-collapse' : 'icon-expand']" ></i> <!-- 显示节点名称 --> <span>{{ node.label }}</span> </span> </el-tree> ``` 在此示例中,我们手动创建了一个 `<i>` 标签用于表示展开或折叠按钮,并绑定点击事件以调用 `toggle()` 函数完成切换操作[^1]。 同时需要注意的是,在某些场景下可能还需要扩展容器区域以便于用户更容易触碰到目标位置。这通常涉及对`.el-tree-node__label`样式的重写: ```css .my-app .el-tree-node__label { flex: 1; /* 让标签占据更多空间 */ } ``` 此部分已在引用材料中有提及[^4]。 --- ### 总结 无论是采用纯CSS方式还是借助Vue的作用域插槽功能都可以很好地满足对于el-tree组件内部图标定制化需求。前者适合快速简单变更而后者则提供了更大灵活性允许开发者进一步增强交互体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值