问题:el-table组件 能实现行拖拽排序
npm i sortablejs 安装这个包
// row-key一定要绑定一个 根据这个进行排序的
<el-table
:data="tableData"
ref="table"
v-if="loading"
row-key="id"
>
</el-table>
import Sortable from "sortablejs";
data(){
return {
tableData: [
{ zhFieldName: "z", id: 1 },
{ zhFieldName: "b", id: 2 },
],
}
}
mounted() {
this.$nextTick(() => {
this.rowDrop();
});
},
//行-拖拽
rowDrop() {
// 百度了好多方法 很多动不了 都是这个属性获取的的元素不对 这个地方对应好
const tbody = this.$refs.table.$el.querySelector(
".el-table__body-wrapper > table > tbody"
);
const that = this;
Sortable.create(tbody, {
onEnd({ newIndex, oldIndex }) {
const currRow = that.tableData.splice(oldIndex, 1)[0];
that.tableData.splice(newIndex, 0, currRow);
// 获取排序后的数组
console.log("table", that.tableData);
},
});
},
版权声明:本文为2301_76607997原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。