Skip to content

Commit 604a138

Browse files
authored
Create Pagination.vue
1 parent 709f826 commit 604a138

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

Pagination.vue

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<template>
2+
<div class="container">
3+
<div class="row w-100 m-0">
4+
<div class="col col-12 d-block text-center p-0 py-5 pagination">
5+
<template v-if="pagination_data.current_page === 1">
6+
<span class="prev page-numbers disabled" aria-disabled="true"><i class="fa fa-caret-left"></i></span>
7+
</template>
8+
<template v-else>
9+
<a class="prev page-numbers" v-on:click.prevent="goto(pagination_data.current_page - 1)"><i class="fa fa-caret-left"></i></a>
10+
</template>
11+
12+
<template v-for="n in pagination_data.last_page">
13+
<template v-if="pagination_data.current_page === n">
14+
<a class="page-numbers current" v-html="n"></a>
15+
</template>
16+
<template v-else>
17+
<template v-if="((
18+
(n < (pagination_data.current_page + 3) && n <= 6 && (pagination_data.current_page <= 4)) || (n > (pagination_data.last_page - 1))
19+
) || (
20+
(n > (pagination_data.current_page - 3) && n > (pagination_data.last_page - 6) && (pagination_data.current_page > (pagination_data.last_page - 4))) || (n === 1)
21+
)) || (
22+
(n > (pagination_data.current_page - 3)) && n < (pagination_data.current_page + 3)
23+
)
24+
">
25+
<a class="page-numbers" v-on:click.prevent="goto(n)" v-html="n"></a>
26+
</template>
27+
<template v-else>
28+
<template v-if="(n === (pagination_data.current_page - 3)) || n === (pagination_data.current_page + 3)">
29+
<span class="page-numbers dots">…</span>
30+
</template>
31+
</template>
32+
</template>
33+
</template>
34+
35+
<template v-if="pagination_data.current_page < pagination_data.last_page">
36+
<a class="next page-numbers" v-on:click.prevent="goto(pagination_data.current_page + 1)"><i class="fa fa-caret-right"></i></a>
37+
</template>
38+
<template v-else>
39+
<span class="next page-numbers disabled" aria-disabled="true"><i class="fa fa-caret-right"></i></span>
40+
</template>
41+
</div>
42+
</div>
43+
</div>
44+
</template>
45+
46+
<script>
47+
export default {
48+
name: 'pagination',
49+
props: [
50+
'pagination_data',
51+
'pagination_goto'
52+
],
53+
watch: {
54+
pagination_data: function(){
55+
if(typeof this.pagination_data.current_page === 'number'){
56+
this.$emit('update:pagination_goto', this.pagination_data.current_page);
57+
} else {
58+
this.$emit('update:pagination_goto', false);
59+
}
60+
}
61+
},
62+
methods: {
63+
goto(page){
64+
this.$emit('update:pagination_goto', page);
65+
}
66+
}
67+
}
68+
</script>

0 commit comments

Comments
 (0)