Pagination now support a compact mode

This commit is contained in:
Eliot Berriot 2018-04-14 16:02:11 +02:00
parent 9b4d7165b7
commit 2e71ddbffc
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
1 changed files with 17 additions and 13 deletions

View File

@ -1,25 +1,25 @@
<template> <template>
<div class="ui pagination borderless menu"> <div class="ui pagination menu">
<a <div
v-if="current - 1 >= 1" :disabled="current - 1 < 1"
@click="selectPage(current - 1)" @click="selectPage(current - 1)"
:class="[{'disabled': current - 1 < 1}, 'item']"><i class="angle left icon"></i></a> :class="[{'disabled': current - 1 < 1}, 'item']"><i class="angle left icon"></i></div>
<template> <template v-if="!compact">
<a <div
v-if="page !== 'skip'" v-if="page !== 'skip'"
v-for="page in pages" v-for="page in pages"
@click="selectPage(page)" @click="selectPage(page)"
:class="[{'active': page === current}, 'item']"> :class="[{'active': page === current}, 'item']">
{{ page }} {{ page }}
</a> </div>
<a v-else class="disabled item"> <div v-else class="disabled item">
... ...
</a> </div>
</template> </template>
<a <div
v-if="current + 1 <= maxPage" :disabled="current + 1 > maxPage"
@click="selectPage(current + 1)" @click="selectPage(current + 1)"
:class="[{'disabled': current + 1 > maxPage}, 'item']"><i class="angle right icon"></i></a> :class="[{'disabled': current + 1 > maxPage}, 'item']"><i class="angle right icon"></i></div>
</div> </div>
</template> </template>
@ -30,7 +30,8 @@ export default {
props: { props: {
current: {type: Number, default: 1}, current: {type: Number, default: 1},
paginateBy: {type: Number, default: 25}, paginateBy: {type: Number, default: 25},
total: {type: Number} total: {type: Number},
compact: {type: Boolean, default: false}
}, },
computed: { computed: {
pages: function () { pages: function () {
@ -72,6 +73,9 @@ export default {
}, },
methods: { methods: {
selectPage: function (page) { selectPage: function (page) {
if (page > this.maxPage || page < 1) {
return
}
if (this.current !== page) { if (this.current !== page) {
this.$emit('page-changed', page) this.$emit('page-changed', page)
} }