位置: 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(完美替身好看吗)

  • 打开论坛发帖五大问题的钥匙来了。。。(打开论坛app)

    打开论坛发帖五大问题的钥匙来了。。。(打开论坛app)

  • 小米平板5pro外壳是什么材质(小米平板5Pro外观尺寸)

    小米平板5pro外壳是什么材质(小米平板5Pro外观尺寸)

  • 小艺是什么手机的语音助手(小艺是什么手机的助手)

    小艺是什么手机的语音助手(小艺是什么手机的助手)

  • 抖音观看人次怎么设置(抖音观看人次怎么关闭)

    抖音观看人次怎么设置(抖音观看人次怎么关闭)

  • 淘宝怎么请好友代付(淘宝怎么请好友帮付款)

    淘宝怎么请好友代付(淘宝怎么请好友帮付款)

  • 2021淘宝为什么不能删评价了(淘宝为什么火)

    2021淘宝为什么不能删评价了(淘宝为什么火)

  • 微信公众号图片无法显示(微信公众号图片上的水印怎么弄)

    微信公众号图片无法显示(微信公众号图片上的水印怎么弄)

  • 抖音发送关注请求(抖音发送关注请求取消对方还能看到吗)

    抖音发送关注请求(抖音发送关注请求取消对方还能看到吗)

  • 微博被限流怎么解除(微博被限流怎么办 如何解决微博限流_游戏狗手机版)

    微博被限流怎么解除(微博被限流怎么办 如何解决微博限流_游戏狗手机版)

  • 小米m1912g7be什么型号(小米m1912g7be什么型号售价多少)

    小米m1912g7be什么型号(小米m1912g7be什么型号售价多少)

  • 收付款怎么加好友(收款方如何加付款方微信)

    收付款怎么加好友(收款方如何加付款方微信)

  • 快手极速版可以横屏播放吗(快手极速版可以直播吗)

    快手极速版可以横屏播放吗(快手极速版可以直播吗)

  • 视频已失效怎么回事(视频已失效是什么意思)

    视频已失效怎么回事(视频已失效是什么意思)

  • 苹果官网发货要多久(苹果官网发货要过海关吗)

    苹果官网发货要多久(苹果官网发货要过海关吗)

  • 手机qq群视频怎么关闭麦克风(手机qq群视频怎么打开摄像头)

    手机qq群视频怎么关闭麦克风(手机qq群视频怎么打开摄像头)

  • 笔记本内存小怎么扩充(笔记本内存小怎么变内存大)

    笔记本内存小怎么扩充(笔记本内存小怎么变内存大)

  • 语音只能发十秒为什么(语音只能发十秒怎么回事)

    语音只能发十秒为什么(语音只能发十秒怎么回事)

  • 移动4g 手机是什么意思(移动4g什么意思)

    移动4g 手机是什么意思(移动4g什么意思)

  • 抖音里@谁的咋删记录(抖音@过谁怎么看)

    抖音里@谁的咋删记录(抖音@过谁怎么看)

  • 苹果手机c开头是正品机吗(苹果手机c开头序列号代表什么)

    苹果手机c开头是正品机吗(苹果手机c开头序列号代表什么)

  • 腾讯会员怎么取消别人登录(腾讯会员怎么取消连续包月)

    腾讯会员怎么取消别人登录(腾讯会员怎么取消连续包月)

  • 苹果云空间满了怎么办(苹果云空间满了还能存照片吗)

    苹果云空间满了怎么办(苹果云空间满了还能存照片吗)

  • 苹果x进水后多久可充电(苹果x进水多少钱维修)

    苹果x进水后多久可充电(苹果x进水多少钱维修)

  • 探探设备封禁解除教程(探探设备封禁解封不了)

    探探设备封禁解除教程(探探设备封禁解封不了)

  • 充电器怎么看多少w(充电器怎么看多少伏)

    充电器怎么看多少w(充电器怎么看多少伏)

  • iphonex发烫怎么设置(苹果x发烫)

    iphonex发烫怎么设置(苹果x发烫)

  • 网易新闻如何发布文章(网易新闻如何发视频)

    网易新闻如何发布文章(网易新闻如何发视频)

  • 联通的话费能干吗
  • 纳税收入包含哪些
  • 利润表第二季度本期金额填4-6月还是1-6月数
  • 进料加工余料结转可以跨年吗
  • 印花税退税流程怎么操作
  • 个体生产经营所得税税率表
  • 商场促销的税务处理怎么做?
  • 未取得发票如何进应付暂估科目
  • 本月进项税额不够抵扣怎么办
  • 转让长期股权投资交什么税
  • 外派人员的一次工作总结
  • 营改增后取得施工作业收入需要交哪些税?
  • 企业取得的不征税收入需要在几年内花出去
  • 个人车辆租给公司有什么后果
  • 市净率怎么计算举例说明
  • 黄金入账怎么做会计分录
  • 财务线上线下是什么意思
  • PHP中register_shutdown_function函数的基础介绍与用法详解
  • windows10设备如何打开蓝牙
  • 增值税价外费用是什么意思
  • 销售费用中业务费包括哪些
  • 相关企业之间的竞争
  • javascript生成器
  • 输入什么验证
  • PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
  • 报销加油票怎么开票
  • 设备维修产生的人工费怎么开发票
  • 涅迪克角灯塔上的节日彩灯,缅因州 (© Walter Bibikow/Alamy)
  • delete select语句
  • 前端生成docx
  • 什么叫web渗透测试
  • 怎样安装∪sb
  • verilog hdl中任务可以调用
  • 深入理解linux内核
  • 购买债券的利息会计分录
  • 代宰 增值税
  • 机票改签费可以报销吗
  • mysql 速度慢
  • 应付账款的账务处理
  • 工资发放用现金
  • 如何网上填报个人所得税
  • 收到法人投资款需要什么手续
  • 银行余额调节表的作用
  • 企业工会经费的会计分录
  • 房产税是怎么样
  • 劳务费怎么要的回来
  • 内账会计有法律风险吗
  • 怎么判断其他债权债务
  • 月报表该怎么做表格
  • 将固定资产转为投资性房地产账务处理
  • 医院药品进销差价规定
  • 银行承兑汇票的好处
  • 一般纳税人的进项税额可以抵扣吗
  • windows installation disc
  • linux rpm包怎么安装
  • mysql 正则表达式 是否包含字母
  • win8系统任务栏怎么隐藏
  • 手动清洁cmos
  • 如何在xp系统中调整移动硬盘
  • linux 禁用root
  • win10预览版和正式版
  • win7系统玩英雄联盟没有声音
  • 查看linux的命令
  • linux中内存是2GB,虚拟内存应该是多少
  • win7系统怎么设置屏保
  • cocos html
  • ubuntu运行qt程序
  • opengl画矩形函数
  • android.json
  • 图形学题目
  • jquery弹出新窗口
  • eclipse如何调节字体
  • js移动端拖拽
  • nodejs实现微服务
  • 在dos下删除文件
  • python中sort()的用法
  • void方法设置断言
  • 补充协议需要双方签字盖章吗
  • 广东省电子学校
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设