1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| <template>
| <div class="pagination-wrapper">
| <el-pagination
| :current-page="currentPage"
| :page-size="pageSize"
| :page-sizes="pageSizeOptions"
| :total="total"
| layout="sizes, prev, pager, next, total"
| background
| @size-change="handleSizeChange"
| @current-change="handlePageChange"
| />
| </div>
| </template>
|
| <script>
| export default {
| name: 'Pagination',
| props: {
| total: {
| type: Number,
| default: 0
| },
| currentPage: {
| type: Number,
| default: 1
| },
| pageSize: {
| type: Number,
| default: 10
| },
| pageSizeOptions: {
| type: Array,
| default: () => [10, 20, 50, 100]
| }
| },
| methods: {
| handleSizeChange(val) {
| this.$emit('size-change', val);
| },
| handlePageChange(page) {
| this.$emit('page-change', page);
| }
| }
| };
| </script>
|
| <style lang="scss" scoped>
| ::v-deep .el-pagination {
| .btn-next,
| .btn-prev,
| .el-pager li {
| background: transparent !important;
| min-width: 36px !important;
| }
| .el-pager li:not(.disabled).active {
| background: linear-gradient(135deg, #2a6dfe 0%, #6b8cff 50%, #2a6dfe 100%) !important;
| border-radius: 6px;
| box-shadow: 0 1px 3px rgba(45, 111, 254, 0.3);
| color: #fff;
| font-weight: 600;
| text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
| }
| }
| </style>
|
|