這個問題和上一篇
解決分頁瀏覽后搜索無數(shù)據(jù)的問題
有異曲同工之處~
tips:vue環(huán)境
先講一下思路。
獲取列表數(shù)據(jù)的接口,默認(rèn)后臺回返回一個數(shù)組,就是我們需要渲染在頁面上的數(shù)據(jù),另外一個就是總數(shù)(total),用于分頁組件顯示共有多少條數(shù)據(jù)。
分頁組件中我們需要一個值,就是當(dāng)前分頁組件的大?。ㄒ豁擄@示多少條數(shù)據(jù))實例代碼會用pageSize來代替。
我們默認(rèn)每次刪除成功后會重新向后臺請求一遍列表數(shù)據(jù)。
當(dāng)我最開始加載頁面的時候,獲取到后臺返回的數(shù)據(jù)總數(shù),然后在data里聲明兩個變量,為數(shù)值類型。
method:{
getList(pageNumber ){
let params ={
pageNumber: pageNumber ? pageNumber : this.page.current,
//其他內(nèi)容略
}
發(fā)送請求.then(data =>{
this.getList = data.list //返回內(nèi)容
this.page.total = data.count;//后端返回的總數(shù)
this.afterPage= Math.floor(this.page.total / this.page.size);
全部的數(shù)據(jù)值/頁面大小 并且向下去整數(shù)
this.nowSize= this.page.total % this.page.size;
全部的數(shù)據(jù)值除頁面大小的余數(shù) 最后一頁的數(shù)據(jù)條數(shù)
})
//刪除事件
發(fā)送刪除請求.then(() => {
if(this.nowSize ='1' && this.afterPage>='0'){
this.getList(this.afterPage)
}else {
this.getList()
}
})
}
由于我取到的afterPage是向下取整的,所以需要請求前一頁數(shù)據(jù)的時候不需要-1,但是當(dāng)我當(dāng)前頁碼為1時,我的afterPage就是0了,為了避免我向后臺傳入pageNumer=0,加了一層判斷。直接走else里的事件就可以了~

圖片發(fā)自簡書App
我可以?。。?/p>
以上內(nèi)容可以實現(xiàn)單條頁面的操作,接下來補充批量操作如何寫
以下內(nèi)容是vue和iview框架實現(xiàn)的
首先在表單有多選功能和事件,以下事件
當(dāng)我選中的長度和當(dāng)前頁面長度一樣的時候,就需要請求前一頁的數(shù)據(jù)了
if(this.selection.length == this.nowSize && this.afterPage>='0' ){
this.getList(this.afterPage)
}else{
this.getList()
}