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

  • 搜狗拼音输入法的对号怎么打(搜狗拼音输入法打不出中文)

    搜狗拼音输入法的对号怎么打(搜狗拼音输入法打不出中文)

  • uv钢化膜伤屏幕吗(uv钢化膜能盖住划痕吗)

    uv钢化膜伤屏幕吗(uv钢化膜能盖住划痕吗)

  • excel单元格对齐方式在哪里(excel表格怎么锁定单元格)

    excel单元格对齐方式在哪里(excel表格怎么锁定单元格)

  • 怎样彻底退出全民k歌(如何退出全屏?)

    怎样彻底退出全民k歌(如何退出全屏?)

  • 小天才能下载微信吗(小天才上能下载微信么)

    小天才能下载微信吗(小天才上能下载微信么)

  • 腾讯tbs是什么(腾讯tbs studio)

    腾讯tbs是什么(腾讯tbs studio)

  • 3300x配什么主板(3300X配什么主板)

    3300x配什么主板(3300X配什么主板)

  • 闲鱼资金保护什么意思(闲鱼资金保护会被退款吗)

    闲鱼资金保护什么意思(闲鱼资金保护会被退款吗)

  • 硬盘低格是什么意思(什么叫硬盘低格)

    硬盘低格是什么意思(什么叫硬盘低格)

  • 文件没保存怎么恢复(文件没保存怎么找回来wps)

    文件没保存怎么恢复(文件没保存怎么找回来wps)

  • 手机wi-fi连上却上不了网(手机wifi连上却不能上网)

    手机wi-fi连上却上不了网(手机wifi连上却不能上网)

  • 小冰是什么手机的语音助手(小冰是什么手机的人工智能)

    小冰是什么手机的语音助手(小冰是什么手机的人工智能)

  • qq精确查找是怎么加的(qq精确查找怎么知道我名字)

    qq精确查找是怎么加的(qq精确查找怎么知道我名字)

  • ipad的wlan和wifi的区别(wlan和wifi的区别)

    ipad的wlan和wifi的区别(wlan和wifi的区别)

  • 电脑显示屏的电源线通用吗(电脑显示屏的电源线哪里有卖)

    电脑显示屏的电源线通用吗(电脑显示屏的电源线哪里有卖)

  • 打电话嘟嘟嘟然后没了(打电话嘟嘟嘟然后没了是拉黑了吗)

    打电话嘟嘟嘟然后没了(打电话嘟嘟嘟然后没了是拉黑了吗)

  • 荣耀9x收不到短信验证码(荣耀9x收不到短信是什么情况)

    荣耀9x收不到短信验证码(荣耀9x收不到短信是什么情况)

  • 乐视怎么升级版本(乐视怎么升级版本电视)

    乐视怎么升级版本(乐视怎么升级版本电视)

  • 台式电脑手写怎么设置(台式电脑手写怎么弄出来)

    台式电脑手写怎么设置(台式电脑手写怎么弄出来)

  • 手机横幅显示是什么

    手机横幅显示是什么

  • qq转文字的功能在哪(qq转文字的功能怎么取消)

    qq转文字的功能在哪(qq转文字的功能怎么取消)

  • 百度云能投屏吗(百度网盘能投屏吗)

    百度云能投屏吗(百度网盘能投屏吗)

  • 搜抖音号对方能看到吗(搜抖音号对方能知道吗)

    搜抖音号对方能看到吗(搜抖音号对方能知道吗)

  • 华为atutl10什么型号(华为ATUTL10什么型号多少钱)

    华为atutl10什么型号(华为ATUTL10什么型号多少钱)

  • 小米手环3黑屏(小米手环3黑屏休眠激活方法)

    小米手环3黑屏(小米手环3黑屏休眠激活方法)

  • pcas.exe是什么进程(pcas service进程可以关闭么)

    pcas.exe是什么进程(pcas service进程可以关闭么)

  • 简单讲解Linux系统中PS1默认提示符的设置(“linux系统”)

    简单讲解Linux系统中PS1默认提示符的设置(“linux系统”)

  • vue中动态引入图片为什么要是require, 你不知道的那些事(vue导入动图)

    vue中动态引入图片为什么要是require, 你不知道的那些事(vue导入动图)

  • Session详解(sessionn)

    Session详解(sessionn)

  • 安全生产费实际发生必须是付款吗还是挂帐也可以
  • 厂房设计费计入在建工程吗
  • 发票开票地址是注册地址还是经营地址
  • 向保险公司缴纳的保险费可以税前扣除吗
  • 所得税季报填错了已经申报了
  • 安装费发票备注栏怎么填
  • 承兑汇票给别人时对方需要出具什么
  • 公务员工资待遇标准表
  • 在建工程转固定资产账务处理
  • 关于外债利息的规定
  • 公司银行利息要交税吗
  • 迁移税务需要带什么资料
  • 未及时申报个税的理由
  • 已开票怎么做坏账处理
  • 固定资产的残值怎么算出来的
  • 给单位员工报销电话费怎么做账务处理
  • 如何核对往来账明细
  • 竣工决算调整入库流程
  • 贴现到期不获付款
  • 社保生育费用报销
  • 路由器wds桥接成功为什么不能上网
  • 退回的企业所得税怎么做账
  • 长期股权投资会影响利润吗
  • 研发新产品的重要性
  • php手机号隐藏中间四位
  • thinkphp console
  • 财政专户资金是专项资金吗
  • Squarespace 和 WordPress 的区别
  • 原始凭证必须来源于外部吗
  • typescript is as
  • 前端 大前端
  • thinkphp模糊查询
  • nginx运行python
  • 没有交过税怎么办
  • 小规模企业所得税优惠政策最新2022
  • SQLite3 命令行操作指南
  • 外部审计查什么
  • 银行贷款第三方是什么意思
  • 没有原始凭证可以记账吗
  • 纳税人按照月度或者季度的实际利润额预缴有困难的
  • 建筑企业分项目信息采集表怎么填
  • 小规模免征增值税到什么时间止
  • 购买的固定资产退货怎么做账
  • 建筑企业收挂靠公司的管理费如何做账?
  • 农产品收购发票如何抵扣进项税
  • 房地产老项目简易计税开专票
  • 什么是暂估入库核算
  • 按工人工资比例结转制造费用会计科目
  • 怎样可以冲销企业微信
  • 净水设备配件计算方法
  • 促销服务属于什么服务按什么征增值税
  • 一般什么是差旅费呢
  • 购货方与付款方不一致
  • windows8.
  • window 虚拟化
  • freebsd怎么安装软件
  • win10系统安装了打印机驱动找不到打印机
  • mac如何修改hosts登录Googledrive
  • Windows 7 RTM、Vista、XP 性能测试
  • xp系统改win7系统设置
  • win10新版磁贴
  • 六个自由
  • nodevideo翻译
  • Eclipse开发工具安装
  • 精灵动画片大全90年代
  • js格式化输出
  • c语言 ls
  • node.js上传文件
  • javascript的弹窗
  • android面试题网站
  • js中slice方法的作用
  • 大学的python选修课好学吗
  • 怎么查看keytab文件
  • python例子大全
  • python 中文转码
  • 河北市国家税务局官网
  • 小规模纳税人房土两税优惠政策
  • ca证书网上申请
  • 进项税发票过期了怎么办
  • 武汉税务地区编号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设