1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > sortable vue 排序_vue 使用 sortable 实现 el-table 拖拽排序功能

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

时间:2020-07-01 18:52:35

相关推荐

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

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

npm 下载:

npm install sortablejs --save

引入:

import Sortable from "sortablejs";

代码:

拖 拽

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();

},

};

// 拖拽

.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;

}

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。