index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div>
  3. <el-alert
  4. effect="dark"
  5. :closable="false"
  6. title="基于 Element 的 Table 组件进行二次封装,实现数据驱动,支持所有 Table 参数 -- 排序"
  7. type="info"
  8. style="margin-bottom: 20px"
  9. />
  10. <com-table
  11. ref="multipleTable"
  12. v-loading="loading"
  13. :columns="columns"
  14. :data="tableData"
  15. :default-sort="{ prop: 'date', order: 'descending' }"
  16. />
  17. </div>
  18. </template>
  19. <script setup lang="ts" name="SortTable">
  20. import { ref } from 'vue'
  21. const columns = [
  22. {
  23. field: 'date',
  24. label: '日期',
  25. sortable: true
  26. },
  27. {
  28. field: 'name',
  29. label: '姓名',
  30. sortable: true
  31. },
  32. {
  33. field: 'address',
  34. label: '地址'
  35. }
  36. ]
  37. const tableData = [
  38. {
  39. date: '2016-05-02',
  40. name: '王小虎',
  41. address: '上海市普陀区金沙江路 1518 弄'
  42. },
  43. {
  44. date: '2016-05-04',
  45. name: '王小虎',
  46. address: '上海市普陀区金沙江路 1517 弄'
  47. },
  48. {
  49. date: '2016-05-01',
  50. name: '王小虎',
  51. address: '上海市普陀区金沙江路 1519 弄'
  52. },
  53. {
  54. date: '2016-05-03',
  55. name: '王小虎',
  56. address: '上海市普陀区金沙江路 1516 弄'
  57. }
  58. ]
  59. const loading = ref<boolean>(true)
  60. setTimeout(() => {
  61. loading.value = false
  62. }, 1000)
  63. </script>
  64. <style></style>