basic.vue 999 B

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