more-elements.vue 2.9 KB

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