基于Element组件库再次封装翻页控件

项目背景

一般的后台项目中,表格比较多,并且涉及到分页和条件检索。

如果每个表格都单独配置一个分页,后期维护起来比较繁琐,而且,写代码也是copy来copy去,没有什么技术含量。

因此,基于ElementUI 分页组件的二次封装就能够帮助我们大大的提高工作效率。

页面中使用如下:

  <common-pagination
     :currentPage="table.pageInfo.pageNo"
     :pageSize="table.pageInfo.pageSize"
     :total="table.pageInfo.totalRows"
     @sizeChange="handlerSizeChange"
     @currentChange="handlerCurrentChange"
  ></common-pagination>
data(){
	return{
	table: {
		pageInfo: {
        	sort: '',
        	pageSize: 10,
        	pageNo: 1,
        	totalRows: 0,
       	   }
        }
	}
}
 handlerSizeChange(val) {
      table.pageInfo.pageSize = val
      table.pageInfo.pageNo = 1
      // 请求页面数据
      this.getData()
   },
 handlerCurrentChange(val) {
      const table = activeTab.table
      table.pageInfo.pageNo = val
      // 请求页面数据
      this.getData()
  },

组件代码如下:

<template>
  <div class="common-table-pagination"
       style="text-align: right;display: flex;flex-direction: row;justify-content: flex-end;overflow:hidden;">
    <el-pagination
        style="text-align:right;"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page=currentPage
        :page-sizes=pageSizes
        :page-size=pageSize
        :layout=layout
        :total=total>
    </el-pagination>
  </div>
</template>

<script>
export default {
  name: 'table-pagination',
  props: {
    currentPage: {
      type: Number,
      required: true
    },
    pageSize: {
      type: Number,
      default: 10
    },
    layout: {
      type: String,
      default: 'total, sizes, prev, pager, next, jumper'
    },
    pageSizes: {
      type: Array,
      default() {
        return [10, 20, 50]
      }
    },
    total: {
      type :Number,
      required: true
    }
  },
  methods: {
    handleSizeChange(val) {
      this.$emit('sizeChange', val)
    },
    handleCurrentChange(val) {
      this.$emit('currentChange', val)
    }
  }
}
</script>

<style scoped>

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值