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 相关文章推荐
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
详解Vue-cli代理解决跨域问题
Sep 27 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 Javascript
js array数组对象操作方法汇总
Mar 18 Javascript
Fetch超时设置与终止请求详解
May 18 Javascript
浅谈目前可以使用ES10的5个新特性
Jun 25 Javascript
微信小程序之数据绑定原理解析
Aug 14 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
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python实现3D地图可视化
2020/03/25 Python
美国电视购物:QVC
2017/02/06 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
银行实习生的自我评价
2013/12/09 职场文书
中式婚礼主持词
2014/03/13 职场文书
学校就业推荐信范文
2014/05/19 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
写给女朋友的保证书
2015/05/09 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python