树形拖拽功能封装

本文详细介绍了如何在Vue应用中利用vuedraggable库实现树形拖拽功能,重点讨论了处理最后一级节点操作的难点,以及如何配置组件以支持多级子节点展开。通过递归组件和事件处理,提供了实例代码供读者参考。
摘要由CSDN通过智能技术生成

树形拖拽功能封装# 树形拖拽功能封装

效果:

在这里插入图片描述

使用的组件:

"vuedraggable": "^4.1.0",
地址:https://github.com/SortableJS/Vue.Draggable

思想:组件进行递归

难点: 点击最后一个的时候,左侧线条的计算, 关闭最底层,再展开最外层,线条的计算

使用方法:

<BasicDraggable @click-action="clickAction" @click="handleClick" v-bind="draggableSetting" @ok="end">
            </BasicDraggable>
            
   // 拖拽组件配置
    let draggableSetting = reactive({
      canDrag: !getIsAuth('排序'),
      list: [],
      choiceId: 0,
      openMultiChildren: true,
      actions: Actions,
    });

可选配置:

export interface basicPropsType {
    list?: Array<any>,
    filed?: string,
    rowKey?: string,
    childrenField?: string,
    actions?: Array<any>,
    openMultiChildren?: boolean,
    canDrag?: Function | boolean,
    showMoreFn?: Function | boolean,
    onlyDragIcon?: boolean,
    dragTips?: string,
    isTree?: boolean,
    parentId?: number | string,
    showItemId?: boolean,
    canClickParent?: boolean,
    openFirstItem?: boolean,
    canClick?: boolean
}

获取点击的方法:

1.通过emit派发的事件

2.通过pinia状态获取

具体文件代码:
(拖拽组件)
https://gitee.com/huang_ting/function-demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值