项目开发中需要用到拖拽组件,因为前端技术框架是vue,这里就使用了vue的一款拖拽插件vue.draggable,一般基本的需求都能满足,这里使用了多个draggable嵌套,达到两级之前相互拖拽的功能。

以下是类似teambition的效果图片,最外层为一个draggable,可以左右拖动,然后每个块里面还有小块,小块组成一个draggable,可以上下拖动,也可以在大的块之间拖动。

这里说一下实现原理。

首先,要搞清楚draggable的api,这里提供以下博主自己发现的一个vue.draggable中文api地址vue.draggable中文文档(http://www.itxst.com/vue-draggable/tutorial.html),里面基本属性和方法都用讲到,有时间的可以去学习一下,要查看详细的说明可以git去看官方文档说明,官方文档(https://github.com/SortableJS/Vue.Draggable)。

这里用到了以下几个属性和事件,着重说明下:

  1. group:拖拽分组,多组之间相互拖拽,可以实现不同数组之间相互拖拽。比如group都为itxst的组之间可以相互拖动,本文例子中分别给两个draggable设置了不同的group属性,是防止大的被拖到小的块里面去
  2. list:作为值属性的替代,list是一个与拖放同步的数组。这里在二级draggable使用了该属性,因为两个draggable用到了同一数据源,二级draggable中用list替代v-model

  3. animation:通过animation属性设置vue.draggable过渡效果,这样拖动时过渡位置就不会显的太生硬。

  4. disable: 通过disabled属性实现开启或禁用vue.draggable的拖拽效果。

  5. end():拖拽完成时的事件,如果想和后端实现动态更新,可以在这个方法里面和后端进行数据交互

然后就是示例demo了,这里一些代码段,样式什么的大家可以自由发挥

// 第一步,安装vue.draggable插件,yarn或者npm都可以
yarn add vuedraggable
npm i -S vuedraggable
// 第二步,使用插件
import draggable from 'vuedraggable'
<div><draggable class="list-group" group="task" v-model="projectList" @end="draggerEnd()"><div class="card-list-span" v-for="(process, index) in projectList" :key="process.opListId"><div class="span-header"><div class="header-title">{{ process.opListName }}</div></div><div class="span-body"><div class="body-list"><draggablegroup="project":list="process.taskVoList"@end="taskDraggerEnd()"><divclass="body-list-span"v-for="task in process.taskVoList":key="task.opTaskId"><div>{{ task.opTaskTitle }}</div><div>{{ task.opTaskHandler }}</div></div></draggable><div slot="footer"><Author author="yunygl-yylcgl-cjrw"><div class="add-task" @click="addTask(index)"><i class="el-icon-plus" style="margin-right: 5px;"></i>添加任务</div></Author></div></div></div></div></draggable>
</div>data() {return {projectList: [{id: "001",name: "流程一",taskList: [{id: "001001",taskTitle: "任务一"},{id: "001002",taskTitle: "任务二"}]},{id: "002",name: "流程二",taskList: [{id: "002001",taskTitle: "任务一"}]}]
}method: {// 添加任务addTask(index) {this.projectList[index].taskList.push( {id: "00200232",taskTitle: "任务二"})},
}

上面就是大致流程和部分代码。

小伙伴如果有疑问可以第一时间评论或留言,看到后也会及时回复的,有帮助的麻烦动动手指点个赞哟!

draggable拖拽组件使用相关推荐

  1. draggable拖拽组件的使用

    背景:左右两个数据栏,左侧为数据源,右侧为组建的目标数据.要实现左侧和右侧可以互相拖拽,但是左侧拖拽到右侧后源数据不变,右侧拖拽到左侧时,无论丢在左侧哪里都回到源数据原来的分组下:并且,左侧和右侧内部 ...

  2. VUE 拖拽组件 vue.draggable

    中文文档 https://www.itxst.com/vue-draggable/tutorial.html 安装 npm i -S vuedraggable 属性 属性名称 说明 group :gr ...

  3. vue.draggable 拖拽 ant 组件布局

    vue.draggable 拖拽 项目需求中,需要支持拖拽,即找到了vue.draggable,下面来说一下基本使用方法 1.首先需要安装它,官网地址 https://www.itxst.com/vu ...

  4. html 树形图可拖拽,HTML5拖拽API实现vue树形拖拽组件

    因业务场景需要一个可拖拽修改节点位置的树形组件,因此动手撸了一个,乘此机会摸了一把html5原生拖拽.近期有时间将核心部分代码抽出,简单说下实现方式. 1.树形结构-组件递归使用 树形结构非常简单,t ...

  5. Vue 实现拖拽模块(二)自定义拖拽组件位置

    上文介绍了 拖拽添加组件 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue自定义拖拽组件位置的简单实现,具体 ...

  6. vue3 draggable拖拽

    !!首先安装  vuedraggable npm i -S vuedraggable@next 一定要带上@next,不然就会报错 很恶心!使用建议看官网. 官网:vue.draggable中文文档 ...

  7. react拖拉流程图_react 拖拽组件 自由拖拽,垂直水平拖拽

    import React, { useEffect, useState } from "react" import { Tree, message } from 'antd'; / ...

  8. Vue 实现拖拽模块(三)自定义拖拽组件的样式

    上文介绍了 自定义拖拽组件位置 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue 自定义拖拽组件的样式,具体 ...

  9. 可视化拖拽组件库一些技术要点原理分析

    本文已获得原作者的独家授权,有想转载的朋友们可以在后台联系我申请开白哦! PS:欢迎掘友们向我投稿哦,被采用的文章还可以送你掘金精美周边! 本文主要对以下技术要点进行分析: 编辑器 自定义组件 拖拽 ...

最新文章

  1. pythonhistogram教程_OpenCV-Python 直方图-4:直方图反投影 | 二十九
  2. ConfigParser模块简明教程
  3. n9009 Android5.0内核,三星N9009(Galaxy Note 3 电信版 Android 5.0)刷Recovery教程
  4. 【Windows10下OpenCV 3.4.0 + Visual Studio 2015开发环境的配】
  5. Maven web项目创建
  6. oracle select 行数据_【赵强老师】什么是Oracle的数据字典?
  7. 【Fiddler篇】FreeHttp无限篡改http报文数据调试和mock服务
  8. Spring—使用类加载从配置文件中读取配置
  9. 拼多多否认对极兔快递“政策倾斜”;86版西游记“红孩儿”成中科院博士;AirTag遭破解 | 极客头条...
  10. 计算机网络(2.11)物理层- 宽带接入技术-光纤同轴混合网 (HFC网)
  11. Springboot AMR格式音频转换MP3
  12. 查询IP所在区段(C#)
  13. 测量电源纹波-正确测量方法
  14. JavaFX创建八边形
  15. 在线ASCII banner艺术字生成工具
  16. python中print横向打印
  17. caffe ssd 测试demo,检测单张图片
  18. Idea中maven项目热部署,这么好用的IDE怎么会没有热部署,别傻了
  19. FPGA项目承接|FPGA项目外包|FPGA项目研发
  20. 国内外表单工具软件参考

热门文章

  1. 任务三——决策树算法梳理
  2. C#毕业设计——基于C#+asp.net+cs的电子邮件收发系统设计与实现(毕业论文+程序源码)——电子邮件收发系统
  3. Vert.x Kotlin 协程
  4. 北京科技大学计算机专硕就业,二本考上北京科技大学计算机专硕
  5. php怎么QQ音乐无损解析?
  6. mysql 二进制日志恢复
  7. about 2pac's songs
  8. latex 约等于且大于 小于
  9. 小程序项目:基于微信小程序的大学生心理测试——计算机毕业设计
  10. 易语言软件文字修改核心源码