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 16 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue实现在data里引入相对路径
Jun 05 Vue.js
Vue Mint UI mt-swipe的使用方式
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
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
Python实现的端口扫描功能示例
2018/04/08 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
建议书怎么写
2014/03/12 职场文书
个人承诺书格式
2014/06/03 职场文书
小学家长学校培训材料
2014/08/24 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
失恋33天观后感
2015/06/11 职场文书
白银帝国观后感
2015/06/17 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
python3实现无权最短路径的方法
2021/05/12 Python