vue3 - element-plus表格组件el-table实现鼠标拖曳排序功能,vue3 Table表格拖拽排序,表格每行使用鼠标拖动进行排序功能,表格拖拽排序实现(详细示例代码,一键复制开箱即用

本文介绍在Vue3中使用Element Plus的el-table组件,结合sortablejs插件,实现表格行的鼠标拖动排序功能。提供详细步骤、源代码示例,包括插件安装、方法封装、全局样式以及在页面中应用,同时适用于树形复杂表格的排序需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图

在vue3+elementPlus网站开发中,详细完成el-table表格的鼠标拖拽/拖曳/拖动排序,vue3使用element plus表格组件进行表格每行的拖动换位置排序功能(支持一键开启和关闭鼠标是否可拖动排序,代码易改造灵活),稍加改造可支持【树形复杂表格的排序】!

详细示例源代码,复制运行稍微改下就能用了。

在这里插入图片描述

准备开始

首先,

### 如何在 Element Plus 中使用 TypeScript 实现表格拖动功能 为了实现在 `Element Plus` 中使用 `TypeScript` 来创建具有可拖动列的表格,可以采用如下方法: #### 准备工作 确保项目已经安装并配置好 `Vue 3`, `TypeScript`, 和 `Element Plus`. 同引入 `SortableJS` 库来处理拖放逻辑。 #### 创建组件结构 定义一个新的 Vue 组件用于展示带有可拖动特性的表格。此部分代码展示了如何设置基本模板以及脚本标签内的初始化操作[^1]。 ```vue <template> <el-table :data="tableData" style="width: 100%"> <!-- 定义表头 --> <el-table-column v-for="(column, index) in columns" :key="index" :prop="column.prop" :label="column.label"> </el-table-column> </el-table> </template> <script lang="ts" setup> import { ref, onMounted } from &#39;vue&#39; // 引入我们封装的 表单拖拽函数 import { enableColumnDrop } from &#39;@/utils/sortable&#39; const tableData = [ // 初始化数据... ] const columns = ref([ { prop: &#39;date&#39;, label: &#39;日期&#39; }, { prop: &#39;name&#39;, label: &#39;姓名&#39; }, ]) onMounted(() => { nextTick().then(() => { const elTableHeaderWrapper = document.querySelector(&#39;.el-table__header-wrapper tr&#39;) if (elTableHeaderWrapper) { enableColumnDrop(elTableHeaderWrapper, columns.value) } }) }) </script> ``` 上述代码片段中,在 `<script>` 部分通过 `setup()` 方法导入必要的依赖项,并调用了自定义工具包中的 `enableColumnDrop` 函数以激活列之间的拖曳为。 #### 封装拖拽辅助函数 下面是一个简单的例子说明怎样编写这个帮助器函数 `enableColumnDrop`: ```typescript export function enableColumnDrop(element: HTMLElement, columnList: any[]) { new Sortable(element, { animation: 150, ghostClass: "sortable-ghost", chosenClass: "sortable-chosen", dragClass: "sortable-drag", onStart() {}, onEnd({ newIndex, oldIndex }) { if (newIndex !== undefined && oldIndex !== undefined) { const targetItem = columnList.splice(oldIndex, 1)[0]; columnList.splice(newIndex, 0, targetItem); } } }); } ``` 这段 JavaScript/TypeScript 脚本利用了 `Sortable.js` 提供的功能实现了当用户完成重新排列后更新视图模的能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十一猫咪爱养鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值