vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序

这篇具有很好参考价值的文章主要介绍了vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,安装Sortablejs插件

npm i sortablejs --save

或者 yarn add sortablejs 

2,引入

vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序

3,使用sortablejs

vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序

 我使用的组件库是ant design vue,

首先,获取表格的Dom元素,在Sortable构造函数中进行绑定

我主要使用的是Sortablejs 中的结束拖拽之后的onEnd 属性,因为是单表格的简单拖拽排序所以只用到了自带的参数对象evt的oldIndex和newIndex这两个属性,分别表示被拖拽的数据项拖拽前的下标和拖拽完成之后的下标。

onEnd回调函数中的主要逻辑就是根据被操作的数据项的新旧下标的大小来进行判断的

当oldIndex<newIndex时,说明是向下拖拽

之后的代码的核心思想是:

1,创建一个临时变量保存被拖拽的数据项 temp = tableData[oldIndex] 

2,将数组中索引为oldIndex+1~newIndex中的数据依次向前一位赋值

3,最后将临时变量temp对tableData[newIndex]进行赋值tableData[newIndex] = temp

当oldIndex>newIndex时,说明是向上拖拽

代码逻辑同上

1,创建一个临时变量保存被拖拽的数据项temp = tableData[oldIndex]

2,将数组中索引为newIndex~oldIndex-1的元素依次向后一位赋值

3,最后将临时变量temp对tableData[newIndex]进行赋值tableData[newIndex] = temp;

当做完这些操作之后只能保证表格中的数据项和数据下标是对着的,但是此时表格中的数据项之间还是乱序的

在写完拖拽操作之后还要调用组件库内置的排序方法,对表格序号进行排序,这样才能完成拖拽操作。

vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序

 文章来源地址https://www.toymoban.com/news/detail-504106.html

到了这里,关于vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2 element ui 的表格使用 sortablejs 拖拽列遇到的问题和解决方案

    项目使用 element ui 的表格实现拖动表头可改变列的宽度,又使用sortablejs实现表格的列可拖拽到其他列的位置,导致出现如下的一些问题: 1、某一列宽变大或变小后,只有当前列可拖拽,其他列无法拖拽。 解决方案:在列宽发生改变后,销毁当前拖拽实例,再重新创建拖拽

    2024年02月08日
    浏览(57)
  • vue3实现海康威视根据海康插件进行监控实时预览和回放功能

    因为我的文章已经写过基于vue实现海康web插件进行视频播放开箱即用文章,这个文章是利用 vite+vue3+js 进行编写的,大致内容跟vue2一样,拿过去能直接用。 至于我为什么要用js而不用ts,因为海康提供的三个脚本为js语言的,ts尝试过一次,我道行太浅,没搞明白。 这些代码是

    2024年02月05日
    浏览(95)
  • vue3+ts+element-plus 之使用node.js对接mysql进行表格数据展示

    * 初始化node 查看node是否安装 node -v 初始化命令 npm init 初始化配置解释如下: 完成后会有一个package.json文件 * 安装可能用到的依赖 根据需求安装,我这里需要对接mysql,安装依赖 ,我是一次性安装完,后边会直接使用,也可以边安装边使用。如下 安装成功如下: * 配置文件

    2024年02月15日
    浏览(51)
  • vue3 如何实现 表格内容无缝滚动,我又写了一堆冗余代码

    近期在开发可视化大屏项目,除去各种 echarts 图表和地图展示之外还有多个表格。现在来了一个需求,需要将大屏中的所有表格设置为内容无缝滚动。 本着程序员的七宗罪原则第一时间推脱了一下,但没推脱成功。 简单的在网上查了下适合我们项目的有两种方案,第一种是

    2024年02月09日
    浏览(50)
  • vue3使用vue-masonry插件实现瀑布流

    《Vue插件》瀑布流插件vue-masonry的使用与踩坑记录 参数: item-selector transition-duration column-width origin-left origin-top gutter 前言: 之前其实有分享过一篇纯CSS实现瀑布流的方法: https://oliver.blog.csdn.net/article/details/126450691,但纯CSS实现的方案都不是比较好的方案,总归有一些各式各样的

    2024年01月19日
    浏览(37)
  • 如何快速使用Vue3在electron项目开发chrome Devtools插件

    为了方便快速建立项目,我已经写好脚手架,直接clone项目,快速开发 点击快速进入源代码 拉取代码 安装依赖 运行项目 打包项目 打开chrome://extensions/,打开开发者模式,直接把打包产物拖到窗口即可 具体代码进入源代码 主要使用我另外开发的插件chrome-extension-ipc实现通讯

    2024年02月06日
    浏览(41)
  • vue3 使用 mitt 插件实现非父子组件传值

    介绍 : mitt 是一个 JavaScript 库,用于实现事件的订阅和发布 1、安装 2、新建 utils/eventBus.ts 文件 3、使用

    2024年02月09日
    浏览(49)
  • Vue3-element-plus表格中动态加载数据后再进行列排序

    直接上代码 1、表格定义 2、js 参考: https://element-plus.org/zh-CN/component/table.html#table-%E5%B1%9E%E6%80%A7 https://www.cnblogs.com/onesea/p/15702253.html

    2024年02月21日
    浏览(38)
  • Vue3+elementplus动态表格table实现

    描述 :使用el-table的时候,根据需求,能够实现由字段个数动态增加表格列,表格行数固定为3行。 实现效果 : 实现代码 : 总结 :如果需要控制行数,并且动态加载列数,故需要两个变量进行设置,这里采用的就是这个思想,能够实现需求效果。

    2024年03月15日
    浏览(63)
  • vue项目使用luckyexcel插件预览excel表格

    温馨提示 :需要用到luckysheet文件和luckyexcel插件,根据下面步骤一步一步操作会避免踩坑,比如我当时遇到了window.luckysheet is not defined控制台报红的问题。 (这也是上面提到的如果没有引入会报红window.luckysheet找不到的问题) public文件夹下的index.html里引入luckysheet的相关依赖

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包