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 私有成员分析
Jan 13 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
javascript动态创建及删除元素的方法
Dec 22 Javascript
javascript的switch用法注意事项分析
Feb 02 Javascript
jQuery菜单插件superfish使用指南
Apr 21 Javascript
jQuery团购倒计时特效实现方法
May 07 Javascript
js实现类似MSN提示的页面效果代码分享
Aug 24 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
Sep 27 Javascript
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
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
PDO::quote讲解
2019/01/29 PHP
简单JS代码压缩器
2006/10/12 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
js实现星星打分效果
2020/07/05 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
详解Python迭代和迭代器
2016/03/28 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
领导失职检讨书
2014/02/24 职场文书
保护环境倡议书100字
2014/05/19 职场文书
摄影展策划方案
2014/06/02 职场文书
护士辞职信怎么写
2015/02/27 职场文书
债务纠纷起诉书
2015/05/20 职场文书
房产电话营销开场白
2015/05/29 职场文书
同意转租证明
2015/06/24 职场文书
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers