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

  • iQOO10高耗电提醒在哪开启(iqoo7耗电异常)

    iQOO10高耗电提醒在哪开启(iqoo7耗电异常)

  • 北京健康宝怎么解除居家观察(北京健康宝怎么关联外地核酸检测结果)

    北京健康宝怎么解除居家观察(北京健康宝怎么关联外地核酸检测结果)

  • 中国银行手机盾怎么重新开通(中国银行手机盾怎么开通)

    中国银行手机盾怎么重新开通(中国银行手机盾怎么开通)

  • 微信二维码支付设置密码的方法是什么(微信二维码支付限额多少)

    微信二维码支付设置密码的方法是什么(微信二维码支付限额多少)

  • 一代苹果手表还能用吗(一代苹果手表还能更新吗)

    一代苹果手表还能用吗(一代苹果手表还能更新吗)

  • 苹果指纹无法触控id(苹果指纹无法触摸怎么办)

    苹果指纹无法触控id(苹果指纹无法触摸怎么办)

  • 超薄低音炮三个旋钮怎么调(超薄低音炮三个旋钮调试教程)

    超薄低音炮三个旋钮怎么调(超薄低音炮三个旋钮调试教程)

  • 学习通网页版有摄像头吗

    学习通网页版有摄像头吗

  • 苹果激活一直正在安装(苹果激活一直正在连接)

    苹果激活一直正在安装(苹果激活一直正在连接)

  • nova7双卡双待吗(nova7双卡双待吗?)

    nova7双卡双待吗(nova7双卡双待吗?)

  • word全称(word全称格式)

    word全称(word全称格式)

  • qq加群频繁怎么解除(qq加群频繁怎么办)

    qq加群频繁怎么解除(qq加群频繁怎么办)

  • 苹果ipad7是什么型号(ipad7代是ipad2019吗)

    苹果ipad7是什么型号(ipad7代是ipad2019吗)

  • vivo手机的ai键是干嘛用的(vivo手机上的ai键是用来干嘛的)

    vivo手机的ai键是干嘛用的(vivo手机上的ai键是用来干嘛的)

  • word文献方括号怎么打(文献的方括号如何输入)

    word文献方括号怎么打(文献的方括号如何输入)

  • word2003怎么设置稿纸(word2003怎么设置行间距)

    word2003怎么设置稿纸(word2003怎么设置行间距)

  • 探探不充钱能玩吗(探探可以不充钱吗)

    探探不充钱能玩吗(探探可以不充钱吗)

  • ip地址的十进制范围(ip地址十进制转换二进制)

    ip地址的十进制范围(ip地址十进制转换二进制)

  • 苹果11震动怎么调(苹果11震动怎么开)

    苹果11震动怎么调(苹果11震动怎么开)

  • 荣耀20和荣耀20pro对比(荣耀20和荣耀20pro哪个好)

    荣耀20和荣耀20pro对比(荣耀20和荣耀20pro哪个好)

  • 红米k20pro是双扬声器吗(红米k20pro双扬声器免root)

    红米k20pro是双扬声器吗(红米k20pro双扬声器免root)

  • iphone 11支持无线充电吗(iPhone11支持无线磁吸不)

    iphone 11支持无线充电吗(iPhone11支持无线磁吸不)

  • 买家怎么查看自己的退货率(买家怎么查看自己拼多多退货率)

    买家怎么查看自己的退货率(买家怎么查看自己拼多多退货率)

  • vivox27可以快充吗(vivox27手机快充怎么开启功能在哪里)

    vivox27可以快充吗(vivox27手机快充怎么开启功能在哪里)

  • 电话号码空号怎么恢复(电话号码空号怎么设置)

    电话号码空号怎么恢复(电话号码空号怎么设置)

  • 本年利润借方专栏有什么
  • 本地的住宿费怎么交
  • 个体工商户在哪注销营业执照
  • 进口贴息对企业的好处
  • 大型机械进退场费属于机械台班单价组成部分
  • 企业国有资产无偿划转办法
  • 负数发票跨月怎么重开
  • 境外企业国内签订合同如何缴纳印花税?
  • 境外企业分红个税怎么交
  • 公司亏损没有收入怎么办
  • 小规模纳税人超过500万可以不转一般纳税人吗
  • 资产损失申报方式
  • 残疾人保障金中的工资总额包括福利费用吗
  • 企业的其他业务收入有
  • 2019年小微企业增值税起征点为月销售额
  • 疏通下水道入什么经络
  • 从对公账户转账到个人账号需要多久?
  • 外籍人员工资个税
  • 移动网速测试软件
  • tp link无线路由器设置
  • 回来报销差旅费的会计分录怎么写
  • php 面向对象
  • 未计发放待遇
  • 向职工集资计入收入吗
  • 没有产权的房屋离婚怎么分配
  • php imagecopymerge
  • 归属性质
  • PHP:mcrypt_get_iv_size()的用法_Mcrypt函数
  • PHP:imagecolorresolvealpha()的用法_GD库图像处理函数
  • laravel ajax
  • 月底库存现金不足怎么办
  • 毕业证原件掉了可以报考社工证吗
  • input 文件
  • 微信小程序详细教程
  • js构造函数怎么用
  • 帝国cms如何使用
  • 带折扣的发票如何入账
  • 成本会计科目的三级科目有哪些
  • 小规模纳税人直接从农户购入农产品要交增值税吗
  • 非限定性净资产包括哪些科目
  • phpcms视频教程
  • python cox
  • 残保金由哪个部门负责稽查
  • 房地产开发企业土地出让金扣除政策
  • 合伙企业可以列入法人吗
  • 申报无票收入后怎么回冲
  • 一般纳税人开红字专用发票流程
  • 实收资本或股本什么意思
  • 短期借款利息的使用账户是
  • 个体户所得税税率多少
  • 无形资产入账
  • 公司举行活动发言稿范文
  • 运输服务和运输费有什么区别
  • 出库单与入库单一样吗
  • 进项税额抵扣不完要做分录吗
  • 股东的义务是什么意思?
  • 管理费用明细科目设置和核算需要注意哪些问题
  • 年初速动比率怎么算
  • win8 无线网络连不上
  • 503 service unavailable错误说明
  • 苹果今日报价
  • Mac系统怎么设置ftp
  • mac磁盘空间不足怎么办
  • freebsd 添加用户
  • winxp系统连接网络
  • linux awk命令使用实例
  • windows执行bat命令
  • linux分区顺序详解
  • win10 1511版本升级到1803
  • div +css
  • 安卓画图板
  • shell调用java方法
  • node写自动化脚本
  • android 点击按钮如果数据库有数据就更新,没有就创建
  • yarn功能
  • ExpandableListView 实现分组购物车
  • js 模板框架
  • 税控盘怎么申请领发票
  • 云南省税务干部学校是干什么的
  • 长沙市社保中心主任
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设