Browse Source

fixed bug

master
1549469775 3 years ago
parent
commit
32ad8aaea9
  1. 21
      packages/components/tree/node.vue
  2. 13
      packages/components/tree/tree.vue
  3. 1
      packages/playground/package.json
  4. 3
      packages/playground/src/dev/tree.vue
  5. 2
      pnpm-lock.yaml

21
packages/components/tree/node.vue

@ -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<{

13
packages/components/tree/tree.vue

@ -7,17 +7,6 @@
#default="{ data, deep, dataSourceKey, status }: { data: INiuTreeData, deep: number, dataSourceKey: INiuTreeKey, status: ENiuTreeStatus }">
<slot :data="data" :deep="deep" :dataSourceKey="dataSourceKey" :status="status"></slot>
</template>
<template #children="{datalist, level}">
<template v-for="(item, index) in datalist" :key="index">
<node @onDragstart="onDragstart" @onDragEnd="onDragEnd" @onDrop="onDrop" :data-source-key="dataSourceKey"
:data="item" :list="list" :level="level" @click="(item) => clickNode(item)">
<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>
</template>
</node>
</template>
</div>
@ -68,11 +57,13 @@ function clickNode(item: INiuTreeData) {
const emit = defineEmits<{
(e: 'change'): void
(e: 'itemDragstart'): void
}>()
const dataSourceKey = ref()
function onDragstart(key: INiuTreeKey) {
dataSourceKey.value = key
emit("itemDragstart")
}
function onDragEnd(key: INiuTreeKey) {
dataSourceKey.value = undefined

1
packages/playground/package.json

@ -14,6 +14,7 @@
"devDependencies": {
"@types/lodash": "^4.14.182",
"@vitejs/plugin-vue": "^2.3.3",
"@vue/runtime-core": "^3.2.37",
"typescript": "^4.5.4",
"unplugin-vue-components": "^0.19.5",
"vite": "^2.9.9",

3
packages/playground/src/dev/tree.vue

@ -9,7 +9,8 @@ const list = ref(convertTreeData([
children: [
{
key: 5,
title: "5"
title: "5",
children: []
},
]
},

2
pnpm-lock.yaml

@ -88,6 +88,7 @@ importers:
specifiers:
'@types/lodash': ^4.14.182
'@vitejs/plugin-vue': ^2.3.3
'@vue/runtime-core': ^3.2.37
lodash: ^4.17.21
typescript: ^4.5.4
unplugin-vue-components: ^0.19.5
@ -102,6 +103,7 @@ importers:
devDependencies:
'@types/lodash': 4.14.182
'@vitejs/plugin-vue': 2.3.3_vite@2.9.12+vue@3.2.37
'@vue/runtime-core': 3.2.37
typescript: 4.7.4
unplugin-vue-components: 0.19.6_vite@2.9.12+vue@3.2.37
vite: 2.9.12

Loading…
Cancel
Save