#vue.js #vue-good-table
#vue.js #vue-good-table
Вопрос:
Вот пример vue-good-table из одного из имеющихся у них руководств, но я хочу иметь возможность переходить на следующую страницу каждые 5 секунд, а затем, когда в конце, перезапускаться обратно на pg1. Как это можно было бы сделать?
HTML:
<div id="app">
<vue-good-table
:columns="columns"
:rows="rows"
:pagination-options="{ enabled: true, perPage: 5}"
:search-options="{ enabled: true}">
</vue-good-table>
</div>
JS:
new Vue({
el: '#app',
data() {
return {
columns: [
{
label: 'Name',
field: 'name',
},
{
label: 'Age',
field: 'age',
type: 'number',
},
{
label: 'Created On',
field: 'createdAt',
type: 'date',
dateInputFormat: 'YYYY-MM-DD',
dateOutputFormat: 'MMM Do YY',
},
{
label: 'Percent',
field: 'score',
type: 'percentage',
},
],
rows: [
{ id:1, name:"John", age: 20, createdAt: '201-10-31:9: 35 am',score: 0.03343 },
{ id:2, name:"Jane", age: 24, createdAt: '2011-10-31', score: 0.03343 },
{ id:3, name:"Susan", age: 16, createdAt: '2011-10-30', score: 0.03343 },
{ id:4, name:"Chris", age: 55, createdAt: '2011-10-11', score: 0.03343 },
{ id:5, name:"Dan", age: 40, createdAt: '2011-10-21', score: 0.03343 },
{ id:6, name:"John", age: 20, createdAt: '2011-10-31', score: 0.03343 },
{ id:7, name:"Jane", age: 24, createdAt: '2013-09-21' },
{ id:8, name:"Susan", age: 16, createdAt: '2013-10-31', score: 0.03343 },
],
};
},
});
Комментарии:
1. вы хотите показывать как слайд-шоу???
2. Да, что-то вроде очереди заказов на еду, которую вы бы увидели в ресторане. на странице pg1 отображается 10 заказов, затем через 5 секунд отображаются следующие 10 заказов на странице pg2 и так далее.
Ответ №1:
Обновленная скрипка:https://jsfiddle.net/4hfrtL5q /
Установите разбивку на страницы в data
pagination: {
enabled: true,
perPage: 3,
setCurrentPage: 1
}
передайте pagination-options
реквизиты компоненту.
<vue-good-table :columns="columns" :rows="rows" :pagination-options="pagination" :search-options="{ enabled: true}">
setinterval
в течение 5 секунд для обновления pagination.setCurrentPage
в mounted
mounted() {
setInterval(() => {
let count = this.rows.length,
perpage = this.pagination.perPage,
currentpage = this.pagination.setCurrentPage
this.pagination.setCurrentPage = count / perpage > currentpage ? currentpage 1 : 1
}, 5000)
},
Комментарии:
1. Это идеально. Вы потрясающие, большое вам спасибо!