|
|
@ -33,8 +33,24 @@ |
|
|
|
]"></div> |
|
|
|
</div> |
|
|
|
<div class="ps-tree-sub-node" v-if="(opts.justOpen || data.isExpand) && data.children && data.children.length"> |
|
|
|
<slot name="children" :datalist="data.children" :level="level + 1" :status="status"> |
|
|
|
</slot> |
|
|
|
<template v-for="(item, index) in data.children" :key="item.key"> |
|
|
|
<node |
|
|
|
@onDragstart="(e: INiuTreeKey)=>emit('onDragstart', e)" |
|
|
|
@onDragend="(e: INiuTreeKey)=>emit('onDragend', e)" |
|
|
|
@onDrop="(e: INiuTreeKey, s?: ENiuTreeStatus)=>emit('onDrop', e, s)" |
|
|
|
@onDragover="(e: INiuTreeKey)=>emit('onDragover', e)" |
|
|
|
@onDragleave="(e: INiuTreeKey)=>emit('onDragleave', e)" |
|
|
|
@click="(e: INiuTreeData)=>emit('click', e)" |
|
|
|
:data-source-key="dataSourceKey" |
|
|
|
:data="item" |
|
|
|
:list="list" |
|
|
|
:level="level + 1" |
|
|
|
> |
|
|
|
<template #default="{data, deep, dataSourceKey, status}: {data: INiuTreeData, deep: number, dataSourceKey:INiuTreeKey, status:ENiuTreeStatus}"> |
|
|
|
<slot :data="data" :deep="deep" :dataSourceKey="dataSourceKey" :status="status"></slot> |
|
|
|
</template> |
|
|
|
</node> |
|
|
|
</template> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -43,7 +59,6 @@ |
|
|
|
import node from './node.vue' |
|
|
|
import { inject, ref, provide, useSlots } from 'vue' |
|
|
|
import { isChildOf } from './util' |
|
|
|
import TreeDrag from './tree-drag.vue'; |
|
|
|
import { ENiuTreeStatus, INiuTreeData, INiuTreeKey } from './type'; |
|
|
|
const props = withDefaults( |
|
|
|
defineProps<{ |
|
|
|