Vue利用draggable实现多选拖拽效果

前言

最近产品提出一个排序需求,希望能进行拖拽排序,我一想,vue2插件这么多,sortable.js、draggable分分钟实现了,但是还有一个需求希望能够实现多选拖拽,这个就有点麻烦,查询了许多资料,暂时没有发现能够多选的拖拽组件,如果自己写一个,既耗费时间,实现效果上必然没有draggable这种成熟轮子效果好,于是决定基于draggable做改进。

实现思路

我们知道draggable插件只要设置相同的group名字就能实现分组拖拽,如果我们渲染两个同名分组,控制第二个分组的显示与隐藏,鱼目混珠,就能实现简单的多选拖拽效果

Vue利用draggable实现多选拖拽效果_第1张图片

1.通过group="task"设置两个同名分组,同时利用draggable=".card"属性,控制class名称,禁止单选

  
        
          
{{ item.name }}
{{ item.name }}

2.通过v-show="show"控制第二个分组的隐藏与展示,同时对数据做处理,并且在拖拽结束后,要在分组一中找到分组二拖拽过来的初始元素删掉

    const findIndex = this.dataList.findIndex((item => item.name === '选中元素展示区'))
      this.dataList.splice(findIndex, 1)

Demo全部代码





Demo实现效果

Vue利用draggable实现多选拖拽效果_第2张图片

到此这篇关于Vue利用draggable实现多选拖拽效果的文章就介绍到这了,更多相关Vue draggable多选拖拽内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的