el-table 实现行拖拽排序

element ui 表格实现拖拽排序的功能,可以借助第三方插件Sortablejs来实现。

引入sortablejs

npm install sortablejs --save
组件中使用
import Sortable from 'sortablejs';

 <el-table ref="el-table":data="listData" row-key="id" style="width: 100%">
 </el-table>

注意:el-table一定要设置row-key,且row-key绑定的值唯一,不然拖拽可能乱序

 mounted() {
    this.initSort()
 },
 initSort() {
    const el = this.$refs['el-table'].$el.querySelector('.el-table__body-wrapper > table > tbody')
    let _this = this;
    const ops = {
       animation: 200, //动画时长
       handle: ".el-table__row", //可拖拽区域class
       //拖拽中事件
       onMove: ({ dragged, related }) => {
         const oldRow = _this.listData[dragged.rowIndex] //旧位置数据
         const newRow = _this.listData[related.rowIndex] //被拖拽的新数据
       },
       //拖拽结束事件
       onEnd: evt => {
         const curRow = _this.listData.splice(evt.oldIndex, 1)[0]
         _this.listData.splice(evt.newIndex, 0, curRow)
       }
    }
    Sortable.create(el, ops)
 },
相关推荐
小白学大数据4 分钟前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
qq_3901617712 分钟前
防抖函数--应用场景及示例
前端·javascript
3345543240 分钟前
element动态表头合并表格
开发语言·javascript·ecmascript
John.liu_Test42 分钟前
js下载excel示例demo
前端·javascript·excel
Yaml41 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事1 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶1 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
getaxiosluo1 小时前
react jsx基本语法,脚手架,父子传参,refs等详解
前端·vue.js·react.js·前端框架·hook·jsx
理想不理想v1 小时前
vue种ref跟reactive的区别?
前端·javascript·vue.js·webpack·前端框架·node.js·ecmascript
知孤云出岫1 小时前
web 渗透学习指南——初学者防入狱篇
前端·网络安全·渗透·web