Element-ui(el-table、el-pagination)实现表格分页

HTML代码:(重点关注el-table中:data数据的绑定)

el-pagination中:

layout代表组件布局,子组件名用逗号分隔 
属性: total代表总条目数 
事件: current-change用于监听页数改变,而内容也发生改变

<template>
  <div>
    <el-table
      ref="multipleTable"
      :data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
      tooltip-effect="dark"
      style="width: 100%"
      @selection-change="handleSelectionChange">
      <el-table-column
        type="selection"
        width="55">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="120">
      </el-table-column>
      <el-table-column
        prop="age"
        label="年龄"
        width="120">
      </el-table-column>
      <el-table-column
        prop="sex"
        label="性别"
        width="120">
      </el-table-column>
      <el-table-column
        prop="department"
        label="部门"
        width="150">
      </el-table-column>
      <el-table-column
        prop="floor"
        label="楼层"
        width="120">
      </el-table-column>
      <el-table-column
        prop="area"
        label="区域"
        width="120">
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button
            size="mini"
            @click="handleEdit(scope.$index, scope.row)">修改
          </el-button>
          <el-button
            size="mini"
            type="danger"
            @click="handleDelete(scope.$index, scope.row)">删除
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <div style="text-align: center;margin-top: 30px;">
      <el-pagination
        background
        layout="prev, pager, next"
        :total="total"
        @current-change="current_change">
      </el-pagination>
    </div>
  </div>
</template>

js代码:(addUser函数中请求的是用express搭建的服务器,tableData存放返回的json数据)

export default {
    name: "dataList",
    data() {
      return {
        tableData: [],
        multipleSelection: [],
        total: 0,
        pagesize:10,
        currentPage:1
      }
    },
    methods: {
      addUser() {
        this.$http({
          method: 'GET',
          url: 'http://127.0.0.1:8080/api/users',
        }).then(res => {
          console.log(res);
          if (!res.data.errno) {
            this.tableData = res.data.data.users;
            this.total= res.data.totalnum;
          }
        })
          .catch(function (error) {
            console.log(error);
          });
      },

      current_change:function(currentPage){
        this.currentPage = currentPage;
      },
    mounted: function () {
    this.addUser();
    }
}

 最终效果:

 

posted @ 2018-07-20 14:22  Dreamsqin  阅读(60367)  评论(5编辑  收藏  举报