pages.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <div id="pagination">
  3. <el-row type="flex" align="middle" style="padding-top:1rem">
  4. <el-col :span="24" :style="`text-align:${position};`">
  5. <p>
  6. <span class="newpage">
  7. 跟帖<span class="gentie">{{ total }}</span></span
  8. >
  9. <span
  10. ><el-pagination
  11. background
  12. layout="prev, pager, next"
  13. :total="total"
  14. :page-size="limit"
  15. :current-page.sync="currentPage"
  16. @current-change="changePage"
  17. >
  18. </el-pagination
  19. ></span>
  20. </p>
  21. <!--
  22. :page-sizes="[5, 10, 15, 20, 50, 100]"
  23. @size-change="sizeChange"
  24. -->
  25. </el-col>
  26. </el-row>
  27. </div>
  28. </template>
  29. <script>
  30. import _ from 'lodash';
  31. export default {
  32. name: 'pagination',
  33. props: {
  34. position: { type: String, default: 'right' },
  35. total: { type: Number, default: 0 },
  36. limit: { type: Number, default: 10 },
  37. },
  38. components: {},
  39. data: () => {
  40. return {
  41. currentPage: 1,
  42. };
  43. },
  44. created() {},
  45. methods: {
  46. changePage(page) {
  47. this.$emit('query', { skip: (page - 1) * this.limit, limit: this.limit });
  48. },
  49. sizeChange(limit) {
  50. this.limit = limit;
  51. this.$emit('query', { skip: 0, limit: this.limit });
  52. },
  53. },
  54. };
  55. </script>
  56. <style lang="less" scoped>
  57. .newpage {
  58. width: 86%;
  59. float: left;
  60. }
  61. .gentie {
  62. color: red;
  63. font-size: 20px;
  64. }
  65. </style>