写了一个批量删除的操作,一开始对vue不是很熟悉,
所以上网查找各种api
1.实现按钮操作
这是表格里面定义的
@selection-change="handleSelectionChange"
<el-table-column type="selection" id="" ></el-table-column>
就是checkbox可以多选
vue给我的惊喜太大,不用写复杂的逻辑判断就可以直接用.
2.删除按钮
<Button size="small" type="primary" @click="batchDelete(tableChecked)" >删除</Button>
3.分析,我需要批量删除就需要获取到选择的数据,于是在vue里面定义并初始化值
data: function() {
return {
delarr:"",//存放删除的数据的格式是id,di,id,
tableChecked:[]//删除 多选存放的数据```
//选中删除操作 初始化
handleSelectionChange(val){
console.log(“handleSelectionChange–”,val);
this.tableChecked = val;
},
4.进行删除操作.
//批量删除操作
batchDelete(row){
console.log("row--",row);
if (row.length>0){
var _this = this;
_this.$confirm('是否确认此操作?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {row.forEach(element =>{
this.delarr=this.delarr+element.stationid+",";
})
console.log("delarr--",this.delarr);
ApiStation.deleteByIds(this.delarr)
.then(response => {
try {
this.$Message.success("删除成功!");
this.getDatas();
} catch (e) {
console.log("数据处理失败:", e);
}
})
.catch(error => {
this.$Message.error(error.message);
})})
}else{
}
},
在这操作中加入了提醒功能,在我选择的数据长度大于0的情况下我才提醒.
还有就是 因为我后台返回的数据是list 所以我在前台是返回的 id 是字符串形式 再在后台 进行转换
`public boolean deleteByStringIds(String ids) {
Assert.notNull(ids,"编号不能为空");
String[] idss=ids.split(",");
List<String> mList= Arrays.asList(idss);
return service.removeByIds(mList);
}`
完美解决!以后有什么问题我还是写写,记录自己的成长哈哈哈哈哈