vue3 elementui-plus table 拖拽排序
在Vue 3和Element Plus中实现表格的拖拽排序功能,你可以使用第三方库如vuedraggable
来简化这个过程。以下是一个简单的例子:
- 首先,安装
vuedraggable
:
npm install vuedraggable
- 在你的组件中使用
vuedraggable
:
<template>
<el-table :data="tableData" row-key="id" border>
<!-- 其他列定义 -->
<el-table-column label="操作">
<template #default="{ row, $index }">
<span>{{ $index + 1 }}</span>
</template>
</el-table-column>
</el-table>
<draggable v-model="tableData" item-key="id" @end="onDragEnd">
<template #item="{ element }">
<div class="draggable-item">
<!-- 这里可以自定义每一行的内容 -->
{{ element.name }}
</div>
</template>
</draggable>
</template>
<script setup>
import { ref } from 'vue';
import { ElTable, ElTableColumn } from 'element-plus';
import draggable from 'vuedraggable';
const tableData = ref([
{ id: 1, name: 'Item 1' },
{ id: 2, name: 'Item 2' },
{ id: 3, name: 'Item 3' },
// ...更多数据
]);
const onDragEnd = (event) => {
// 拖拽结束后的处理逻辑
console.log('拖拽结束', event);
};
</script>
<style>
.draggable-item {
cursor: move;
/* 其他样式 */
}
</style>
在上面的代码中,draggable
组件是vuedraggable
的一个Vue 3组件,它允许你拖拽表格行进行排序。你需要定义一个包含你想要排序的数据的数组,并将其传递给draggable
组件的v-model
。每个表格行都有一个唯一的row-key
,在这个例子中是id
。
当你拖拽表格行进行排序时,draggable
组件的end
事件会被触发,并调用onDragEnd
方法,你可以在这个方法中更新你的数据模型以反映新的排序。
评论已关闭