Как использовать нумерацию страниц в элементах данных в пользовательском интерфейсе Element? - PullRequest
0 голосов
/ 28 марта 2020

Мне просто интересно, что в компоненте el-table для нумерации страниц нет встроенной функциональности.

Существует отдельный компонент нумерация страниц , но нет объяснение того, как его использовать в сочетании с эл-таблицей. Я не могу понять это, и я в замешательстве.

Может ли кто-нибудь привести короткий и ясный пример, как их объединить?

1 Ответ

1 голос
/ 31 марта 2020

Я создал небольшой пример, в этом случае все данные уже находятся во внешнем интерфейсе, но в реальном случае вы, вероятно, делаете вызов некоторому внутреннему сервису, поэтому, если вы хотите применить такие вещи, как сортировка нужно сделать это самостоятельно в фоновом сервисе

Удачи с ним.

HTML:

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.13.0/lib/index.js"></script>
<div id="app">
<template>
    <el-table :data="pagedTableData" style="width: 100%">
      <el-table-column prop="date" label="Date" width="180"></el-table-column>
      <el-table-column prop="name" label="Name" width="180"></el-table-column>
      <el-table-column prop="address" label="Address"></el-table-column>
    </el-table>
    <el-pagination layout="prev, pager, next" :total="this.tableData.length" @current-change="setPage">
  </el-pagination>
  </template>
</div>

JS:

var Main = {
    created() {
      for (let i = 0; i < 100; i++) {
        this.tableData.push({ date: '2016-05-03', name: 'Tom', address: `No. ${i}, Grove St, Los Angeles`
         })
      }
    },
    data() {
      return {
        tableData: [],
        page: 1,
        pageSize: 10
      }
    },
   computed: {
     pagedTableData() {
       return this.tableData.slice(this.pageSize * this.page - this.pageSize, this.pageSize * this.page)
     }
   },
    methods : {
      setPage (val) {
        this.page = val
      }
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

Это также доступно на Codepen

...