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 相关文章推荐
实现连缀调用的map方法(prototype)
Aug 05 Javascript
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
基于JavaScript 下namespace 功能的简单分析
Jul 05 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
Mar 05 Javascript
深入理解JavaScript 函数
Jun 06 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
JavaScript原生实现观察者模式的示例
Dec 15 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
Nov 05 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 Javascript
详解如何使用Node.js实现热重载页面
May 06 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
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
Python 获取项目根路径的代码
2019/09/27 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
小学岗位竞聘方案
2014/01/22 职场文书
应用英语专业自荐信
2014/01/26 职场文书
信仰心得体会
2014/09/05 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
四风查摆剖析材料
2014/10/10 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
演讲比赛主持词
2015/06/29 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers