您好,登錄后才能下訂單哦!
這篇文章給大家介紹vue中的el-table 拖拽排序功能怎么利用sortable 實現 ,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
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中的el-table 拖拽排序功能怎么利用sortable 實現 就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。