vuedraggable+element ui实现页面控件拖拽排序效果


Posted in Javascript onJuly 29, 2020

项目要实现一些控件的拖拽排序。从而找到了这款vuedraggable控件,供大家参考,具体内容如下

vuedraggable+element ui实现页面控件拖拽排序效果

如上图要实现这些控件的拖拽排序
这是拖拽后

vuedraggable+element ui实现页面控件拖拽排序效果

由于公司网络的原因,项目没有使用npm,都是使用的引入的js

<script type="text/javascript" src="lib/sortable/Sortable.min.js"></script>
<script type="text/javascript" src="lib/vuedraggable/vuedraggable.min.js"></script>

布局代码

<el-form :inline="true">
     <draggable v-model="filters" dragable="true" :move="getdata" @update="datadragEnd">
      <transition-group>
       <el-col :span="8" v-for="filter in filters" :key="filter.filterKey" style="margin-top: 5px">
        <el-form-item :label="filter.name" >
         <el-input v-model="filter.displayName" placeholder="请输入设置属性" @focus="openFilterDialog(filter)"></el-input>
        </el-form-item>
       </el-col>
      </transition-group>
     </draggable>
     <fitlerdialog v-bind:visable=dialogObjectVisible v-bind:avtivefilter=avtivefilter v-on:on-filter-data-change="onFilterDataChange" v-on:filterdialogcancle="handleDialogObjectcancle" v-on:filterdialogclose="handleDialogObjectClose"></fitlerdialog>
</el-form>

标签draggable放在你要拖拽的组件的最外层。

相关的处理代码

getdata(evt) {
 console.log(evt.draggedContext.filterKey)
 //这里evt.draggedContext后续的内容根据具体的定义变量而定
},
datadragEnd(evt) {
 console.log('拖动前的索引 :' + evt.oldIndex)
 console.log('拖动后的索引 :' + evt.newIndex);

 let filters = this.filters;
 for(let a=0;a<filters.length;a++){
  filters[a].index = a;
 }
 vm.report.filter = filters;

}

这里是因为我们需要将每个的顺序记录下来所以有业务代码。
每次移动后,可以通过v-model获取所有的控件,他们的顺序是当前排好的顺序,再进行index顺序记录。

evt为object,他的内容较多。

vuedraggable+element ui实现页面控件拖拽排序效果

draggedContext: 被拖拽元素的上下文

index:拖拽元素的指针
element: 拖拽数据本身
futureIndex: 拖动后的index

element如图:

vuedraggable+element ui实现页面控件拖拽排序效果

这是filters定义的数据本身也就是v-model内容。

relatedContext: 拖入区域的上下文

index: 目标元素的index
element:目标数据本身
list: 拖入的列表
component:目标组件

dragged:被拖拽元素的指向

大概就这些,功能较简单,但满足了要求就行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript一点特殊用法
May 28 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
Sep 09 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
Jan 14 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
开启BootStrap学习之旅
May 04 Javascript
基于jquery实现三级下拉菜单
May 10 Javascript
Javascript中常用的检测方法小结
Oct 08 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
Vue组件Draggable实现拖拽功能
Dec 01 #Javascript
BootStrap modal实现拖拽功能
Dec 01 #Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
Aug 21 #Javascript
BootStrap table实现表格行拖拽效果
Dec 01 #Javascript
一次Webpack配置文件的分离实战记录
Nov 30 #Javascript
基于Vue组件化的日期联动选择器功能的实现代码
Nov 30 #Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 #Javascript
You might like
php基础知识:类与对象(5) static
2006/12/13 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
双击滚屏-常用推荐
2006/11/29 Javascript
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
Vue精简版风格概述
2018/01/30 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
vue组件系列之TagsInput详解
2020/05/14 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
仓库文员岗位职责
2014/04/06 职场文书
需求分析说明书
2014/05/09 职场文书
代办委托书怎么写
2014/08/01 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
医学检验专业自荐信
2014/09/18 职场文书
2015年市场部工作总结
2015/04/30 职场文书
烈士陵园观后感
2015/06/08 职场文书
golang实现浏览器导出excel文件功能
2022/03/25 Golang