• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

sortable+element 实现表格行拖拽的方法示例

vue 搞代码 4年前 (2022-01-08) 28次浏览 已收录 0个评论

这篇文章主要介绍了sortable+element 实现表格行拖拽的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

背景

1、vue项目中的表格需要实现行拖拽功能

2、表格使用element组件库中el-table

方案介绍

Sortable.js

介绍:Sortable.js是一款轻量级的拖放排序列表的js插件

引用自官方文档:No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.

参考地址: 

vuedraggable
介绍:基于Sortable.js的vue组件,用以实现拖拽功能

引用自官方文档:Vue drag-and-drop component based on Sortable.js

参考地址: https://github.com/SortableJS/Vue.Draggable

遇到的问题
在使用vuedraggable的过程中,发现必须用包裹拖动项的父级元素,但是element组件库对table进行封装,无法直接包裹拖动项(即tr)的父级元素

如果你的项目中,表格未使来@源gao*daima.com搞@代#码网用组件库,实现可以参考 https://www.gaodaima.com/article/162648.htm

解决方案

使用 sortable.js

步骤一: 安装

 npm install vuedraggable 

步骤二:引入

 import Sortable from 'sortablejs'; @Component({ components: { Sortable } }) 

步骤三: el-table 添加row-key属性

   

步骤四 : 将拖拽元素设置为要拖动项的父级元素

 mounted() { // 表格中需要实现行拖动,所以选中tr的父级元素 const table = document.querySelector('.el-table__body-wrapper tbody') const self = this Sortable.create(table, { onEnd({ newIndex, oldIndex }) { console.log(newIndex, oldIndex) const targetRow = self.resourceList.splice(oldIndex, 1)[0] self.resourceList.splice(newIndex, 0, targetRow) } }) } 

以上就是sortable+element 实现表格行拖拽的方法示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:sortable+element 实现表格行拖拽的方法示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址