vue实现table分页以及用户手动筛选

本文介绍了如何在 Vue.js 中实现表格数据的分页展示,并结合用户手动筛选功能。通过预览图展示了功能效果,利用假数据进行演示。文中详细讲解了分页组件的编写、获取数据的方法、监听大小改变和页码改变的事件,以及筛选组件的使用和筛选状态的判断。代码实现包括监听筛选变化的`handleFilterChange`事件,根据筛选状态选择调用不同的获取数据方法。
摘要由CSDN通过智能技术生成

vue实现table分页以及用户手动筛选

话不多说上预览图
在这里插入图片描述
由于没有与后端对接,所以这块的数据为假数据

功能点:用户可以对状态进行筛选

分页部分:

<!--        分页组件-->
                <el-pagination
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                        :current-page="queryInfo.currentPage"
                        :page-sizes="[10, 20, 30, 50, 100]"
                        :page-size="queryInfo.pageSize"
                        layout="total, sizes, prev, next, jumper"
                        prev-text="上一页"
                        next-text="下一页"
                        :total="total">
                </el-pagination>

先写好分页组件

getTableData(){
   
        let data = {
   
          offset: this.queryInfo.currentPage,
          size: this.queryInfo.size
        }
        console.log("offset为" + data.offset)
        this.$http.get("/membership/deposit/list",{
   params: data}).then(res=>{
   
          if(res.data.state){
   
            console.log(res.data.msg);
            this.tableData=res.data.data.list
              this.total = res.data.data.total
          }else{
   
            this.$message.error(res.data.msg)
          }
        })
      },

从后端获取table数据的方法

getTableDataOne(){
   
			let data = {
   
				offset: this.queryInfo.currentPage,
				size: this.queryInfo.size,
				status: this.status
			}
			console.log("offset为" + data.offset)
			this.$http.get("/membership/deposit/list",{
   params: data}).then(res=>{
   
				if(res.data.state){
   
					console.log(res.data.msg);
					this.tableData=res.data.data.list
					this.total = res.data.data.total
				}else{
   
					this.$message.error(res.data.msg)
				}
			})
		},

通过筛选条件(status)从后端获取数据的方法

handleSizeChange (newSize) {
   
        console.log(`每页 ${
   newSize} 条`)
        this.queryInfo.size = newSize
        //size改变时currentPage应该为1
        this.queryInfo.currentPage = 1
		  if(this.flag === 1){
   
			  this.getTableData()
		  }else{
   
			  this.getTableDataOne()
		  }
      },

监听size改变的事件
通过flag来判断用户是否进行了筛选,如果在筛选状态调用getTableDataOne()方法来获取table数据,反之则调用getTableData()方法来获取table数据

handleCurrentChange (newPage) {
   
        console.log(`当前页: ${
   newPage}`)
        this.queryInfo.currentPage = newPage
		  if(this.flag === 1){
   
			  this.getTableData()
		  }else{
   
			  this.getTableDataOne()
		  }
      },

监听页码值改变的事件

筛选部分

		    <el-table-column
                    label="状态"
                    prop="status"
                  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值