019Element-plus的el-tree功能预研1-重写样式
el-tree的官方文档
- https://element-plus.gitee.io/zh-CN/component/tree.html
初始化源代码示例
<template>
<el-tree
:allow-drop="allowDrop"
:allow-drag="allowDrag"
:data="data"
draggable
default-expand-all
node-key="id"
@node-drag-start="handleDragStart"
@node-drag-enter="handleDragEnter"
@node-drag-leave="handleDragLeave"
@node-drag-over="handleDragOver"
@node-drag-end="handleDragEnd"
@node-drop="handleDrop"
/>
</template>
<script lang="ts" setup>
import type Node from 'element-plus/es/components/tree/src/model/node'
import type {
DragEvents } from 'element-plus/es/components/tree/src/model/useDragNode'
import type {
DropType } from 'element-plus/es/components/tree/src/tree.type'
const handleDragStart = (node: Node, ev: DragEvents) => {
console.log('drag start', node)
}
const handleDragEnter = (
draggingNode: Node,
dropNode: Node,
ev: DragEvents
) => {
console.log('tree drag enter:', dropNode.label)
}
const handleDragLeave = (
draggingNode: Node,
dropNode: Node,
ev: DragEvents
) => {
console.log('tree drag leave:', dropNode.label)
}
const handleDragOver = (draggingNode: Node, dropNode: Node, ev: DragEvents) => {
console.log('tree drag over:', dropNode.label)
}
const handleDragEnd = (
draggingNode: Node,
dropNode: Node,
dropType: DropType,
ev: DragEvents
) => {
console.log('tree drag end:', dropNode && dropNode.label