造成这个原因是由于currentPage没有更新的原因,当最后一页的数据删除后,请求的current没有改变。
不要慌我的这种写法想跳哪一页就跳哪一页
这是分页参数
这是表格数据
我们可以给个变量flag,每次请求时把返回tableData长度给flag。
当单个删除操作时判断flag等于1,给currentPage减1,
当多个删除操作时就判断删除的数量长度(比如ids.length,rows.leng)是否等于flag,再给currentPage减1。
看代码
data() {
return {
ids[],
tableData:[],
flag: 0,
pageQuery: {
currentPage: undefined,
pageSize: undefined,
queryString: undefined
}
};
},
methods: {
deleteData() {
axios.delete("/api/deleteOne").then(res => {
//当flag===1时当前currentPage - 1
if (this.flag === 1) {
this.pageQuery.currentPage--;
}
}).finally(() => {
//再次分页查询就跳转到上一页了。
this.selectPage();
})
},
removeDataIds(){
this.$api.delete("/api/remove", {data: ids}).then(res => {
//多删除的时候也一样
if (this.currentPageFlag === ids.length) {
this.pageQuery.currentPage--;
}
this.selectPage();
}
},
selectPage() {
axios.get("/api/list", {params: this.pageQuery}).then(res => {
this.tableData= res.data;
//后面flag=== 1时,对currentPage进行-1。
this.flag = this.tableData.length;
})
}
}