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作用域与变量提升
Dec 09 Javascript
js中把JSON字符串转换成JSON对象最好的方法
Mar 21 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
Apr 06 Javascript
js实时获取并显示当前时间的方法
Jul 31 Javascript
ES6概念 Symbol.keyFor()方法
Dec 25 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
AngularJS实现使用路由切换视图的方法
Jan 24 Javascript
解析Vue.js中的组件
Feb 02 Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 Javascript
基于ts的动态接口数据配置的详解
Dec 18 Javascript
Element-UI+Vue模式使用总结
Jan 02 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多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
jQuery之排序组件的深入解析
2013/06/19 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
js倒计时抢购实例
2015/12/20 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
Pytorch之保存读取模型实例
2019/12/30 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
开办饭店创业计划书
2013/12/28 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
护士找工作求职信
2014/07/02 职场文书
大学生自荐书范文
2015/03/05 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书