Sortable实现el-table拖拽
时间: 2023-07-17 20:04:04 浏览: 137
要实现 el-table 的拖拽排序,可以使用 Sortable.js 库。下面是一个示例代码,演示如何使用 Sortable.js 实现 el-table 的拖拽排序:
首先,在项目中安装 Sortable.js 库:
```bash
npm install sortablejs
```
然后,在你的 Vue 组件中,引入 Sortable.js 和 el-table 组件:
```javascript
import Sortable from 'sortablejs';
import { ElTable } from 'element-ui';
```
接下来,在 el-table 的外部容器上添加一个唯一的 id,并在 mounted 钩子中初始化 Sortable:
```html
<template>
<div id="sortable-container">
<el-table :data="tableData" ref="sortableTable">
<!-- 表格列定义 -->
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
// 表格数据
]
};
},
mounted() {
const container = document.getElementById('sortable-container');
const table = this.$refs.sortableTable.$el.querySelector('.el-table__body-wrapper tbody');
Sortable.create(table, {
animation: 150,
onEnd: ({ oldIndex, newIndex }) => {
const movedItem = this.tableData.splice(oldIndex, 1)[0];
this.tableData.splice(newIndex, 0, movedItem);
}
});
}
};
</script>
```
在上述代码中,我们给 el-table 的外部容器添加了一个 id(这里为 "sortable-container"),然后在 mounted 钩子中,通过 Sortable.create() 方法初始化了拖拽功能。在 onEnd
阅读全文