vue+element-ui+sortable.js实现表格拖拽功能
作者:麦兜:) 发布时间:2024-04-09 11:00:11
标签:vue,sortable.js,表格拖拽
本文实例为大家分享了vue+element-ui+sortable.js实现表格拖拽的具体代码,供大家参考,具体内容如下
效果如下:
1.vue使用cli创建项目就不说了,本人使用的是cli3.x版本
2.下载element-ui
npm i element-ui -S
3.引入element-ui,找到main.js,加入如下代码
// 导入element-ui,和全局使用element-ui样式
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
// 使用 ElementUI 组件库
Vue.use(ElementUI);
4.下载sortablejs,官网为http://www.sortablejs.com/index.html,可在里面看你需要的效果(配置项)
npm install sortablejs --save
5.效果图的全部代码
<template>
<div style="width:800px">
<el-table :data="tableData" border row-key="id" align="left">
<el-table-column
v-for="(item, index) in col"
:key="`col_${index}`"
:prop="dropCol[index].prop"
:label="item.label"
>
</el-table-column>
</el-table>
<!-- pre:json数据格式化展示 -->
<pre style="text-align: left">
{{ dropCol }}
</pre>
<hr />
<pre style="text-align: left">
{{ tableData }}
</pre>
</div>
</template>
<script>
import Sortable from "sortablejs";
export default {
data() {
return {
col: [
{
label: "日期",
prop: "date"
},
{
label: "姓名",
prop: "name"
},
{
label: "地址",
prop: "address"
}
],
dropCol: [
{
label: "日期",
prop: "date"
},
{
label: "姓名",
prop: "name"
},
{
label: "地址",
prop: "address"
}
],
tableData: [
{
id: "1",
date: "2019-12-23",
name: "王小虎1",
address: "上海市普陀区金沙江路 100 弄"
},
{
id: "2",
date: "2019-12-22",
name: "王小虎2",
address: "上海市普陀区金沙江路 200 弄"
},
{
id: "3",
date: "2019-12-21",
name: "王小虎3",
address: "上海市普陀区金沙江路 300 弄"
},
{
id: "4",
date: "2019-12-20",
name: "王小虎4",
address: "上海市普陀区金沙江路 400 弄"
}
]
};
},
mounted() {
this.rowDrop();
this.columnDrop();
},
methods: {
//行拖拽
rowDrop() {
const tbody = document.querySelector(".el-table__body-wrapper tbody");
const _this = this;
Sortable.create(tbody, {
// 官网上的配置项,加到这里面来,可以实现各种效果和功能
animation: 150,
ghostClass: "blue-background-class",
onEnd({ newIndex, oldIndex }) {
const currRow = _this.tableData.splice(oldIndex, 1)[0];
_this.tableData.splice(newIndex, 0, currRow);
}
});
},
//列拖拽
columnDrop() {
const wrapperTr = document.querySelector(".el-table__header-wrapper tr");
this.sortable = Sortable.create(wrapperTr, {
animation: 180,
delay: 0,
onEnd: evt => {
const oldItem = this.dropCol[evt.oldIndex];
this.dropCol.splice(evt.oldIndex, 1);
this.dropCol.splice(evt.newIndex, 0, oldItem);
}
});
}
}
};
</script>
<style scoped></style>
来源:https://blog.csdn.net/qq_40544291/article/details/103664668


猜你喜欢
- PhantomJS作为常用获取页面的工具之一,我们已经讲过页面测试、代码评估和捕获屏幕这几种使用的方式。当然最厉害的还是网页方面的捕捉,这里
- 本文实例讲述了python二分法查找算法实现方法。分享给大家供大家参考,具体如下:二分法查找二分查找又称折半查找,优点是比较次数少,查找速度
- 上一篇文章Python中schedule模块关于定时任务使用方法1 设置时间间隔随机数在有一些场景下,为了模拟比较自然的情景,需要采用随机的
- 正在看的ORACLE教程是:Oracle常见错误代码的分析与解决。在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于
- 纵观各大编程语言在 2017 年的发展情况,我们会发现涌现出诸如 Go、Swift 这类后起之秀,而其中最为耀眼的当属 Python。之所以
- <script> Function.prototype.$bind=function(object) {  
- SQL Server中事务日志的作用:持续记录数据库所有的事务和这些事务对数据库所做的修改;一旦数据库出现灾难事件,就需要事务日志来进行近期
- 刚才显示数据的时候遇到一个日期里面带T的问题,就是天数跟小时数之间出现了一个T。 表字段里面也没有这个T,后来查询度娘,是因为json处理的
- 任务详情给定一各地 2016 年 1 月和 2 月各个时间点的温度表格,表格预览见页面下方。数据表的第二列表示当前时间,数据表第一行第三列到
- 你是不是在学习python的时候在使用虚拟机系统进行开发,来回切换很是不方便,那么今天给大家推荐一个pycharm强大的功能。接下来我们利用
- 下面是python中的一个函数计算代码:loops=25000000from math import*a=range(1,loops)def
- 前言:数据库的操作越来越成为整个应用的性能瓶颈了,这点对于 Web 应用尤其明显。关于数据库的性能,这并不只是 DBA 才需要担心的事,而这
- Python 的 Queue 模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列Lifo
- Vue添加全局store在命令行中输入安装npm install --save vuex在main.js文件中引用store和在new Vu
- 目录事件类型事件处理方法处理键盘事件处理鼠标事件事件(Event)是 Pygame 的重要模块之一,它是构建整个游戏程序的核心,比如鼠标点击
- 在PHP中有两套正则表达式函数库。一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE
- 本文实例讲述了Python实现二叉树及遍历方法。分享给大家供大家参考,具体如下:介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找
- 这个错误是最新的错误哈,目前只在tensorflow上的github仓库上面有提出,所以你在百度上面找不到。是个tensorflow的bug
- 有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间
- 有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。gorou