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 相关文章推荐
a标签的href和onclick 的事件的区别介绍
Jul 26 Javascript
js获取URL的参数的方法(getQueryString)示例
Sep 29 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
把普通对象转换成json格式的对象的简单实例
Jul 04 Javascript
Node.js + Redis Sorted Set实现任务队列
Sep 19 Javascript
Node.js Sequelize如何实现数据库的读写分离
Oct 23 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
使用Vue实现图片上传的三种方式
Jul 17 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
Sep 03 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 Javascript
微信小程序实现购物车小功能
Dec 30 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
通过文字传递创建的图形按钮
2006/10/09 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP对象实例化单例方法
2017/01/19 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
载入进度条 效果
2006/07/08 Javascript
摘自百度的图片轮换效果代码
2007/11/19 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
python处理大数字的方法
2015/05/27 Python
Djang中静态文件配置方法
2015/07/30 Python
python运行时间的几种方法
2016/06/17 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
如何理解python对象
2020/06/21 Python
python中如何使用虚拟环境
2020/10/14 Python
如何使用Pytorch搭建模型
2020/10/26 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
公务员职业生涯规划书范文  
2014/01/19 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
销售内勤岗位职责
2015/02/10 职场文书
庆祝教师节活动总结
2015/03/23 职场文书