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 19 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
vue监听键盘事件的相关总结
Jan 29 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
vue组件冲突之引用另一个组件出现组件不显示的问题
Apr 13 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 14 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 fread()使用技巧
2010/01/22 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
php实现微信支付之现金红包
2018/05/30 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
jQuery操作cookie
2016/08/08 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
深入浅析Python代码规范性检测
2020/07/31 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
合作协议书范文
2014/08/20 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
一文带你探究MySQL中的NULL
2021/11/11 MySQL
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android