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 相关文章推荐
js parsefloat parseint 转换函数
Jan 21 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
JS取得绝对路径的实现代码
Jan 16 Javascript
Javascript实现获取及设置光标位置的方法
Jul 21 Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
webpack-dev-server远程访问配置方法
Feb 22 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
Vue开发Html5微信公众号的步骤
Apr 11 Javascript
微信小程序 如何获取网络状态
Jul 26 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
Aug 19 Javascript
详解vue父子组件状态同步的最佳方式
Sep 10 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设计模式之注册树模式分析
2018/01/26 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python跨文件使用全局变量的实现
2020/11/17 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
学年自我鉴定范文
2013/10/01 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
个人综合鉴定材料
2014/05/23 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
公司保密管理制度
2015/08/04 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
Mybatis是这样防止sql注入的
2021/12/06 Java/Android
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技