|
1 | 1 | <template> |
2 | | - <!-- This example requires Tailwind CSS v2.0+ --> |
3 | 2 | <div class="py-6 flex items-center justify-between"> |
4 | 3 | <div class="flex-1 flex items-center sm:justify-between justify-end"> |
5 | 4 | <div class="hidden sm:block"> |
6 | 5 | <p class="text-sm text-slate-400"> |
7 | 6 | Showing |
8 | 7 | <span class="font-medium">{{ (currentPage * pageSize) - pageSize }}</span> |
9 | 8 | to |
10 | | - <span class="font-medium">{{ currentPage * pageSize }}</span> |
| 9 | + <span class="font-medium">{{ Math.min(currentPage * pageSize, totalResults) }}</span> |
11 | 10 | of |
12 | 11 | <span class="font-medium">{{ totalResults }}</span> |
13 | 12 | results |
|
38 | 37 | </svg> |
39 | 38 | </button> |
40 | 39 |
|
41 | | - <template v-if="currentPage > 4"> |
42 | | - <button |
43 | | - @click="goToFirstPage" |
44 | | - class="page-button"> |
45 | | - 1 |
| 40 | + <!--show all page buttons--> |
| 41 | + <template v-if="totalPages < 7"> |
| 42 | + <button v-for="i in totalPages" :key="i" |
| 43 | + @click="goToPage(i)" |
| 44 | + :disabled="i === currentPage" |
| 45 | + class="page-button"> |
| 46 | + {{ i }} |
| 47 | + </button> |
| 48 | + </template> |
| 49 | + |
| 50 | + <template v-else-if="currentPage <= 4"> |
| 51 | + <button v-for="i in 5" :key="i" |
| 52 | + @click="goToPage(i)" |
| 53 | + :disabled="i === currentPage" |
| 54 | + class="page-button"> |
| 55 | + {{ i }} |
46 | 56 | </button> |
47 | | - <span |
| 57 | + <span v-if="totalPages > 7" |
48 | 58 | class="page-button"> |
49 | 59 | ... |
50 | 60 | </span> |
51 | 61 | </template> |
52 | | -<!-- <button v-else v-for="i in 5" :key="i" v-show="i < totalPages"--> |
53 | | -<!-- @click="goToPage(i)"--> |
54 | | -<!-- :disabled="i === currentPage"--> |
55 | | -<!-- class="page-button">--> |
56 | | -<!-- {{ i }}--> |
57 | | -<!-- </button>--> |
58 | 62 |
|
59 | | - <template v-if="currentPage > 4 && currentPage < totalPages-3"> |
| 63 | + <template v-else-if="currentPage > totalPages - 4"> |
| 64 | + <span v-if="totalPages > 7" |
| 65 | + class="page-button"> |
| 66 | + ... |
| 67 | + </span> |
| 68 | + <button v-for="i in 5" :key="totalPages - 5 + i" |
| 69 | + @click="goToPage(totalPages - 5 + i)" |
| 70 | + :disabled="totalPages - 5 + i === currentPage" |
| 71 | + class="page-button"> |
| 72 | + {{ totalPages - 5 + i }} |
| 73 | + </button> |
| 74 | + </template> |
| 75 | + |
| 76 | + <template v-else> |
| 77 | + <span class="page-button"> |
| 78 | + ... |
| 79 | + </span> |
60 | 80 | <button v-for="i in 2" :key="currentPage - 3 + i" |
61 | 81 | @click="goToPage(currentPage - 3 + i)" |
62 | 82 | class="page-button"> |
63 | 83 | {{ currentPage - 3 + i }} |
64 | 84 | </button> |
65 | | - <button |
66 | | - :key="currentPage" |
67 | | - disabled |
| 85 | + <button disabled |
68 | 86 | class="page-button"> |
69 | 87 | {{ currentPage }} |
70 | 88 | </button> |
|
73 | 91 | class="page-button"> |
74 | 92 | {{ currentPage + i }} |
75 | 93 | </button> |
76 | | - </template> |
77 | | - |
78 | | - <template v-if="currentPage < totalPages-3"> |
79 | | - <span |
80 | | - class="page-button"> |
| 94 | + <span class="page-button"> |
81 | 95 | ... |
82 | 96 | </span> |
83 | | - <button |
84 | | - @click="goToLastPage" |
85 | | - class="page-button"> |
86 | | - {{ totalPages }} |
87 | | - </button> |
88 | | - </template> |
89 | | - <template v-else> |
90 | | - <button v-for="i in 5" :key="totalPages-5+i" v-show="totalPages-5+i > 0" |
91 | | - @click="goToPage(totalPages-5+i)" |
92 | | - :disabled="totalPages-5+i === currentPage" |
93 | | - class="page-button"> |
94 | | - {{ totalPages-5+i }} |
95 | | - </button> |
96 | 97 | </template> |
97 | 98 |
|
98 | 99 | <button |
|
0 commit comments