elementUi之分頁組件的簡單封裝

因elementUi分頁封裝成單獨組件當前頁存在bug,沒有在父組件設(shè)置當前頁。 如有需要可在分頁組件單獨設(shè)置

在使用頁面(父頁面)

<!-- 向子組件傳total值(總數(shù)),接收子組件sizeChange事件(每頁顯示條數(shù)),接收子組件currentChange事件(當前頁) -->

    <paging 
      :total="querycdt.total" 
      @sizeChange="handleSizeChange"
      @currentChange="handleCurrentChange">
    </paging>
    components:{
      paging : require('@/components/common/paging.vue').default,  // 引入分頁組件
    }
  // 每頁顯示多少條
  handleSizeChange(val){
    this.querycdt.pageLength = val // 每頁多少條
    this.getUserList()  // 刷新
  },
  // 當前頁
  handleCurrentChange(val) {
    this.querycdt.pagenum = val // 當前頁
    this.getUserList()  // 刷新
  }

paging 組件頁面

<template>
  <div>
    <el-pagination
      @size-change='handleSizeChange'
      @current-change="handleCurrentChange"
      :page-sizes="[10,20,30]"
      :page-size="10"
      layout="total, prev, pager, next, jumper"
      :total="querycdt.total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  props: ['total'],
  methods:{
    handleSizeChange(val){
      // console.log(`每頁${val}條`)
      // 向父組件傳遞sizeChange事件,傳入val值
      this.$emit('sizeChange',val)
      
    },
    handleCurrentChange(val){
      // console.log(`當前頁:${val}`)
      this.$emit('currentChange',val)
    }
  }
}
</script>

<style lang="less" scoped>
</style>


刪除頁面最后一條數(shù)據(jù)時,currentPage沒有減一,頁面列表為空
思路:監(jiān)聽頁面的總條數(shù),并對總條數(shù)進行判斷。
當頁面總條數(shù) = (當前頁數(shù)-1)*當前頁條數(shù),currentPage減1,重新獲取列表

props: ['querycdt'],   // 直接接收父組件傳過來的querycdt分頁對象
// querycdt.totalNum 數(shù)據(jù)總條數(shù)   
// querycdt.currentPage 當前頁    
// querycdt.pageSize 每頁顯示的數(shù)據(jù)條數(shù)  

watch: {
  'querycdt.currentPage':{ //監(jiān)聽props傳過來的querycdt對象的currentPage(當前頁)
    handler(){ // 隨便寫在一個函數(shù)內(nèi)
      if(this.querycdt.totalNum==(this.querycdt.currentPage-1)*this.querycdt.pageSize&& this.querycdt.totalNum!=0){ //這一行是關(guān)鍵代碼,倍數(shù)關(guān)系
        this.querycdt.currentPage -= 1
        this.geiList()//獲取表格數(shù)據(jù)的方法
      }
    }
  }
},

額外說一點,數(shù)據(jù)的每個序號,一般用
item.index= this.querycdt.pageSize * (this.querycdt.currentPage - 1) + (index + 1);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 本文已授權(quán) 微信公眾號 玉剛說 (@任玉剛)獨家發(fā)布。 前言 我是一個崇尚 開源 的Android開發(fā)者,在過去的...
    卻把清梅嗅閱讀 16,813評論 24 111
  • 現(xiàn)在天氣轉(zhuǎn)暖,每天早晨由我騎電動車送艾哲去上學(xué),今天去學(xué)校的路上,艾哲給我唱了兩首歌《春曉》和《學(xué)習(xí)雷鋒好榜樣》,...
    艾哲麻麻閱讀 173評論 0 0
  • 我們這個城市里很少有霧,偶爾有一次霧,特別是濃霧,人們并不覺得出行不便,反而覺得欣喜。秋天時偶爾有晨霧。我...
    佳硯尋閱讀 602評論 1 1
  • 這些天無意中,都不記得是在哪里,看到有人議論周華健的江湖,始以為是周華健的江湖笑呢,后來才發(fā)現(xiàn)那是一部專輯。 專輯...
    觀云聽風(fēng)閱讀 1,215評論 0 0
  • 2006年武夷巖茶國家標準:武夷巖茶是指在武夷山市范圍內(nèi),獨特的武夷山自然生態(tài)環(huán)境條件下選用適宜的茶樹品種進行繁育...
    f6afe8fe24a5閱讀 475評論 0 0