index.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. v-loading="loading"
  12. :columns="columns"
  13. :data="tableData"
  14. />
  15. </div>
  16. </template>
  17. <script lang="ts">
  18. import { defineComponent, ref } from 'vue'
  19. const tableData = [
  20. {
  21. date: '2016-05-02',
  22. name: '王小虎',
  23. address: '上海市普陀区金沙江路 1518 弄'
  24. }, {
  25. date: '2016-05-04',
  26. name: '王小虎',
  27. address: '上海市普陀区金沙江路 1517 弄'
  28. }, {
  29. date: '2016-05-01',
  30. name: '王小虎',
  31. address: '上海市普陀区金沙江路 1519 弄'
  32. }, {
  33. date: '2016-05-03',
  34. name: '王小虎',
  35. address: '上海市普陀区金沙江路 1516 弄'
  36. }
  37. ]
  38. export default defineComponent({
  39. // name: 'CustomIndex',
  40. setup() {
  41. const loading = ref<boolean>(true)
  42. setTimeout(() => {
  43. loading.value = false
  44. }, 1000)
  45. const columns = ref<any[]>([
  46. {
  47. field: 'index',
  48. type: 'index',
  49. index: (index: number) => {
  50. return index * 2
  51. }
  52. },
  53. {
  54. field: 'date',
  55. label: '日期'
  56. },
  57. {
  58. field: 'name',
  59. label: '姓名'
  60. },
  61. {
  62. field: 'address',
  63. label: '地址'
  64. }
  65. ])
  66. return {
  67. columns,
  68. tableData,
  69. loading
  70. }
  71. }
  72. })
  73. </script>
  74. <style>
  75. </style>