【Element】隐藏 el-table 展开行的箭头

需求

点击行展开行,隐藏箭头
在这里插入图片描述

方法

首先需求是点击行显示展开行

@row-click="rowClick"

const rowClick = (row: any, column: any, event: any) => {
  console.log(row, column, event)
  if (multipleTable.value) {
    multipleTable.value.toggleRowExpansion(row)
  }
}

这个时候不需要展示箭头了

  1. 先设置宽度
<el-table-column type="expand" width="1" > // 设置宽度等于1
  1. 修改样式
:deep(.el-table__expand-column){
visibility: hidden;
}
### 实现方案 为了实现 `el-table` 开行默认箭头图标的替换,在自定义渲染方面可以利用 `row-class-name` 或者通过样式覆盖的方式进行调整。不过,更为推荐的方法是在模板中使用具名插槽(named slots),即针对开图标的位置创建一个专门的插槽来自定义其内容。 下面是一个具体的例子: ```html <template> <el-table :data="tableData"> <!-- 定义expand-row-icon 插槽 --> <span slot="expand" slot-scope="{ row }">{{ isExpanded(row) ? '收起' : '开' }}</span> <el-table-column type="expand"> <template slot-scope="props"> <p>这里是额外的信息。</p> </template> </el-table-column> <el-table-column label="日期" prop="date"></el-table-column> <el-table-column label="姓名" prop="name"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { date: "2016-05-03", name: "Tom" }, { date: "2016-05-02", name: "John" } ] }; }, methods: { isExpanded(row) { const expandedRows = this.$refs.table.store.states.expandRows; return expandedRows.some(expandedRow => expandedRow === row); } } }; </script> ``` 在这个实例里,通过向 `<el-table>` 添加了一个名为 `"expand"` 的具名插槽,并传递了作用域属性 `{ row }` 来获取当前行的数据对象。接着可以根据逻辑判断该行是否处于开状态并相应地改变提示文字[^1]。 需要注意的是,上述方法依赖于访问内部的状态 (`this.$refs.table.store.states`) ,这并不是官方文档所提倡的做法,因为这些私有成员可能会在未来版本发生变化。因此建议关注 Element UI 文档更新以及社区讨论寻找更加稳定的支持方式[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值