ant design vue2 table利用draggable进行表格行拖拽
时间: 2023-07-18 15:17:52 浏览: 158
【JavaScript源代码】Vue3 table表格组件的使用.docx
要在 Ant Design Vue 2 中实现表格行拖拽,你可以使用 `draggable` 组件来实现。以下是一个示例代码:
```vue
<template>
<a-table :columns="columns" :data-source="dataSource">
<template #body="{ row, index }">
<draggable v-model="dataSource" :options="{ group: 'table-rows' }" :element="'tr'" :move="handleMove">
<tr :class="{ 'dragging': dragIndex === index }">
<td>{{ row.name }}</td>
<td>{{ row.age }}</td>
<td>{{ row.address }}</td>
</tr>
</draggable>
</template>
</a-table>
</template>
<script>
import draggable from 'vuedraggable'
export default {
components: {
draggable
},
data() {
return {
dragIndex: -1,
columns: [
{
title: 'Name',
dataIndex: 'name'
},
{
title: 'Age',
dataIndex: 'age'
},
{
title: 'Address',
dataIndex: 'address'
}
],
dataSource: [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park'
},
{
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park'
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park'
}
]
}
},
methods: {
handleMove(event) {
if (event.draggedContext.index !== this.dragIndex) {
this.dragIndex = event.draggedContext.index
}
return true
}
}
}
</script>
```
在这个示例中,我们使用了 `draggable` 组件来包裹表格的行,然后设置了 `v-model` 来绑定表格数据源中的数据。我们还设置了 `options` 属性来设置拖拽行为的选项,包括 `group` 属性来设置分组名称为 `table-rows`。我们还设置了 `move` 方法来处理拖拽行为,并更新拖拽行的索引。最后,我们还设置了一个 `class` 属性来标记当前拖拽的行。
阅读全文