直接使用 

npm i -S vuedraggable 

页面使用

<template>
<div class="addProduct">
<el-dialog title="流程" :visible.sync="addTemplate" width="900px">
<div class="flex">
<div class="addTemplate-left">
<div @click="addType=false">完整三代</div>
<div @click="addType=false">完整三代</div>
<div @click="addType=false">完整三代</div>
<div @click="addType=true">+新增流程</div>
</div>
<div class="flex addTemplate-content">
<div class="addTemplate-content-left">
<div class="addTemplate-content-left-title">完整三代流程</div>
<div style="margin:0 15px 8px 15px;" v-if="addType">
<div style="padding:10px 0;">
<span class="colorRed">*</span>流程名称
</div>
<el-input placeholder="请输入流程名称" style="width:190px;"></el-input>
</div>
<draggable
v-model="fruit"
:options="dragOptions2"
:move="allow"
:clone="clone"
class="addTemplate-content-left-draggble"
:style="addType?'height:335px;':''"
>
<div
v-for="(element,index) in fruit"
:key="index"
class="draggable-name flex-justify-between"
>
<div>
<span class="draggable-name-border">{{index+1}}</span>
{{element}}
</div>
<i class="el-icon-close" @click="draggChange('fruit',index)"></i>
</div>
</draggable>
</div>
<div class="addTemplate-content-right">
<draggable
v-model="girl"
:options="dragOptions1"
class="flex addTemplate-content-right-list"
>
<div
v-for="(element,index) in girl"
:key="index"
class="draggable-name-right"
>{{element}}</div>
</draggable>
<div class="draggable-name-right">+新增流程</div>
</div>
</div>
</div> <span slot="footer" class="dialog-footer">
<el-button @click="addTemplate = false">取消</el-button>
<el-button type="primary" @click="addTemplateChange">保存</el-button>
</span>
</el-dialog>
</div>
</template> <script>
import draggable from "vuedraggable";
export default {
name: "addProduct",
data() {
return {
fruit: [
"我是一",
"我是二",
"我是三",
],
girl: ["你是一", "你是二", "你是三", "你是死"],
addTemplate: true,
flowIndex: 0,
dragOptions1: {
animation: 0,
group: {
name: "description",
pull: "clone",
put: false
},
ghostClass: "ghost"
},
dragOptions2: {
animation: 0,
group: "description"
}
};
},
components: {
draggable
}, methods: { clone(e) {
console.log(e);
},
allow(evt) {
// console.log(evt)
// console.log(evt.relatedContext)
// return (evt.draggedContext.element.name!== 'b')
}
}
};
</script>
<style scoped lang="scss">
@import "../../filters/css/all.css";
.addProduct {
.addTemplate-left {
width: 200px;
border: 1px solid #d6d6d6;
text-align: center;
> div {
padding: 10px 0;
}
}
.addTemplate-content {
.addTemplate-content-left {
width: 400px;
height: 480px;
background: #f4f4f4;
.addTemplate-content-left-title {
font-size: 16px;
font-weight: 700;
padding: 10px 15px;
}
.addTemplate-content-left-draggble {
margin: auto;
width: 280px;
height: 420px;
overflow-x: visible;
overflow-y: auto;
}
.addTemplate-content-left-draggble::-webkit-scrollbar {
display: none;
}
.draggable-name {
padding: 10px 10px;
background: #fff;
border: 1px dashed #d6d6d6;
width: 200px;
border-radius: 5px;
margin: 5px;
margin-right: 30px;
margin-left: 35px;
position: relative;
.draggable-name-border {
position: absolute;
left: -30px;
top: 8px;
color: rgb(0, 102, 255);
background: #fff;
z-index: 1002;
border: 1px solid rgb(0, 102, 255);
border-radius: 50%;
width: 20px;
height: 20px;
display: block;
line-height: 20px;
text-align: center;
}
.el-icon-close {
position: absolute;
right: -25px;
top: 8px;
z-index: 1002;
border-radius: 50%;
width: 20px;
height: 20px;
display: block;
line-height: 20px;
text-align: center;
}
}
}
.addTemplate-content-right {
width: 265px;
border: 1px solid #d6d6d6;
.addTemplate-content-right-list {
flex-wrap: wrap;
}
.draggable-name-right {
border: 1px dashed #d6d6d6;
padding: 10px 0;
width: 120px;
text-align: center;
margin: 5px;
border-radius: 5px;
}
}
}
}
</style>

  效果

录制效果有点卡顿 
 

vue 拖拽框架 draggable的更多相关文章

  1. vue拖拽组件开发

    vue拖拽组件开发 创建临时vue项目 先查看node和npm版本,怎么安装就不多多bb了 再安装vue-cli npm install vue-cli -g //全局安装 vue-cli 检测是否安 ...

  2. Vue拖拽组件

    vue开发公众号项目,***产品需要添加一个新的功能.拖拽功能.一听简单.百度上轮子挺多,直接拉一个过来用着就行.然鹅...兴奋之余,却失望至极.东西很多,没有一个能使得.你让我失望,那我就让你绝望. ...

  3. jquery UI 跟随学习笔记——拖拽(Draggable)

    引言 这周暂时没有任务下达,所以老大给我的任务就是熟悉jquery相关插件,我就先选择了jquery UI插件,以及jquery库学习. 我用了两天的时候熟悉Interactions模块中的Dragg ...

  4. Vue.Draggable:基于 Sortable.js 的 Vue 拖拽组件使用中遇到的问题

    Sortable.js 介绍 https://segmentfault.com/a/1190000008209715 项目中遇到的问题: A - 我需要在项目的拖拽组件中,使用背景 1 - 想到的第一 ...

  5. Vue 拖拽组件 vuedraggable 和 vue-dragging

    一.描述 之前用 vue 写过一个在线的多二维码生成服务,体验地址:https://postbird.gitee.io/vue-online-qrcode/ 后面发现二维码多了之后有时候想要排序,需要 ...

  6. vue拖拽插件(弹框拖拽)

    // =======拖拽 插件 cnpm install vuedraggableimport draggable from 'vuedraggable' <draggable v-model= ...

  7. Vue拖拽交换数据(非插件)

    HelloWorld.vue 文件 <template> <div class="hello"> <h1>{{ msg }}</h1> ...

  8. vue 拖拽移动(类似于iPhone虚拟home )

    vue 移动端 PC 兼容 元素 拖拽移动  效果演示 事件知识点 移动端 PC端 注释 touchstart mousedown 鼠标/手指按下事件 touchmove mousemove 鼠标/手 ...

  9. 前端vue拖拽

    工作上遇到的需求:页面上需要拖拽一个小方块div拷贝至保存的容器中. 一.可拖拽 那么我们需要对小方块div进行授权,设置draggable="true"允许其被拖动 二.定义拖拽 ...

随机推荐

  1. 使用Navicat for Oracle工具连接oracle出错:ORA-12737

    今天上网的时候偶然发现了一款oracle的客户端的图形化管理和开发工具,当看到这个界面的时候,感觉很舒服,便上网搜了一下这个工具,看百度百科之后感觉很出乎我的意料,这个产品对于许多的数据库竟都有支持, ...

  2. IP地址0.0.0.0表示什么

    参考RFC文档: 0.0.0.0/8 - Addresses in this block refer to source hosts on "this"network. Addre ...

  3. Mysql简单总结

    基于Mac OS X系统 MySQL的安装和配置 首先进入 MySQL 官网,选择免费的Community版:MySQL Community Server.MySQL 官网提供了tar.gz和dmg两 ...

  4. wxpython(2)--按钮,位图按钮,滑动块,微调控制器

    本文介绍按钮,位图按钮,滑动块,微调控制器**.. 按钮 基本按钮 创建一个按钮,绑定点击事件,点击后修改Label 123456789101112131415161718 import wx cla ...

  5. 在线选题系统完善篇(PHP)

    第一篇: 选题在线提交系统(html+JS+PHP) 这是当时根据需求做的一个简单的版本,只能适用于这一个场景,而且题目等一系列数据都不能改.然后结束后,我又对重新写了一个有后台管理的选题系统.相对于 ...

  6. AI:拿来主义——预训练网络(二)

    上一篇文章我们聊的是使用预训练网络中的一种方法,特征提取,今天我们讨论另外一种方法,微调模型,这也是迁移学习的一种方法. 微调模型 为什么需要微调模型?我们猜测和之前的实验,我们有这样的共识,数据量越 ...

  7. Nginx之反向代理配置(一)

    前文我们聊了下Nginx作为web服务器配置https.日志模块的常用配置.rewrite模块重写用户请求的url,回顾请参考https://www.cnblogs.com/qiuhom-1874/p ...

  8. python2.7.6安装easy_install (windows 64 环境)

    1.复制以下代码保存到easy_install.py文件中(文件名可随意命名)并将该文件放到python的安装路径中(如:D:\Python27) #!/usr/bin/env python &quo ...

  9. Mac中使用brew安装mysql

    若不考虑版本直接执行以下命令 brew install mysql 若要选择版本只要加上@版本即可,例如 brew install mysql@5.7 安装完后启动mysql mysql.server ...

  10. 前后端分离下的跨域CAS请求

    最重要的两点: ajax请求跨域的时候,默认不会携带cookie. 请求分为普通请求(HttpRequest)和Ajax请求(XMLHttpRequest) 先屡一下跨域CAS认证的流程: 前端发起a ...