el-table多选表格,勾选互斥选项功能实现
时间: 2024-06-28 15:01:01 浏览: 219
多个select 的互斥选择实现
`el-table` 是 Element UI 提供的一个用于展示表格数据的组件,它支持丰富的功能,包括多选功能。要实现勾选互斥选项(即一次只能选择一项或多项,但不能同时选择多项),你可以利用 `row-key` 和 `selection-method` 属性来定制选择行为。
**1. row-key**:设置每一行的唯一标识,当使用多选时,这个属性很重要,因为它是确定哪一行被选中的依据。如果你的表格数据中每个对象有一个独特的 ID,可以设置为 `row-key="id"`。
**2. selection-method**:这是一个自定义方法,用于控制如何根据用户的选择更新行的状态。你可以在这个方法中添加互斥逻辑,例如:
```javascript
methods: {
selectRow(row) {
if (this.selectedRows.length > 0) {
// 如果已选中其他项,取消当前项的选择
this.$refs.table.clearSelection();
this.selectedRows.forEach(row => row.isSelected = false);
}
// 添加新的选中项
row.isSelected = true;
this.selectedRows.push(row);
},
deselectRow(row) {
// 如果当前项被选中,移除它
row.isSelected = false;
const index = this.selectedRows.indexOf(row);
if (index !== -1) {
this.selectedRows.splice(index, 1);
}
},
}
```
**3. 在模板上绑定事件**:
在表格的每行单元格上绑定 `@click` 事件,调用对应的 `selectRow` 或 `deselectRow` 方法。
```html
<template>
<el-table
:data="tableData"
ref="table"
:row-key="rowKey"
selection-method="selectRow"
@select="handleSelect"
@row-click="handleRowClick"
>
<!-- 表格列 -->
</el-table>
</template>
```
**
阅读全文