elementui中table表单的批量删除实
时间: 2024-01-03 12:07:22 浏览: 78
好的,下面是一个使用 ElementUI 的 Table 组件实现批量删除的示例代码:
```vue
<template>
<div>
<el-button type="danger" @click="deleteSelected">批量删除</el-button>
<el-table :data="tableData" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="name" label="名称"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" size="small" @click="deleteItem(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
tableData: []
}
},
mounted() {
this.fetchData()
},
methods: {
fetchData() {
axios.get('/api/items').then(res => {
this.tableData = res.data
})
},
deleteItem(id) {
axios.delete(`/api/items/${id}`).then(() => {
this.fetchData()
})
},
deleteSelected() {
const selectedIds = this.$refs.table.selection.map(item => item.id)
axios.delete('/api/items', {
data: { ids: selectedIds }
}).then(() => {
this.$refs.table.clearSelection()
this.fetchData()
})
}
}
}
</script>
```
这个示例代码假设你已经有一个 `/api/items` 接口可以获取所有的项,并且可以通过 DELETE 方法来删除一个或多个项。其中,`$refs.table` 是 Table 组件的引用,`selection` 属性存储了当前选中的项的数据。在 `deleteSelected` 方法中,我们使用了 axios 的 `delete` 方法,将选中的项的 ID 作为参数传递给后端。注意,在这里我们也使用了 `data` 选项来指定传递的数据。在成功删除后,我们使用了 `clearSelection` 方法来清空选中的项,然后再重新获取数据。
阅读全文