index.vue 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <script setup lang="ts">
  2. import { useColumns } from "./columns";
  3. const {
  4. loading,
  5. columns,
  6. dataList,
  7. select,
  8. hideVal,
  9. tableSize,
  10. pagination,
  11. loadingConfig,
  12. paginationAlign,
  13. onChange,
  14. onSizeChange,
  15. onCurrentChange
  16. } = useColumns();
  17. </script>
  18. <template>
  19. <div>
  20. <el-space class="float-right mb-4">
  21. <p class="text-sm">多选:</p>
  22. <el-radio-group v-model="select" size="small">
  23. <el-radio-button value="yes">是</el-radio-button>
  24. <el-radio-button value="no">否</el-radio-button>
  25. </el-radio-group>
  26. <el-divider direction="vertical" />
  27. <p class="text-sm">动态列:</p>
  28. <el-radio-group v-model="hideVal" size="small">
  29. <el-radio-button value="nohide">不隐藏</el-radio-button>
  30. <el-radio-button value="hideDate">隐藏日期</el-radio-button>
  31. <el-radio-button value="hideName">隐藏姓名</el-radio-button>
  32. <el-radio-button value="hideAddress">隐藏地址</el-radio-button>
  33. </el-radio-group>
  34. <el-divider direction="vertical" />
  35. <p class="text-sm">表格大小:</p>
  36. <el-radio-group v-model="tableSize" size="small">
  37. <el-radio-button value="large">large</el-radio-button>
  38. <el-radio-button value="default">default</el-radio-button>
  39. <el-radio-button value="small">small</el-radio-button>
  40. </el-radio-group>
  41. <el-divider direction="vertical" />
  42. <p class="text-sm">分页大小:</p>
  43. <el-radio-group v-model="pagination.size" size="small" @change="onChange">
  44. <el-radio-button value="large">large</el-radio-button>
  45. <el-radio-button value="default">default</el-radio-button>
  46. <el-radio-button value="small">small</el-radio-button>
  47. </el-radio-group>
  48. <el-divider direction="vertical" />
  49. <p class="text-sm">分页的对齐方式:</p>
  50. <el-radio-group v-model="paginationAlign" size="small">
  51. <el-radio-button value="right">right</el-radio-button>
  52. <el-radio-button value="center">center</el-radio-button>
  53. <el-radio-button value="left">left</el-radio-button>
  54. </el-radio-group>
  55. </el-space>
  56. <pure-table
  57. border
  58. row-key="id"
  59. alignWhole="center"
  60. showOverflowTooltip
  61. :size="tableSize as any"
  62. :loading="loading"
  63. :loading-config="loadingConfig"
  64. :height="tableSize === 'small' ? 352 : 440"
  65. :data="
  66. dataList.slice(
  67. (pagination.currentPage - 1) * pagination.pageSize,
  68. pagination.currentPage * pagination.pageSize
  69. )
  70. "
  71. :columns="columns"
  72. :pagination="pagination"
  73. @page-size-change="onSizeChange"
  74. @page-current-change="onCurrentChange"
  75. />
  76. </div>
  77. </template>