简化示例效果如下

核心操作
- 多选时取消上一次的选中
- 把全选的按钮隐藏
代码
<template>
<div>
<el-table
:data="tableData"
@selection-change="onDialogSelectionChange"
ref="tableRef"
>
<el-table-column type="selection"></el-table-column>
<el-table-column prop="name" label="姓名"> </el-table-column>
</el-table>
</div>
</template>
<script setup>
import { ref } from "vue";
const tableRef = ref();
const tableData = ref([{ name: "张三" }, { name: "李四" }, { name: "王五" }]);
let selectedMember;
function onDialogSelectionChange(selection) {
if (selection.length > 1) {
let delRow = selection.shift();
tableRef.value.toggleRowSelection(delRow, false);
} else if (selection.length === 1) {
selectedMember = selection[0];
}
}
</script>
<style lang="scss" scoped>
:deep(.el-table) {
width: 200px;
.el-table__header-wrapper {
.el-table__header {
th {
background-color: pink;
}
.el-checkbox {
display: none;
}
}
}
}
</style>