el-pagination删除列表里的最后一条数据,列表内容未刷新

问题描述

使用 elementUI 的 el-pagination的时候,删除列表里的最后一条数据,分页会回到上一页,但是列表没有数据

 

 

解决方案

本来是想着在请求业务层去做的,但是每个分页都要加一大坨代码感觉很麻烦就对 el-pagination进行了一下封装

<template>
  <el-pagination
    v-on="$listeners"
    v-bind="attr"
  >
    <slot></slot>
  </el-pagination>
</template>
<script>
/**
 * 我的PAGE_CONF是一个默认的配置
 * PAGE_CONF = {
 * layout: 'total, sizes, prev, pager, next, jumper',
 * pageSizes: [5, 10, 20, 50, 100],
 * pageSize: 10,
 * pageCount: 5,
 * prevText: '上一页',
 * nextText: '下一页'
 *}
 * */
import { PAGE_CONF } from '@/utils/utils'

export default {
  name: 'pagination',
  data () {
    return {
      pageConf: PAGE_CONF
    }
  },
  computed: {
    total () {
      return this.$attrs && this.hasAttr(this.$attrs, 'current-page') ? this.$attrs.total : 0
    },
    attr () {
      const pageConf = this.pageConf
      return {
        background: true,
        layout: pageConf.layout,
        'page-sizes': pageConf.pageSizes,
        'page-count': pageConf.pageCount,
        'prev-text': pageConf.prevText,
        'next-text': pageConf.nextText,
        ...this.$attrs
      }
    }
  },
  watch: {
    total (newVal) {
      const size = this.$attrs && this.hasAttr(this.$attrs, 'page-size') ? this.$attrs['page-size'] : 10
      const current = this.$attrs && this.hasAttr(this.$attrs, 'current-page') ? this.$attrs['current-page'] : 1
      if (Math.ceil(newVal / size) < current && this.hasAttr(this.$listeners, 'update:current-page')) {
        const currentPage = current - 1
        this.$emit('update:current-page', currentPage > 0 ? currentPage : 1)
        if (this.hasAttr(this.$listeners, 'current-change')) {
          this.$emit('current-change', currentPage)
        }
      }
    }
  },
  methods: {
    hasAttr (data, attr) {
      return Object.prototype.hasOwnProperty.call(data, attr)
    }
  }
}
</script>
<style lang="scss" scoped>

</style>

使用方式

  <pagination
    @size-change="initList"
    @current-change="initList"
    :current-page.sync="currentPage"
    :page-size.sync="pageSize"
    :total="total"
   ></pagination>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值