vue elementUI el-pagination控件添加首頁和尾頁

elementUI 中el-pagination控件不能直接添加首頁和尾頁,但是el-pagination支持自定義內(nèi)容焊虏,需要在 layout 中列出 slot廓块,也就是通過插槽來擴(kuò)展分頁顯示的內(nèi)容,具體代碼寫法如下:

<el-pagination
      layout="slot, prev, pager, next, slot"
      :page-size="rows"
      :total="total"
      @current-change="handleCurrentChange"
      :current-page.sync="currentPage">
      <el-button :disabled="firstDisabled" @click="toFirstPage">首頁</el-button>
      <el-button :disabled="isLastDisabled" @click="toLastPage">尾頁</el-button>
    </el-pagination>

使用插槽來擴(kuò)展添加首頁和尾頁的時候炸庞,會有如下問題:

  • 問題1:slot只支持一個惯疙,也就是說只能寫一個翠勉,如果寫多個slot的時候,都會以第一個控件來添加螟碎,也就是說上面的代碼只能顯示出兩個首頁眉菱,而無法顯示出尾頁迹栓,原因可以通過查看源代碼來分析
slot: <my-slot></my-slot>

MySlot: {
  render(h) {
      return (
          this.$parent.$slots.default ? this.$parent.$slots.default[0] : ''
      );
  }
}

解決辦法就是使用兩個分頁控件el-pagination來拼接處一個完成的分頁功能掉分,每個分頁控件上寫一個slot俭缓,代碼如下:

    <div>
      <el-pagination
        layout="slot, prev, pager, next"
        :page-size="rows"
        :total="total"
        @current-change="handleCurrentChange"
        :current-page.sync="currentPage">
        <el-button :disabled="firstDisabled" @click="toFirstPage" size="mini">首頁</el-button>
      </el-pagination>

      <el-pagination
        layout="slot, jumper"
        :page-size="rows"
        :total="total"
        @current-change="handleCurrentChange"
        :current-page.sync="currentPage">
        <el-button :disabled="isLastDisabled" @click="toLastPage" size="mini">尾頁</el-button>
      </el-pagination>
    </div>
  • 問題2:el-botton按鈕通過slot顯示在分頁控件中之后發(fā)現(xiàn):disabled='firstDisabled',當(dāng)firstDisabled發(fā)生變化時酥郭,el-button的disabled屬性無法更改华坦,這塊問題的具體原因還沒有找到,如果有知道的大神不从,請幫忙解釋一下惜姐。

最后的解決方案就是使用兩個el-button按鈕,首頁和尾頁椿息。代碼如下:

  • 創(chuàng)建一個通用Page組件歹袁,將分頁部分單獨(dú)提出來放到組件中。
<template>
  <div>
    <el-button :disabled="firstDisabled" @click="toFirstPage" size="mini">首頁</el-button>
    <el-pagination
      layout="prev, pager, next"
      :page-size="rows"
      :total="total"
      @current-change="handleCurrentChange"
      :current-page.sync="currentPage"
      style="display: inline-block;padding-right: 0px;">
    </el-pagination>
    <el-button :disabled="isLastDisabled" @click="toLastPage" size="mini">尾頁</el-button>
    <el-pagination
      layout="jumper"
      :page-size="rows"
      :total="total"
      @current-change="handleCurrentChange"
      :current-page.sync="currentPage"
      style="display: inline-block;padding-left: 0px;">
    </el-pagination>
  </div>
</template>
    export default {
      data () {
        return {
          totalPage: Math.ceil(this.total / this.rows),
          firstDisabled: true
        }
      },
      props: {
        currentPage: {
          type: Number,
          default: 1
        },
        rows: {
          type: Number,
          default: 10
        },
        total: {
          type: Number,
          default: 0
        }
      },
      methods: {
        handleCurrentChange (page) {
          this.firstDisabled = page == 1 ? true : false;
          this.$emit("handleCurrentChangeSub", page);
        },
        toFirstPage () {
          this.handleCurrentChange(1);
        },
        toLastPage () {
          this.currentPage = this.totalPage;
          this.handleCurrentChange(this.totalPage);
        }
      },
      watch: {
        total(val) {
          this.total = val;
          this.totalPage = Math.ceil(val / this.rows);
        }
      },
      computed : {
        isLastDisabled () {
          if(this.totalPage <= 0){
            return true;
          }
          return this.currentPage == this.totalPage ? true : false;
        }
      }
    }
import Page from '../../components/Page'

components: {
    Page
}

<Page :currentPage="queryData.page" :rows="queryData.rows" :total="total" @handleCurrentChangeSub="handleCurrentChange"/>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寝优,一起剝皮案震驚了整個濱河市条舔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乏矾,老刑警劉巖孟抗,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钻心,居然都是意外死亡凄硼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門捷沸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摊沉,“玉大人,你說我怎么就攤上這事痒给∨髑眨” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵侈玄,是天一觀的道長婉刀。 經(jīng)常有香客問我,道長序仙,這世上最難降的妖魔是什么突颊? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮潘悼,結(jié)果婚禮上律秃,老公的妹妹穿的比我還像新娘。我一直安慰自己治唤,他們只是感情好棒动,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宾添,像睡著了一般船惨。 火紅的嫁衣襯著肌膚如雪柜裸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天粱锐,我揣著相機(jī)與錄音疙挺,去河邊找鬼。 笑死怜浅,一個胖子當(dāng)著我的面吹牛铐然,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恶座,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼搀暑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了跨琳?” 一聲冷哼從身側(cè)響起险掀,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎湾宙,沒想到半個月后樟氢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侠鳄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年埠啃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伟恶。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡碴开,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出博秫,到底是詐尸還是另有隱情潦牛,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布挡育,位于F島的核電站巴碗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏即寒。R本人自食惡果不足惜橡淆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望母赵。 院中可真熱鬧逸爵,春花似錦、人聲如沸凹嘲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽周蹭。三九已至趋艘,卻和暖如春疲恢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背致稀。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工冈闭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俱尼,地道東北人抖单。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像遇八,于是被迫代替她去往敵國和親矛绘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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