uni-app 拖拽排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uni-app 拖拽排序相关的知识,希望对你有一定的参考价值。

参考技术A 这周做一个页面时,有一个人物排序,可以手动拖动更改排序位置的功能。在经过查找之后,找到了

sortable.js ,它可以用来实现这个拖拽的功能。

在查看 sortable.js 官方文档时,看到里面中有一个 onUpdate 事件,拖拽改变位置后,其中的返回值中,就有着起始index值和改变后的index值,通过这个,就可以更改数组的内容,来达到拖拽后改变位置的功能。

这里获取的节点是需要拖拽列表的父节点

因为在做的过程中,发现如果用操作dom节点的位置去修改item的顺序时,会产生bug,所以经过查找资料,终于在 Vue中使用Sortable 找到了问题所在,因此在修改item顺序前,应先修改其对于的节点。

先删除移动的节点,在将移动的节点插入到原有的节点中

注意:因为当从下向上拖动时,节点会增加一个,所以原有的索引值会少一位,所在当 newIndex < oldIndex 时,因使用 oldLi 节点的下一个节点

删除原有数组,并且存储数据

将数据添加到停留的数组索引值上

以上是关于uni-app 拖拽排序的主要内容,如果未能解决你的问题,请参考以下文章

vuedraggable拖拽任意组件并改变数据排序

Vue El-Tree 拖拽排序方法(通用)

zTree的拖拽排序

一款优雅的小程序拖拽排序组件实现

[DevExpress]GridControl拖拽行记录排序

[DevExpress]GridControl拖拽行记录排序