index.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <div v-if="pageInfo.rowTotal" class="crm_pagination">
  3. <div class="crm_page_total">
  4. <span>
  5. {{ $t('Page.total.item1') }}
  6. </span>
  7. <span>{{ pageInfo.rowTotal }}</span>
  8. <span>
  9. {{ $t('Page.total.item2') }}
  10. </span>
  11. </div>
  12. <el-pagination
  13. class="page"
  14. background
  15. layout="sizes, prev, pager, next"
  16. :page-sizes="[10, 20, 50, 100]"
  17. :page-size="pageInfo.row"
  18. :total="pageInfo.rowTotal"
  19. @current-change="handleCurrentChange"
  20. @size-change="handleSizeChange"
  21. />
  22. </div>
  23. </template>
  24. <script setup name="pagePagination">
  25. import { defineProps, defineEmits } from 'vue'
  26. const props = defineProps({
  27. // 数据信息
  28. pagerInfo: {
  29. type: Object,
  30. required: true,
  31. },
  32. })
  33. const emit = defineEmits(['current-change', 'size-change'])
  34. const pageInfo = props.pagerInfo
  35. const handleCurrentChange = (val) => {
  36. emit('current-change', val)
  37. }
  38. const handleSizeChange = (val) => {
  39. emit('size-change', val)
  40. }
  41. </script>
  42. <style scoped lang="scss">
  43. .crm_pagination {
  44. display: flex;
  45. align-items: center;
  46. //justify-content: space-between;
  47. margin-top: 16px;
  48. .crm_page_total {
  49. color: #606266;
  50. font-size: 14px;
  51. span {
  52. margin: 0 4px;
  53. }
  54. }
  55. .page {
  56. :deep(.el-pagination__total) {
  57. display: none;
  58. }
  59. }
  60. }
  61. </style>