当前位置: 首页 > news >正文

element-table 行的拖拽更改顺序(无需下载sortableJs

样例展示:vue+element+

通过阅读element文档我们发现element并不提供拖拽相关的api 

本博客通过element提供的行类名 注册函数  实现行与行的拖拽

1.设置el-table 的行样式类名

 这里是用的是 function  

            <el-table:data="outputData":row-class-name="activeClass"class="outputTable">.....</el-table>
    activeClass ({ row, rowIndex }) {if (rowIndex === this.newDragIndex) {return 'isDragBox active-drag'}return 'isDragBox'}

 2.在mounted获取到row元素

将row设置为的draggable:true拖拽的类型

注册监听函数:

dragstart-拖拽开始 获取拖拽的当前元素index

dragover-拖拽中途 获取拖拽停留的元素的new index

dragEnd-拖拽结束 将数据进行变化

this.$nextTick(() => {const dragBox = document.querySelectorAll('.outputTable .isDragBox')dragBox.forEach((i, idx) => {i.setAttribute('draggable', 'true')i.ondragstart = () => this.dragStartItem(idx)i.ondragover = () => this.dragOverItem(idx)i.ondragend = () => this.dragEndItem()})
})

3.dragEnd获取拖拽元素的数据data

将table表格数据去除掉原有的元素 ,将新元素添加到新坐标

    dragStartItem (idx) {this.dragIndex = idx},dragOverItem (index) {this.newDragIndex = index},dragEndItem () {const data = this.outputData[this.dragIndex]this.outputData.splice(this.dragIndex, 1)this.outputData.splice(this.newDragIndex, 0, data)},

 4.css美化 增加蓝色下划线

注意这里 z-index一定要加否则下划线无法超过table层级无法显示

.isDragBox{cursor: move;position: relative;
}
.active-drag{position: relative;&::after {content: '';position: absolute;top: -1px;left: 0;width: 100%;height: 2px;background-color: #4B79F3;z-index:99;}
}

http://www.lryc.cn/news/164748.html

相关文章:

  • Docker部署jenkins
  • 从0到1学会Git(第三部分):Git的远程仓库链接与操作
  • 虚拟机Ubuntu操作系统常用终端命令(1)(详细解释+详细演示)
  • redis实战-redis实现异步秒杀优化
  • Python爬虫-IP隐藏技术与代理爬取
  • 二刷力扣--链表
  • 返回值加const ,为了不拷贝得到成员的值,但被赋值的左值也要const
  • 本地如何使用HTTPS进行调试
  • 观察者模式:对象之间的订阅机制
  • 【1462. 课程表 IV】
  • Kerberos 身份验证
  • R语言贝叶斯METROPOLIS-HASTINGS GIBBS 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间...
  • 通付盾入选2023年度“上市苗圃工程”重点企业
  • SpringMVC之文件上传下载
  • 嵌入式IDE(2):KEIL中SCF分散加载链接文件详解和实例分析
  • Linux防火墙常用操作及端口开放
  • [JAVAee]Linux上的javax.mail报错
  • 开学季|校园迎新哪家强?VR全景来导航
  • el-checkbox-group限制勾选数量
  • 【JavaScript】WebAPI入门到实战
  • 奥康的高尔夫鞋,圈不住投资者的心
  • vue2配置环境变量并且nginx运行成功
  • Java+Swing形成GUI图像界面
  • 编辑距离 -- 动规
  • douyin【商品抢购js脚本】
  • 常见Web安全技术总结!474页Web安全从入门到精通(附PDF)
  • Prometheus 监控指南:如何可靠地记录数字时间序列数据
  • rsync远程同步+inotify监控
  • 【面试经典150 | 数组】移除元素
  • 玩转Mysql系列 - 第21篇:什么是索引?