more-elements.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <div class="flex items-center mb-4">
  3. <el-radio-group v-model="small" class="mr-4">
  4. <el-radio-button :label="false">default</el-radio-button>
  5. <el-radio-button :label="true">small</el-radio-button>
  6. </el-radio-group>
  7. <div>
  8. background:
  9. <el-switch v-model="background" class="ml-2" />
  10. </div>
  11. <div class="ml-4">disabled: <el-switch v-model="disabled" class="ml-2" /></div>
  12. </div>
  13. <hr class="my-4" />
  14. <div class="demo-pagination-block">
  15. <div class="demonstration">Total item count</div>
  16. <el-pagination
  17. v-model:currentPage="currentPage1"
  18. :page-size="100"
  19. :small="small"
  20. :disabled="disabled"
  21. :background="background"
  22. layout="total, prev, pager, next"
  23. :total="1000"
  24. @size-change="handleSizeChange"
  25. @current-change="handleCurrentChange"
  26. />
  27. </div>
  28. <div class="demo-pagination-block">
  29. <div class="demonstration">Change page size</div>
  30. <el-pagination
  31. v-model:currentPage="currentPage2"
  32. v-model:page-size="pageSize2"
  33. :page-sizes="[100, 200, 300, 400]"
  34. :small="small"
  35. :disabled="disabled"
  36. :background="background"
  37. layout="sizes, prev, pager, next"
  38. :total="1000"
  39. @size-change="handleSizeChange"
  40. @current-change="handleCurrentChange"
  41. />
  42. </div>
  43. <div class="demo-pagination-block">
  44. <div class="demonstration">Jump to</div>
  45. <el-pagination
  46. v-model:currentPage="currentPage3"
  47. v-model:page-size="pageSize3"
  48. :small="small"
  49. :disabled="disabled"
  50. :background="background"
  51. layout="prev, pager, next, jumper"
  52. :total="1000"
  53. @size-change="handleSizeChange"
  54. @current-change="handleCurrentChange"
  55. />
  56. </div>
  57. <div class="demo-pagination-block">
  58. <div class="demonstration">All combined</div>
  59. <el-pagination
  60. v-model:currentPage="currentPage4"
  61. v-model:page-size="pageSize4"
  62. :page-sizes="[100, 200, 300, 400]"
  63. :small="small"
  64. :disabled="disabled"
  65. :background="background"
  66. layout="total, sizes, prev, pager, next, jumper"
  67. :total="400"
  68. @size-change="handleSizeChange"
  69. @current-change="handleCurrentChange"
  70. />
  71. </div>
  72. </template>
  73. <script lang="ts" setup>
  74. import { ref } from 'vue'
  75. const currentPage1 = ref(5)
  76. const currentPage2 = ref(5)
  77. const currentPage3 = ref(5)
  78. const currentPage4 = ref(4)
  79. const pageSize2 = ref(100)
  80. const pageSize3 = ref(100)
  81. const pageSize4 = ref(100)
  82. const small = ref(false)
  83. const background = ref(false)
  84. const disabled = ref(false)
  85. const handleSizeChange = (val: number) => {
  86. console.log(`${val} items per page`)
  87. }
  88. const handleCurrentChange = (val: number) => {
  89. console.log(`current page: ${val}`)
  90. }
  91. </script>
  92. <style scoped>
  93. .demo-pagination-block + .demo-pagination-block {
  94. margin-top: 10px;
  95. }
  96. .demo-pagination-block .demonstration {
  97. margin-bottom: 16px;
  98. }
  99. </style>