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=" 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();
        }
    }

     最終效果:

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章