vue 使用 sortable 实现 el-table 拖拽排序功能


Posted in Vue.js onDecember 26, 2020

本文给大家介绍vue 使用 sortable 实现 el-table 拖拽排序功能,具体内容如下所示:

npm 下载:

npm install sortablejs --save

引入:

import Sortable from "sortablejs";

代码:

<template>
 <div class="table">
 <el-table ref="dragTable" :data="tableData" border :row-class-name="tableRowClassName">
 <el-table-column prop="date" label="日期"></el-table-column>
 <el-table-column prop="name" label="姓名"></el-table-column>
 <el-table-column prop="address" label="地址"></el-table-column>
 <el-table-column label="操作">
 <template>
 <el-button class="move" type="text" size="small">拖 拽</el-button>
 </template>
 </el-table-column>
 </el-table>
 </div>
</template>
<script>
import Sortable from "sortablejs";
export default {
 data() {
 return {
 tableData: [
 {
 id: "1",
 name: "text_1",
 date: "1111-11-11",
 address: "测试_1",
 },
 {
 id: "2",
 name: "text_2_不可拖拽",
 date: "2222-22-22",
 address: "测试_2_不可拖拽",
 disabled: true,
 },
 {
 id: "3",
 name: "text_3",
 date: "3333-33-33",
 address: "测试_3",
 },
 {
 id: "4",
 name: "text_4",
 date: "4444-44-44",
 address: "测试_4",
 },
 {
 id: "5",
 name: "text_5",
 date: "5555-55-55",
 address: "测试_5",
 },
 ],
 };
 },
 methods: {
 // 创建sortable实例
 initSortable() {
 // 获取表格row的父节点
 const ele = this.$refs.dragTable.$el.querySelector(
 ".el-table__body > tbody"
 );
 // 创建拖拽实例
 let dragTable = Sortable.create(ele, {
 animation: 150, //动画
 handle: ".move", //指定拖拽目标,点击此目标才可拖拽元素(此例中设置操作按钮拖拽)
 filter: ".disabled", //指定不可拖动的类名(el-table中可通过row-class-name设置行的class)
 dragClass: "dragClass", //设置拖拽样式类名
 ghostClass: "ghostClass", //设置拖拽停靠样式类名
 chosenClass: "chosenClass", //设置选中样式类名
 // 开始拖动事件
 onStart: () => {
 console.log("开始拖动");
 },
 // 结束拖动事件
 onEnd: (e) => {
 console.log(
 "结束拖动",
 `拖动前索引${e.oldIndex}---拖动后索引${e.newIndex}`
 );
 },
 });
 },
 // 设置表格row的class
 tableRowClassName({ row }) {
 if (row.disabled) {
 return "disabled";
 }
 return "";
 },
 },
 mounted() {
 this.initSortable();
 },
};
</script>
<style lang='scss'>
// 拖拽
.dragClass {
 background: rgba($color: #41c21a, $alpha: 0.5) !important;
}
// 停靠
.ghostClass {
 background: rgba($color: #6cacf5, $alpha: 0.5) !important;
}
// 选择
.chosenClass:hover > td {
 background: rgba($color: #f56c6c, $alpha: 0.5) !important;
}
</style>

到此这篇关于vue 使用 sortable 实现 el-table 拖拽排序功能的文章就介绍到这了,更多相关vue实现 el-table 拖拽排序内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
Vue实现点击当前行变色
Dec 14 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
在vue项目中封装echarts的步骤
Dec 25 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
vue使用watch监听属性变化
Apr 30 Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 Vue.js
在vue项目中封装echarts的步骤
Dec 25 #Vue.js
vue中封装axios并实现api接口的统一管理
Dec 25 #Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 #Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 #Vue.js
vue使用require.context实现动态注册路由
Dec 25 #Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 #Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 #Vue.js
You might like
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
js密码强度检测
2016/01/07 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python多线程同步实例教程
2019/08/11 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
四年级学生期末评语
2014/12/26 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python