Browse Source

fixed bug

typings
npmrun 2 years ago
parent
commit
c14b0aadc3
  1. 3
      packages/components/tree/node.vue
  2. 19
      packages/components/tree/tree.vue
  3. 2
      packages/princess-ui/package.json

3
packages/components/tree/node.vue

@ -43,6 +43,7 @@
@onDragend="(e: INiuTreeKey) => emit('onDragend', e)" @onDragend="(e: INiuTreeKey) => emit('onDragend', e)"
@onDrop="(e: INiuTreeKey, s?: ENiuTreeStatus) => emit('onDrop', e, s)" @onDrop="(e: INiuTreeKey, s?: ENiuTreeStatus) => emit('onDrop', e, s)"
@onDragover="(e: INiuTreeKey) => emit('onDragover', e)" @onDragover="(e: INiuTreeKey) => emit('onDragover', e)"
@onDragoverSelf="() => emit('onDragoverSelf')"
@onDragleave="(e: INiuTreeKey) => emit('onDragleave', e)" @onDragleave="(e: INiuTreeKey) => emit('onDragleave', e)"
@expand="(e: INiuTreeData) => emit('expand', e)" @click="(e: INiuTreeData) => emit('click', e)" @expand="(e: INiuTreeData) => emit('expand', e)" @click="(e: INiuTreeData) => emit('click', e)"
:data-source-key="dataSourceKey" :data="item" :list="list" :level="level + 1"> :data-source-key="dataSourceKey" :data="item" :list="list" :level="level + 1">
@ -118,6 +119,7 @@ const emit = defineEmits<{
(e: 'onDragend', key: INiuTreeKey): void (e: 'onDragend', key: INiuTreeKey): void
(e: 'onDrop', key: INiuTreeKey, status?: ENiuTreeStatus): void (e: 'onDrop', key: INiuTreeKey, status?: ENiuTreeStatus): void
(e: 'onDragover', key: INiuTreeKey): void (e: 'onDragover', key: INiuTreeKey): void
(e: 'onDragoverSelf'): void
(e: 'onDragleave', key: INiuTreeKey): void (e: 'onDragleave', key: INiuTreeKey): void
}>() }>()
const draggable = ref(true) const draggable = ref(true)
@ -163,6 +165,7 @@ function onDrop(e: DragEvent) {
function onDragover(event: DragEvent) { function onDragover(event: DragEvent) {
event.preventDefault() event.preventDefault()
if (!props.dataSourceKey) return if (!props.dataSourceKey) return
emit('onDragoverSelf')
if (props.dataSourceKey === props.data.key) return if (props.dataSourceKey === props.data.key) return
if ( if (
props.dataSourceKey && props.dataSourceKey &&

19
packages/components/tree/tree.vue

@ -1,8 +1,8 @@
<template> <template>
<div class="ps-tree component" draggable="true" :style="{backgroundColor: isDrag?bg:''}" @dragover.prevent="onDragover2" <div class="ps-tree component" :style="{backgroundColor: isDrag?bg:''}" @dragover.prevent="onDragover2"
@dragleave.stop="onDragleave2" @drop.stop="onDrop2"> @dragleave.stop="onDragleave2" @drop.stop="onDrop2">
<template v-for="(item, index) in sortedList" :key="item.key"> <template v-for="(item, index) in sortedList" :key="item.key">
<node @onDragstart="onDragstart" @expand="onExpand" @onDragEnd="onDragEnd" @onDrop="onDrop" <node @onDragstart="onDragstart" @expand="onExpand" @onDragover="onDragover" @onDragoverSelf="onDragoverSelf" @onDragEnd="onDragEnd" @onDrop="onDrop"
:data-source-key="dataSourceKey" :data="item" :list="sortedList" :level="level" :data-source-key="dataSourceKey" :data="item" :list="sortedList" :level="level"
@click="(item) => clickNode(item)" :bg="bg"> @click="(item) => clickNode(item)" :bg="bg">
<template <template
@ -136,8 +136,22 @@ function onDragstart(key: INiuTreeKey) {
dataSourceKey.value = key dataSourceKey.value = key
emit("itemDragstart") emit("itemDragstart")
} }
function onDragover(key: INiuTreeKey) {
if (!props.sort) return
if (!key) return
let data = findByKey(key, props.list)
if (isChild(key, props.list) && data.isFile) {
isDrag.value = true
}else{
isDrag.value = false
}
}
function onDragoverSelf() {
isDrag.value = false
}
function onDragEnd(key: INiuTreeKey) { function onDragEnd(key: INiuTreeKey) {
dataSourceKey.value = undefined dataSourceKey.value = undefined
isDrag.value = false
emit("itemDragend") emit("itemDragend")
} }
async function onDrop(key: INiuTreeKey, status?: ENiuTreeStatus) { async function onDrop(key: INiuTreeKey, status?: ENiuTreeStatus) {
@ -147,6 +161,7 @@ async function onDrop(key: INiuTreeKey, status?: ENiuTreeStatus) {
let targetData = findByKey(key, props.list) let targetData = findByKey(key, props.list)
const sourceKey = dataSourceKey.value; const sourceKey = dataSourceKey.value;
dataSourceKey.value = undefined dataSourceKey.value = undefined
isDrag.value = false
switch (status) { switch (status) {
case ENiuTreeStatus.DragInner: case ENiuTreeStatus.DragInner:
const parentData = findByKeyParent(key, props.list) const parentData = findByKeyParent(key, props.list)

2
packages/princess-ui/package.json

@ -1,6 +1,6 @@
{ {
"name": "princess-ui", "name": "princess-ui",
"version": "0.0.8-beta.14", "version": "0.0.8-beta.16",
"description": "a vue3 ui, just for personal use", "description": "a vue3 ui, just for personal use",
"scripts": { "scripts": {
"build": "tsc ./PrincessResolver.ts --skipLibCheck --esModuleInterop" "build": "tsc ./PrincessResolver.ts --skipLibCheck --esModuleInterop"

Loading…
Cancel
Save