elementUI Table組件實現拖拽效果


使用Element UI Table+Vue實現表格的拖拽。在GitHub上搜索了下發現Sortable這款插件挺不錯的,Star14000+,而且還支持Vue等多種主流的前端框架,可謂是十分的強大。最重要的原因是,完全不依賴JQ。

Vue.Draggable,Vue版本的Sortable。拖拽后能夠使數據模型同步,完美兼容Vue的數據視圖雙向綁定。

下面貼一下官方demo


看得出來真的很強大。數據實時的響應同步,結合Vue我們根本不需要對數據進行復雜的邏輯處理。

准備
安裝依賴
npm i -S vuedraggable
vuedraggable依賴 Sortable.js,所以下載了vuedraggable,我們便可以直接引入Sortable使用Sortable的特性。
vuedraggable是Sortable一種加強,實現組件化的思想,可以結合Vue,使用起來更方便。

Sortable使用

在這里我們還是使用一句Sortable的構建方式

import Sortable from 'sortablejs';

導入Sortable類,創建拖拽函數

drag() {
const el = document.querySelectorAll('.el-table__body-wrapper > table > tbody')[0];
Sortable.create(el, {
disabled: !this.enableDrag,
ghostClass: 'sortable-ghost',
setData: function(dataTransfer) {
dataTransfer.setData('Text', '');
},
onEnd: (evt) => {

}
});
},

我們在數據加載完成之后,就調用drag()方法來開啟拖拽功能。
介紹下幾個參數的作用:

el 代表我們要偵聽拖拽響應的dom對象

disabled 是否開啟拖拽

ghostClass 拖拽時可以給加上樣式

setData 回調HTML5 DragEvent的dataTransfer`對象,來設置顯示的數據

onEnd 結束拖拽后的回調函數,evt包含oldIndex,newIndex等一系列屬性。

完整屬性列表

演示

 

 

 

 

————————————————
版權聲明:本文為CSDN博主「唯一昵稱真難」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_26440803/article/details/83663511


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM