用elementui写一个表格批量删除
时间: 2023-10-22 08:08:07 浏览: 90
vue+element的表格实现批量删除功能示例代码
以下是使用elementui实现表格批量删除的代码示例:
```html
<template>
<div>
<el-table :data="tableData" style="width: 100%">
<el-table-column type="selection"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" @click="handleDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 20px">
<el-button type="danger" @click="handleBatchDelete">批量删除</el-button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{
name: '张三',
age: 18,
address: '北京市',
},
{
name: '李四',
age: 20,
address: '上海市',
},
{
name: '王五',
age: 22,
address: '广州市',
},
],
multipleSelection: [], // 选中的行
};
},
methods: {
handleDelete(index) {
this.tableData.splice(index, 1);
},
handleBatchDelete() {
if (this.multipleSelection.length === 0) {
this.$message.warning('请选择需要删除的行');
return;
}
this.$confirm('确定删除选择的行?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
this.multipleSelection.forEach((item) => {
const index = this.tableData.indexOf(item);
this.tableData.splice(index, 1);
});
this.$message.success('删除成功');
})
.catch(() => {});
},
},
};
</script>
```
在这个示例中,我们使用了elementui的`el-table`和`el-button`组件来实现表格和按钮,使用`el-table-column`组件来定义表格的列。其中使用了`type="selection"`来实现表格的多选功能,使用`@selection-change`事件来获取选中的行,使用`@click`事件来实现删除单行数据,使用`@click`事件来实现批量删除。在批量删除函数中,我们先判断是否选择了需要删除的行,然后弹出确认框,确认后遍历选中的行,从数据中删除这些行。最后使用`$message`组件来弹出提示信息。
阅读全文