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"允许其被拖动 二.定义拖拽 ...
随机推荐
- python 自动发送邮件遇到的问题
在学习自动化测试高级应用,根据内容写关于自动发送邮件出现了几个问题以及解决办法: 问题1: 代码写好之后,运行的时候,出现如下报错: SMTPAuthenticationError: (550, '\ ...
- String.slice
String.slice(start, end)start从字符串的哪个index开始截取 默认值0 如果为负值,则从字符串的尾部向前倒推indexend到从字符串的哪个index结束截取 默认值st ...
- 烧光百亿的共享单车行业,ofo和摩拜到底该不该合并?
共享经济领域可谓一地鸡毛,除了众多不靠谱的跟风项目外--共享马扎."老公寄存屋",更多的是不绝于耳的倒闭消息.尤其是在共享单车行业,暂且不提那些体量小的项目,单单是倒闭的大型共享单 ...
- TableViewComponent v2
Unity UGUI 自带的 ScrollView 控件不支持复用滚动内容,在数量大的情况下,界面容易卡顿 借鉴其他游戏控件,写了个可复用的滚动组件,扩展.优化了ScrollView TableVie ...
- Matlib’s lsqnonlin 和 scipy.optimize’s least_square
matlib's lsqnonlin 和 scipy.optimize's least_square 问题 有三个点 $A,B,C$ , 经过一个线性变换 $T$ , 变为了 $A',B',C'$ 三 ...
- 那些让程序员目瞪口呆的Bug
程序员一生与bug奋战,可谓是杀敌无数,见怪不怪了!在某知识社交平台中,一个"有哪些让程序员目瞪口呆的bug"的话题引来了6700多万的阅读,可见程序员们对一个话题的敏感度有多高. ...
- 关于PHPExcel的一些资料
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- Emacs key bindings for vim users
Emacs key bindings for vim users | Scarletsky 盒子 盒子 博客 分类 标签 关于 RSS 搜索 文章目录 简介 Emacs 是一个文本编辑器,号称是伪装成 ...
- JAVA补0--->String.format()的使用
详细地址:http://blog.csdn.net/lonely_fireworks/article/details/7962171/ 标 志 说 明 示 例 结 果 + 为正 ...
- 利用python代码操作git
python操作git 安装模块 pip3 install gitpython 基本使用 import os from git.repo import Repo # 创建本地路径用来存放远程仓库下载的 ...