Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- computed: {
- pages () {
- // always shows the first page
- const start = [
- { handler: '‹', page: 1 },
- { handler: '1', page: 1 }
- ]
- // always shows the last page
- const end = [
- { handler: this.totalPaged, page: this.totalPaged },
- { handler: '›', page: this.totalPaged }
- ]
- const atTheBeginning = this.page <= this.amountBetween
- const atTheEnding = this.totalPaged - this.amountBetween <= this.page
- const atTheMiddle = !atTheBeginning && !atTheEnding
- const middle = Array.from({ length: Math.max(0, this.amountBetween) }, (_, i) => {
- const delta = atTheBeginning ? 2 : atTheEnding ? this.totalPaged - this.amountBetween : this.page - Math.floor(this.amountBetween / 2)
- return {
- handler: `${i + delta}`,
- page: i + delta
- }
- })
- if (atTheMiddle) {
- middle[0] = {
- handler: '‹',
- page: this.page - 2
- }
- middle[middle.length - 1] = {
- handler: '›',
- page: this.page + 2
- }
- }
- return start.concat(middle, end)
- }
- }
Add Comment
Please, Sign In to add comment