| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | <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>import { scrollTo } from '@/utils/scroll-to'export default {  name: 'Pagination2',  props: {    total: {      required: true,      type: Number    },    page: {      type: Number,      default: 1    },    limit: {      type: Number,      default: 10    },    pageSizes: {      type: Array,      default() {        return [12, 24, 36, 48, 60]      }    },    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.page      },      set(val) {        this.$emit('update:page', val)      }    },    pageSize: {      get() {        return this.limit      },      set(val) {        this.$emit('update:limit', val)      }    }  },  methods: {    handleSizeChange(val) {      this.$emit('pagination', { page: this.currentPage, limit: val })      if (this.autoScroll) {        scrollTo(0, 800)      }    },    handleCurrentChange(val) {      this.$emit('pagination', { page: val, limit: this.pageSize })      if (this.autoScroll) {        scrollTo(0, 800)      }    }  }}</script><style scoped>.pagination-container {  background: #fff;  padding: 16px 16px;}.pagination-container.hidden {  display: none;}</style>
 |