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新手入门指导教程
Nov 18 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
vue3.0实现插件封装
Dec 14 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue实现随机验证码功能
Dec 29 Vue.js
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
如何在 Vue 表单中处理图片
Jan 26 Vue.js
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 Vue.js
vue实现倒计时功能
Mar 24 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 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面向对象分析设计的经验原则
2008/09/20 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
html5的localstorage详解
2017/05/09 HTML / CSS
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
文明礼仪倡议书
2015/04/28 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
HTML基本元素标签介绍
2022/02/28 HTML / CSS
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js