位置: IT常识 - 正文

vue使用vuedraggable拖拽组件,进行组件生成(vue使用jquery)

编辑:rootadmin
vue使用vuedraggable拖拽组件,进行组件生成

推荐整理分享vue使用vuedraggable拖拽组件,进行组件生成(vue使用jquery),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue使用计算属性声明在什么配置项中,vue使用jquery,Vue使用虚拟DOM的特点,vue使用什么软件开发,vue使用vuedraggable可拖拽区域,vue使用vuedraggable可拖拽区域,vue使用jquery,vue使用jquery,内容如对您有帮助,希望把文章链接给更多的朋友!

最近写项目使用到了vuedraggable这个插件,进行组件生成,由于第一次使用,就上网搜相关文章,结果网上基本上都是上下拖拽之类的,没有找到自己想要的结果,然后就根据自己的需求结合相关文档进行了开发

开发完后大概结果视频如下:

vuedraggable拖拽生成组件

静态效果如下:

 第一步:下载依赖:

npm i -S vuedraggable

第二步:在项目中引入:

import draggable from "vuedraggable";vue使用vuedraggable拖拽组件,进行组件生成(vue使用jquery)

第三步查看相关属性和方法:

属性:

 事件:

 属性和事件使用方法请详看 官网:

中文(国人翻译,可能更新不及时):vue.draggable中文文档 - itxst.com

英文:https://www.itxst.com/vue-draggable/tutorial.html

第四步:在代码里使用 html

<template><div><div class=""> <draggable v-model="applyList" :group="{ name: 'piece', pull: 'clone', put: true }" animation="100" :sort="false" :clone="addComponent"//左边应用组数据 > <div class="employ" v-for="item in applyList" :key="item.id"> <span class="nr">{{ item.name }}</span> </div> </draggable> </div><div class=""> <draggable v-model="applyList" :group="{ name: 'piece', pull: 'clone', put: true }" animation="100" :sort="false" :clone="addComponent"//左边应用数据 > <div class="employ" v-for="item in applyList" :key="item.id"> <span class="nr">{{ item.name }}</span> </div> </draggable> </div> <div> <draggable v-model="onList" group="piece" animation="100">//右边空数组 <transition-group :style="style"> <div class="myEmploy" v-for="item in onList" :key="item.id"> <span class="zjNr" >{{ item.name }} <div class="ddd"> <draggable v-model="item.myList"//父级空数组 :group="{ name: 'theChild', pull: 'clone', }" animation="100" :clone="cloneComponent" :sort="true" > <transition-group :style="style"> <!-- 子应用 --> <div class="caTion" :key="item.id"> <div class="suBAppLicaTion" v-for="(it, idx) in item.myList"//子级空数组 :key="idx" > <i class="el-icon-circle-close myDelete" @click="onDelete(idx)" ></i> <img :src="it.url" alt="" /> <span class="ziNr">{{ it.name }}</span> </div> </div> </transition-group> </draggable> </div> </span> </div> </transition-group> </draggable> 从左侧拖入或点选组件进行应用组合 </div></div></template>

js:

<script>import draggable from "vuedraggable";export default { components: { draggable, }, data() { return { applyList: [ { name: "前端小脑虎", id: 1, }, { name: "关注我,不迷路", id: 2, }, { name: "vue问题大全", id: 3, }, { name: "欢迎来到深圳", id: 4, }, ], useList: [ { url: require("../../assets/images/profile.jpg"), name: "学习呀", id: 5, }, { url: require("../../assets/images/profile.jpg"), name: "前端耐斯", id: 6, }, { url: require("../../assets/images/profile.jpg"), name: "前端小脑虎", id: 7, }, { url: require("../../assets/images/profile.jpg"), name: "深圳欢迎你", id: 8, }, ], list: [ { url: require("../../assets/images/profile.jpg"), name: "互连网+", id: 1, }, { url: require("../../assets/images/profile.jpg"), name: "直装直提", id: 2, }, ], onList: [], myList: [], style: "min-height:120px;display: block;", utilize: false, AppGroup: false, }; }, methods: { // 删除 onDelete(idx) { this.onList.forEach((item) => { const id = item.myList[idx].id; item.myList.splice(idx, 1); console.log("item", item.myList); }); }, // 子应用添加 newSubAppLicaTion(item) { const clone = this.cloneComponent(item); this.onList.forEach((item) => { if (item.myList) { item.myList.push(clone); } else { item.myList = [clone]; } }); }, // 应用组添加 addComponent(item) { let exist = false; this.onList.forEach((it) => { //遍历onList,判断是否当前拖拽的应用组内容是否存在,存在就赋值exist为true并return if (it.id == item.id) { exist = true; return; } }); if (exist) { //根据exist来判断,为true就return,false就push进去 this.$message({ message: "组件里已经有相同的应用组啦,请拖拽其他应用组哦", type: "warning", }); return; } else { const clone = item; this.onList.push({ ...clone, myList: [] }); } }, // 应用复制 cloneComponent(origin) { let exist = false; this.onList.forEach((item) => { item.myList.forEach((it) => { //遍历myList,判断是否当前拖拽的应用内容是否存在,存在就赋值exist为true并return if (it.id == origin.id) { exist = true; return; } }); }); if (exist) { //根据exist来判断,为true就return,false就push进去 this.$message({ message: "组件里已经有相同的应用啦,请拖拽其他应用哦", type: "warning", }); return; } else { const clone = origin; return clone; } }, onEnd() { this.drag = false; }, save() {}, // 编辑 },};</script>

以上就是这个插件在项目中使用的流程 如果有不懂可以私信我

本文链接地址:https://www.jiuchutong.com/zhishi/288871.html 转载请保留说明!

上一篇:vue3在运行时路由可以正常跳转,但是页面空白,刷新页面恢复正常[已解决](vue程序运行过程)

下一篇:一款可以完美替代浏览器自带起始页的新标签页插件:Wetab(完美替身好看吗)

  • 苹果手机怎么开震动(苹果手机怎么开机不了)

    苹果手机怎么开震动(苹果手机怎么开机不了)

  • 荣耀30青春版怎么显示网速(荣耀30青春版怎么看电池健康)

    荣耀30青春版怎么显示网速(荣耀30青春版怎么看电池健康)

  • 荣耀30pro如何设置微信视频美颜(荣耀30pro如何设置三键)

    荣耀30pro如何设置微信视频美颜(荣耀30pro如何设置三键)

  • 荣耀10充电器能充华为充电宝吗(荣耀充电器能给红米充电吗)

    荣耀10充电器能充华为充电宝吗(荣耀充电器能给红米充电吗)

  • 9350kf配什么主板(9350kf配什么显卡)

    9350kf配什么主板(9350kf配什么显卡)

  • layout软件是干什么的

    layout软件是干什么的

  • 电脑照片怎么打印出来(电脑照片怎么打包发给别人)

    电脑照片怎么打印出来(电脑照片怎么打包发给别人)

  • 笔记本电脑能换显卡和cpu吗(笔记本电脑能换电池)

    笔记本电脑能换显卡和cpu吗(笔记本电脑能换电池)

  • uc下载的视频怎么变成本地视频(uc下载的视频怎么弄到本地)

    uc下载的视频怎么变成本地视频(uc下载的视频怎么弄到本地)

  • 小米m1808d2te是什么型号(小米m1804d2sg是什么型号)

    小米m1808d2te是什么型号(小米m1804d2sg是什么型号)

  • 自动收货是发货后多少天(自动收货是发货日开始算吗)

    自动收货是发货后多少天(自动收货是发货日开始算吗)

  • 360驱动大师目录可以删除吗(360驱动大师目录是什么)

    360驱动大师目录可以删除吗(360驱动大师目录是什么)

  • 惠普打印机2130和2132区别(惠普打印机2130可以连接手机吗)

    惠普打印机2130和2132区别(惠普打印机2130可以连接手机吗)

  • 为什么计算机会出现错误(为什么计算机会计处理中要对会计科目采用数字编码)

    为什么计算机会出现错误(为什么计算机会计处理中要对会计科目采用数字编码)

  • 软件出现闪退是什么原因(软件出现闪退问题)

    软件出现闪退是什么原因(软件出现闪退问题)

  • 常用的cd-rom是什么(cd rom是)

    常用的cd-rom是什么(cd rom是)

  • 微信复制怎么显示全文(微信复制怎么显示文字)

    微信复制怎么显示全文(微信复制怎么显示文字)

  • realme Q怎么打开悬浮球(realmeq2怎么操作)

    realme Q怎么打开悬浮球(realmeq2怎么操作)

  • oppo官网电话号码多少(oppo官网联系电话)

    oppo官网电话号码多少(oppo官网联系电话)

  • 文档丢失怎么样找回(如果文件丢失了怎么办)

    文档丢失怎么样找回(如果文件丢失了怎么办)

  • 华为p30pro的耳机插孔在哪里(华为p30pro的耳机模式在哪里)

    华为p30pro的耳机插孔在哪里(华为p30pro的耳机模式在哪里)

  • 为什么微信时间对不上(为什么微信时间比手机时间快)

    为什么微信时间对不上(为什么微信时间比手机时间快)

  • 苹果x手机有红外线功能吗(苹果x有红色)

    苹果x手机有红外线功能吗(苹果x有红色)

  • 步步高家教机有什么功能(步步高家教机有定位功能吗)

    步步高家教机有什么功能(步步高家教机有定位功能吗)

  • 最薄的MP3是什么(mp3格式最高音质)

    最薄的MP3是什么(mp3格式最高音质)

  • msgen命令  创建英文邮件目录(msg文件怎么创建)

    msgen命令 创建英文邮件目录(msg文件怎么创建)

  • 个税手续费返还交增值税,但是6%的那行是灰色的
  • 挂靠别的公司都需要交什么税
  • 怎么证明自己是建档立卡贫困户
  • 年应税销售额是利润表中的营业收入吗
  • 以前年度无形资产本年摊销额
  • 个人写的收据要留身份证复印件吗
  • 技术类服务行业用不用开外经证
  • 营改增后甲供材如何扣除
  • 4s店买车首付能付一成吗
  • 公允价值变动税务处理
  • 我国进口货物交税如何计算? 
  • 公司汽车装潢和保养做什么会计科目
  • 地税退税政策
  • 营改增后固定资产报废处置收入计税
  • 待处理流动资产损失属于什么科目
  • 调拨资产入账按原值还是按净值
  • 一般纳税人专票和普票有什么区别
  • 离婚后房产过户需要多少钱
  • 公司房产税如何征收税率
  • windows 清空剪贴板
  • vnisedit 打包
  • 代扣可以退款吗
  • macbook显示隐藏文件
  • 给供应商垫付运费合法吗
  • vue jsx报错
  • 戴尔电脑设置u盘
  • php sql 教程
  • 固定资产成本中的相关税费
  • 广告费增值税税目是什么
  • 政策性退税申请怎么写
  • 与资产相关的政府补助所得税处理
  • 研发人员的差旅费可以加计扣除吗
  • 成功解决冲突的能力英语
  • 测试费计入什么会计科目
  • 微信支付开发步骤
  • linux系统操作教程
  • 好家伙41集
  • 日用品属于哪个类型
  • 补税分录
  • 限定性净资产的限定主体是
  • 不计提工资直接发放可以吗
  • 个人以不动产投资入股土地增值税
  • DedeCMS V5.7 SP2前台文件上传漏洞
  • java 类型推导
  • 违约拒绝赔偿怎么办
  • BOM学习
  • 给中间人回扣犯罪吗
  • 小企业会计准则和一般企业会计准则的区别
  • 兼职收入用缴纳增值税吗
  • 核定征收企业盈利怎么算
  • 可供出售金融资产公允价值变动
  • 折现率的选择主要是根据什么来判断
  • sql server的go
  • MySQL 与 Elasticsearch 数据不对称问题解决办法
  • win8系统界面切换成win7
  • 设置动态壁纸来电铃声
  • centos安装编译环境
  • windows xp自带
  • oracle linux6.9
  • linux怎么用u盘传输文件
  • 教你彻底消灭牛身上的蜱虫
  • 升级win102004
  • windows重大更新
  • perfcurve函数
  • shell中的-le
  • jquery动态生成div
  • linux shell中 if else以及大于、小于、等于逻辑表达式介绍
  • android的edittext在哪
  • Unity UIScrollView优化
  • node.js的exports、module.exports与ES6的export、export default深入详解
  • 置顶txt
  • python3使用PyMysql连接mysql数据库实例
  • 如何利用python写爬虫
  • 税控盘登录密码忘了怎么办怎么重置
  • 新道云软件介绍
  • 境外投资收益如何交税
  • 长春市国资局
  • 贤彬考研,刘磊?
  • 汉口市中心
  • 重庆医疗app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设