在 element 的 table列表中删除最后一条数据页面不自动跳到上一页的解决方法

首先看问题:

 解决方法:

只需要在之前的代码中添加以下两项就可以了。

 totalPage: 0, // 总页数

// 计算出一共有多少页

      this.totalPage = Math.ceil(this.total / this.queryObj.pagesize)

      // 当前页码数大于了总页码数,就进行如下处理

      if (this.queryObj.pagenum > this.totalPage) {

        this.queryObj.pagenum = this.totalPage

        this.getUserList()

      }

<script>
export default {
  data() {
    return {
        // 1.2 总数据条数
          total: 0,
          // 1.4 请求参数
          queryObj: {
            query: '',
            pagenum: 1,
            pagesize: 2
          },
          totalPage: 0, // 总页数
        }
    }
}

  methods: {
     // 1.4 请求用户数据的事件处理函数
    async getUserList() {
      const { data: res } = await this.$http.get('users', { params: this.queryObj })

      if (res.meta.status !== 200) return this.$message.error('获取管理员列表成功')

      this.userList = res.data.users
      this.total = res.data.total

      // 计算出一共有多少页
      this.totalPage = Math.ceil(this.total / this.queryObj.pagesize)
      // 当前页码数大于了总页码数,就进行如下处理
      if (this.queryObj.pagenum > this.totalPage) {
        this.queryObj.pagenum = this.totalPage
        this.getUserList()
      }
    }
}

解决完成之后的效果:

 

也可以使用计算属性来做:

computed: {
    // 总页数
    totalPage() {
      return Math.ceil(this.total / this.queryObj.pagesize)
    }
  },
  methods: {
    async getUserList() {
      const { data: res } = await this.$http.get('users', { params: this.queryObj })

      if (res.meta.status !== 200) return this.$message.error('获取管理员列表成功')

      this.userList = res.data.users
      this.total = res.data.total

      if (this.queryObj.pagenum > this.totalPage) {
        this.queryObj.pagenum = this.totalPage
        this.getUserList()
      }
    }
}

感觉用计算属性来做更好一些。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值