(二十八)VueCli3.0全栈——分页功能

2019-07-11  本文已影响0人  彼得朱

1、Fundlist.vue中

<!-- 分页 -->
      <el-row>
          <el-col :span="24">
              <div class="pagination">
                    <el-pagination
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                        :current-page.sync="paginations.page_index"
                        :page-sizes="paginations.page_sizes"
                        :page-size="paginations.page_size"
                        :layout="paginations.layout"
                        :total="paginations.total">
                    </el-pagination>
              </div>
          </el-col>
      </el-row>
paginations:{
            page_index:1,  //当前位于哪页
            total:0,       //总数
            page_size:5,   //一页显示多少条
            page_sizes:[5,10,15,20],  //每页显示多少条
            layout:'total,sizes,prev,pager,next,jumper' //翻页属性
        },
.pagination{
    text-align: right;
    margin-top: 10px;
}

allTableData:[]

getProfile() {
      // 获取表格数据
      this.$axios
        .get("/api/profiles")
        .then(res => {
          this.allTableData = res.data;
            //   设置分页数据
            this.setPaginations();

        })
        .catch(err => console.log(err));
    },
setPaginations(){
        // 分页属性初始化设置
        this.paginations.total = this.allTableData.length;
        this.paginations.page_index=1;
        this.paginations.page_size=5;
        // 设置默认的分页数据
        this.tableData = this.allTableData.filter((item,index)=>{
            return index<this.paginations.page_size
        })
    },
    handleSizeChange(page_size){
        // 切换size
        this.paginations.page_index=1;
        this.paginations.page_size=page_size;
        this.tableData = this.allTableData.filter((item,index)=>{
            return index<page_size;
        })
    },
    handleCurrentChange(page){
        // 获取当前页
        let index = this.paginations.page_size*(page-1);
        // 数据的总数
        let nums = this.paginations.page_size*page;
        // 容器
        let tables = [];
        for(let i= index;i<nums;i++){
            if(this.allTableData[i]){
                tables.push(this.allTableData[i]);
            }
            this.tableData=tables;
        }
    }
  }

2、效果图

测试 测试
上一篇 下一篇

猜你喜欢

热点阅读