123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <template>
- <el-tree-v2 :data="data" :props="props" :height="208" />
- </template>
- <script lang="ts" setup>
- interface Tree {
- id: string
- label: string
- children?: Tree[]
- }
- const getKey = (prefix: string, id: number) => {
- return `${prefix}-${id}`
- }
- const createData = (
- maxDeep: number,
- maxChildren: number,
- minNodesNumber: number,
- deep = 1,
- key = 'node'
- ): Tree[] => {
- let id = 0
- return Array.from({ length: minNodesNumber })
- .fill(deep)
- .map(() => {
- const childrenNumber =
- deep === maxDeep ? 0 : Math.round(Math.random() * maxChildren)
- const nodeKey = getKey(key, ++id)
- return {
- id: nodeKey,
- label: nodeKey,
- children: childrenNumber
- ? createData(maxDeep, maxChildren, childrenNumber, deep + 1, nodeKey)
- : undefined,
- }
- })
- }
- const props = {
- value: 'id',
- label: 'label',
- children: 'children',
- }
- const data = createData(4, 30, 40)
- </script>
|