basic.vue 935 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <template>
  2. <el-table-v2
  3. :columns="columns"
  4. :data="data"
  5. :width="700"
  6. :height="400"
  7. fixed
  8. />
  9. </template>
  10. <script lang="ts" setup>
  11. const generateColumns = (length = 10, prefix = 'column-', props?: any) =>
  12. Array.from({ length }).map((_, columnIndex) => ({
  13. ...props,
  14. key: `${prefix}${columnIndex}`,
  15. dataKey: `${prefix}${columnIndex}`,
  16. title: `Column ${columnIndex}`,
  17. width: 150,
  18. }))
  19. const generateData = (
  20. columns: ReturnType<typeof generateColumns>,
  21. length = 200,
  22. prefix = 'row-'
  23. ) =>
  24. Array.from({ length }).map((_, rowIndex) => {
  25. return columns.reduce(
  26. (rowData, column, columnIndex) => {
  27. rowData[column.dataKey] = `Row ${rowIndex} - Col ${columnIndex}`
  28. return rowData
  29. },
  30. {
  31. id: `${prefix}${rowIndex}`,
  32. parentId: null,
  33. }
  34. )
  35. })
  36. const columns = generateColumns(10)
  37. const data = generateData(columns, 1000)
  38. </script>