vue3+element+sortablejs实现table表格 行列动态拖拽

vue3+element+sortablejs实现table动态拖拽

    • 1.第一步我们要安装sortablejs依赖
    • 2.在我们需要的组件中引入
    • 3.完整代码
    • 4.效果

1.第一步我们要安装sortablejs依赖

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

npm install sortablejs --save

或者

pnpm install sortablejs --save

或者

yarn add sortablejs --save

2.在我们需要的组件中引入

import Sortable from 'sortablejs'

3.完整代码

<template><div class="one dp-flex"><div style="flex: 1" class="ones"><el-table :data="tableData" class="tableOne"><el-table-columnv-for="(column, index) in tableColumns":key="index":label="column.label":prop="column.prop":index="index":row-index="null":sortable="true"@sort-change="handleSortChange"></el-table-column></el-table></div><div style="flex: 1; margin-left: 30px" class="twos"><el-table :data="tableData" class="tableTwo"><el-table-columnv-for="(column, index) in tableColumns":key="index":label="column.label":prop="column.prop":index="index":row-index="null":sortable="true"@sort-change="handleSortChange"></el-table-column></el-table></div></div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue';
import Sortable from 'sortablejs';let tableData = ref([{id: 1,name: '1',age: 18,},{id: 2,name: '2',age: 11,},{id: 3,name: '3',age: 13,},
]);
let tableColumns = ref([{ label: 'id', prop: 'id' },{ label: 'name', prop: 'name' },{ label: 'age', prop: 'age' },
]);
onMounted(() => {// new Sortable(example1, {// 	animation: 150,// 	ghostClass: 'blue-background-class',// });// const table = document.querySelector('.el-table__body-wrapper');const table1 = document.querySelector(`.ones .${'tableOne'} .el-table__body-wrapper tbody`);const table2 = document.querySelector(`.twos .${'tableTwo'} .el-table__body-wrapper tbody`);Sortable.create(table1, {group: {name: 'shared',pull: 'clone',put: false, // 不允许拖拽进这个列表},animation: 150,sort: false, // 设为false,禁止sort});Sortable.create(table2, {group: 'shared',animation: 150,onEnd: handleDragEnds,});
});
function handleSortChange({ oldIndex, newIndex, index, rowIndex }) {console.log('排序');// 处理列拖拽排序if (rowIndex === null) {// 处理表头列拖拽排序// 更新tableColumns的顺序} else {// 处理表格行列拖拽排序// 更新tableData的顺序}
}
function handleDragEnd() {// 拖拽结束后的处理console.log('拖拽结束后的处理');
}
function handleDragEnds() {// 拖拽结束后的处理console.log('拖拽结束后的处理');
}
</script>

4.效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21654.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】594. 最长和谐子序列

594. 最长和谐子序列&#xff08;简单&#xff09; 方法&#xff1a;哈希表计数 思路 题目规定的「和谐子序列」中的最值差值正好为 1&#xff0c;因而子序列排序后必然符合[a,a,.., a 1,a1]形式&#xff0c;即符合条件的和谐子序列长度为相邻两数(差值为 1)的出现次数之和。…

linux 基于debian_ubuntu AB系统适配(三)- overlayroot

Overlayroot Overlayroot是一个实用工具,允许您创建一个只读的根文件系统和一个可写的覆盖文件系统。这对于创建一个更安全和稳定的系统很有用,因为对系统所做的任何更改都将存储在覆盖文件系统中,可以很容易地丢弃或重置。 在Debian下,分离的系统在/userdata/rootfs_ove…

西门子S7300以太网模块labview软件介绍

借助捷米特ETH-S7300-JM01以太网模块&#xff0c;通过NetS7 OPC和NI OPC Servers&#xff0c;西门子S7-300与测控软件NI LABVIEW实现以太网通讯和监控。 功能简介 LabVIEW是一种程序开发环境&#xff0c;由美国国家仪器&#xff08;NzI&#xff09;公司研制开发&#xff0c;类…

Pycharm连接mysql问题

1. 本地服务 保证本地的服务启动且没有问题 2. 驱动程序 配置驱动程序&#xff0c;首先主机上要装有驱动 直接Google搜&#xff0c;下载就行了 然后选择你的驱动路径 导入数据库&#xff1a; 然后填入你的数据库用户名&#xff0c;密码&#xff0c;URL URL jdbc:mysql:…

自动化测试与持续集成方案

目录 前言&#xff1a; 传统接口测试 接口测试自动化 接口自动化的持续集成 前言&#xff1a; 自动化测试和持续集成是软件开发过程中非常重要的环节。自动化测试可以提高测试效率和准确性&#xff0c;而持续集成则可以确保代码的稳定性和可靠性。 传统接口测试 不知道别…

【数据分析 - 基础入门之pandas篇①】- pandas介绍

文章目录 前言一、pandas介绍二、pandas优势2.1 强大的数据结构支撑2.2 优点 三、pandas学习路线结语相关导读 前言 一、pandas介绍 pandas 是 Python 的 核心数据分析支持库 &#xff0c;提供了快速、灵活、明确的数据结构&#xff0c;旨在简单、直观地处理关系型、标记型数据…

【仲裁器】轮询仲裁round-robin,rr

起因&#xff1a;在多主单从的设计中&#xff0c;当多个源端同时发起传输请求时&#xff0c;需要仲裁器根据优先级来判断响应哪一个源端。轮询仲裁&#xff1a;各个源端优先级相同&#xff0c;当其同时发起请求时&#xff0c;依次进行响应。 电路图 代码 module rr_arb(input…

前端:运用html+css+js模仿京东上商品图片区域放大特效

前端:运用htmlcssjs模仿京东上商品图片区域放大特效 1. 前言2. 前端界面3. js实现鼠标移入效果4. 实现代码 1. 前言 最近在网页端浏览京东上的商品时&#xff0c;觉得上面的那张gif图片上实现的特效不错&#xff0c;于是自己打算使用htmlcssjs技术来实现一下上述特效效果&#…

【GitOps系列】K8s极简实战

文章目录 示例应用介绍部署应用到k8s 如何使用命名空间隔离团队及应用环境&#xff1f;如何为业务选择最适合的工作负载类型&#xff1f;如何解决服务发现问题&#xff1f;如何迁移应用配置&#xff1f;如何将集群的业务服务暴露外网访问&#xff1f;如何保障业务资源需求和自动…

ME GO小车

ME GO小车 ⚫ 体积小巧 ⚫ 集成多种传感器和执行器 ⚫ Mixly图形化编程 避障检测、自动巡线、灯光显示、 声音报警、自动测距、物联遥控等 ME GO小车——俯视图 ME GO小车——车底 ME GO CE 以上选自芯”向未来 元控智联挑战赛&#xff08;小学组&#xff09;赛事介绍资料二…

easy rule 学习记录

总体&#xff1a; 使用方面除了官网的wiki外&#xff0c;推荐阅读 作者&#xff1a;夜尽天明_ 链接&#xff1a;https://juejin.cn/post/7048917724126248967 来源&#xff1a;稀土掘金 非annotation 方式&#xff0c;执行不是jdk proxy模式annotation 方式&#xff0c;和ru…

家政小程序开发-H5+小程序

移动互联网的发展&#xff0c;微信小程序逐渐成为商家拓展线上业务的重要手段。家政服务作为日常生活中不可或缺的一部分&#xff0c;也开始尝试通过小程序来提高服务质量和效率。 下面是一篇关于家政小程序开发的H5小程序的文章&#xff0c;希望对您有所帮助。 家政服…