| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <template>
- <div :class="{ hidden: hidden }" class="pagination-container">
- <el-pagination
- :background="background"
- :current-page.sync="currentPage"
- :page-size.sync="pageSize"
- :layout="layout"
- :page-sizes="pageSizes"
- :total="total"
- v-bind="$attrs"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
- </div>
- </template>
- <script>
- export default {
- name: 'Pagination',
- props: {
- total: {
- required: true,
- type: Number
- },
- current: {
- type: Number,
- default: 1
- },
- size: {
- type: Number,
- default: 10
- },
- pageSizes: {
- type: Array,
- default() {
- return [10, 20, 30, 50];
- }
- },
- layout: {
- type: String,
- default: 'total, sizes, prev, pager, next, jumper'
- },
- background: {
- type: Boolean,
- default: true
- },
- autoScroll: {
- type: Boolean,
- default: true
- },
- hidden: {
- type: Boolean,
- default: false
- }
- },
- computed: {
- currentPage: {
- get() {
- return this.current;
- },
- set(val) {
- this.$emit('update:current', val);
- }
- },
- pageSize: {
- get() {
- return this.size;
- },
- set(val) {
- this.$emit('update:size', val);
- }
- }
- },
- methods: {
- handleSizeChange(val) {
- this.$emit('pagination', { current: this.currentPage, size: val });
- },
- handleCurrentChange(val) {
- this.$emit('pagination', { current: val, size: this.pageSize });
- }
- }
- };
- </script>
- <style scoped>
- .pagination-container {
- background: #fff;
- /*padding: 5px 5px;*/
- }
- .el-pagination {
- text-align: left !important;
- }
- .pagination-container.hidden {
- display: none;
- }
- </style>
|