vue 拖拽框架 draggable
直接使用
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的更多相关文章
- vue拖拽组件开发
vue拖拽组件开发 创建临时vue项目 先查看node和npm版本,怎么安装就不多多bb了 再安装vue-cli npm install vue-cli -g //全局安装 vue-cli 检测是否安 ...
- Vue拖拽组件
vue开发公众号项目,***产品需要添加一个新的功能.拖拽功能.一听简单.百度上轮子挺多,直接拉一个过来用着就行.然鹅...兴奋之余,却失望至极.东西很多,没有一个能使得.你让我失望,那我就让你绝望. ...
- jquery UI 跟随学习笔记——拖拽(Draggable)
引言 这周暂时没有任务下达,所以老大给我的任务就是熟悉jquery相关插件,我就先选择了jquery UI插件,以及jquery库学习. 我用了两天的时候熟悉Interactions模块中的Dragg ...
- Vue.Draggable:基于 Sortable.js 的 Vue 拖拽组件使用中遇到的问题
Sortable.js 介绍 https://segmentfault.com/a/1190000008209715 项目中遇到的问题: A - 我需要在项目的拖拽组件中,使用背景 1 - 想到的第一 ...
- Vue 拖拽组件 vuedraggable 和 vue-dragging
一.描述 之前用 vue 写过一个在线的多二维码生成服务,体验地址:https://postbird.gitee.io/vue-online-qrcode/ 后面发现二维码多了之后有时候想要排序,需要 ...
- vue拖拽插件(弹框拖拽)
// =======拖拽 插件 cnpm install vuedraggableimport draggable from 'vuedraggable' <draggable v-model= ...
- Vue拖拽交换数据(非插件)
HelloWorld.vue 文件 <template> <div class="hello"> <h1>{{ msg }}</h1> ...
- vue 拖拽移动(类似于iPhone虚拟home )
vue 移动端 PC 兼容 元素 拖拽移动 效果演示 事件知识点 移动端 PC端 注释 touchstart mousedown 鼠标/手指按下事件 touchmove mousemove 鼠标/手 ...
- 前端vue拖拽
工作上遇到的需求:页面上需要拖拽一个小方块div拷贝至保存的容器中. 一.可拖拽 那么我们需要对小方块div进行授权,设置draggable="true"允许其被拖动 二.定义拖拽 ...
随机推荐
- 吴裕雄--天生自然KITTEN编程:躲迷藏
- BeWhatever
Hadoop Distributed File System:分布式文件系统. HDFS基于流数据模式访问和处理超大文件需求开发,具有高容错性,高可靠性,高可扩展性,多部署在低成本的硬件上.HDFS提 ...
- django--ajax的使用,应用
Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...
- windows7 64位系统下无法运行ipython
windows7 64位系统下无法运行ipython | Creator 导航 导航 博客 分类 标签 友链 关于 大专栏 windows7 64位系统下无法运行ipythontent-post L ...
- hihoCoder 1128 二分查找
Description Input and Output Codes 描述#1128 : 二分·二分查找 Description Nettle最近在玩<艦これ>,因此Nettle收集了很多 ...
- 浅谈了解JDBC
目录 前言 作用 JDBC的架构 步骤 JDBC常见的关键字解释 前言 Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.J ...
- 改进"尽最大努力交付"的服务
改进"尽最大努力交付"的服务 网络层的作用就是负责在不同的网段尽力转发数据包,但是负责中专数据包的路由器并不关心数据包的内容和优先顺序.而是先到达的数据包先处理,后到达的数据包排队 ...
- #2020.1.26笔记——springdatajpa
2020.1.26笔记--springdatajpa 使用jpa的步骤: 1. 导入maven坐标 <?xml version="1.0" encoding="UT ...
- python 临时文件
1. TemporaryFile 临时文件 TemporaryFile 不在硬盘上的生成真正文件,而是写在内存中 from tempfile import TemporaryFile # , Name ...
- OpenCV3入门(十二)角点检测
1.角点介绍 角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测.图像匹配.视频跟踪.三维建模和目标识别等领域中,也称为特征点检测.在图像中角 ...