1.安装 vuedraggable

npm i -S vuedraggable

2.在使用的组件,引入。sortablejs包含在vuedraggable

import Sortable from "sortablejs"

3.row-key 必须设置

    <div class="list">
<div class="f-j-b" style="padding-bottom: 10px;">
<div>数据列表</div>
</div>
<el-table :data="tableData" border row-key="id">
<el-table-column prop="name1" label="数据1" align="center" />
<el-table-column prop="name2" label="数据2" align="center" />
       <el-table-column prop="originalPrice" label="数据3" align="center" />
     </el-table>
    </div>

4.在setup()中编写拖拽的逻辑,创建一个Sortable的实例,将需要拖拽的元素给到Sortable实例,进行需要的配置,然后在拖拽结束的方法onEnd()中实现改变排序的逻辑

  // 表格行拖拽
const rowDrop = () => {
let tbody = document.querySelector(".el-table__body-wrapper tbody");
Sortable.create(tbody, {
group: { // 相同的组之间可以相互拖拽
name: "table",
pull: true,
put: true,
},
animation: 150, // ms, number 单位:ms,定义排序动画的时间
onAdd: function (e: any) {
// 拖拽时候添加有新的节点的时候发生该事件
console.log("onAdd.foo:", e);
},
onUpdate: function (e: any) {
// 拖拽更新节点位置发生该事件
console.log("onUpdate.foo:", e);
},
onRemove: function (e: any) {
// 删除拖拽节点的时候促发该事件
console.log("onRemove.foo:", e);
},
onStart: function (e: any) {
// 开始拖拽出发该函数
console.log("onStart.foo:", e);
},
onSort: function (e: any) {
// 发生排序发生该事件
console.log("onUpdate.foo:", e);
},
onEnd(e: any) {
// 结束拖拽
console.log("结束表格拖拽", e);
// 如果拖拽结束后顺序发生了变化,则对数据进行修改
if (e.oldIndex !== e.newIndex) {
moveTable(e.oldIndex, e.newIndex) // 排序后和后端的交互函数
}
},
});
}

 参考:https://www.itxst.com/vue-draggable/tutorial.html

    https://blog.csdn.net/weixin_40449665/article/details/126160894

使用vue3在element plus中在el-table中拖拽的更多相关文章

  1. 在基于ABP框架的前端项目Vue&Element项目中采用电子签名的处理

    在前面随笔介绍了<在基于ABP框架的前端项目Vue&Element项目中采用电子签章处理文件和打印处理>的处理,有的时候,我们在流程中或者一些文件签署的时候,需要签上自己的大名,一 ...

  2. 打不开 github 的方法与推荐基于Vue3与Element plus的后台管理系统

    一.打不开 github 的方法 1.打开本机 hosts 文件(C:\Windows\System32\drivers\etc) 2.然后在 hosts 文件里的末尾放入一下两个 IP 地址: # ...

  3. js 中使用el表达式 关键总结:在js中使用el表达式一定要使用双引号

    js 中使用el表达式 关键总结:在js中使用el表达式一定要加双引号 js控制中用到了el表达式,最开始源码如下: var selected = ${requestScope.xxxxForm.re ...

  4. 谈谈Backbone.js中的el

    小编最近开始接触backbone.js,这个曾经非常优秀的一款MVC前端框架,在学习的过程中,遇到下图的这样一个问题 下面上代码 小编的想法很简单,只是view了一个实例,然后在initalize中调 ...

  5. js文件中使用EL表达式的问题

    var str = '${str}' ; var str = '${obj.属性名}'; 只可以再jsp页面的<script></script>中使用,外部引入的js文件中不能 ...

  6. element框架中表格的筛选功能使用说明(转载)

    一.element框架中表格的筛选功能使用说明 转载:https://blog.csdn.net/liangxhblog/article/details/80513030 在element ui 框架 ...

  7. Element UI 中组件this.$message报错

    最近在做毕设的时候,用Element UI中的消息提示message一直报以下的错误: 展示的效果也不好看,没有图标什么的: 但我明明有在main.js引入了element-ui 呀,因为毕设时间很赶 ...

  8. jsp中的el表达式没有解析

    今天发现jsp中的el表达式没有解析,把解决的过程记录一下 在web.xml的web-app节点的版本改成2.4以上

  9. JS中输出EL表达式

    要在javascript中使用El表达式,需要在el表达式两端加上单引号或者双引号 <script type="text/javascript"> jQuery(doc ...

  10. 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute

    原文链接: ①EL表达式取Map,List值的总结 ②在jsp中使用el表达式通过键获得后台的一个map<Long,String>的值 ③在javascript中使用el表达式(有图有真相 ...

随机推荐

  1. SI24R2H_2.4GHz超低功耗无线发射与125KHZ接收一体芯片

    Si24R2H是一颗工作在2.4GHz ISM频段发射和125KHZ接收,专为超低功耗无线应用场景设计,集成嵌入式基带的无线收发单芯片.发射工作频率范围为2400MHz-2525MHz,共有125个1 ...

  2. vscode1.50配置python虚拟环境

    1.首先你需要   创建好虚拟环境,如果不会 可以先点击学习一下 https://www.cnblogs.com/shyern/p/11284127.html      (创建虚拟环境的博客) 2.打 ...

  3. vue 简单原理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 掌控安全学院SQL注入靶场延时注入

    第一关 第二关

  5. Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复)

    Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复) [故障描述]客户设备型号为IBM V7000存储,架构为AIX+oracle+V7000存储阵列柜,需要恢复的数据主要存放在阵 ...

  6. 读后笔记 -- Python 全栈测试开发 Chapter8:接口测试

    8.1 接口测试 1. 市场分布 UI(web.app)自动化:10% 接口自动化:20% 单元测试:70% -- 测开 2. 接口类型: 1)结构划分:模块间(系统间)的接口称为内部接口:系统与第三 ...

  7. Win11右键默认显示更多选项的设置

    怎么让Win11右键默认显示更多选项?有很多朋友不喜欢win11系统的右键菜单显示,经常需要多点一次"显示更多选项"才能看到想要的内容,大家想知道如何让win11右键菜单默认显示更 ...

  8. source insight c++ namespace 无法跳转解决方法

    source insight c++ namespace 无法跳转解决方法 2016年02月15日 11:47:35 暗小夜 阅读数:4460   勾选igore namespace declarat ...

  9. WPF中获取主窗口 MainWindow 实例,以及在其他窗口中获取 MainWinodw 中的控件

    var _mainWindow = Application.Current.Windows .Cast<Window>() .FirstOrDefault(window => win ...

  10. liunx设置QQ邮箱报警

    1.先安装一个软件包, 2.先登录电脑QQ邮箱->设置->账户->账户安全前两条选择开启,并生成授权码,授权码很重要很重要,千万不要泄露. 3.在liunx命令行输入  :vi /e ...