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
<template>
  <div class="pagination">
    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.page" :page-sizes="pageSizes" :page-size="page.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
    </el-pagination>
  </div>
</template>
 
<script>
export default {
  props: {
    total: {
      type: Number,
      default: () => { }
    },
    pageSizes: {
      type: Array,
      default: () => {
        return [5, 10, 20, 100]
      }
    }
  },
  data () {
    return {
      page: {
        page: 1,
        limit: 20
      }
    }
  },
 
  methods: {
    Page (val) {
      this.page.page = val
    },
    handleSizeChange (val) {
      this.page.limit = val
      this.$emit('pageChange', this.page)
    },
    handleCurrentChange (val) {
      this.page.page = val
      this.$emit('pageChange', this.page)
    }
  }
}
</script>
 
<style scoped lang="less">
.pagination {
  float: right;
  padding: 1% 4% 2% 0px;
}
::v-deep .el-pagination .el-select .el-input {
  width: 110px;
}
</style>