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

  • 华为mate10pro参数(华为mate10)(华为mate10pro参数详细参数表)

    华为mate10pro参数(华为mate10)(华为mate10pro参数详细参数表)

  • ipad8用一代笔还是二代笔(ipad8 2020用一代笔还是二代笔)

    ipad8用一代笔还是二代笔(ipad8 2020用一代笔还是二代笔)

  • 苹果13有广角模式吗(苹果13广角模式在哪里)

    苹果13有广角模式吗(苹果13广角模式在哪里)

  • 手机储存空间不足怎么办(手机储存空间不足怎么清理)

    手机储存空间不足怎么办(手机储存空间不足怎么清理)

  • 荣耀yoyo如何打开(荣耀yoyo玩法)

    荣耀yoyo如何打开(荣耀yoyo玩法)

  • 华为手机录音功能在哪儿(华为手机录音功能在哪里怎么找)

    华为手机录音功能在哪儿(华为手机录音功能在哪里怎么找)

  • 乐划锁屏是干什么的(乐划锁屏干什么用)

    乐划锁屏是干什么的(乐划锁屏干什么用)

  • iphone11屏幕旋转怎么设置(iphone11屏幕旋转失灵)

    iphone11屏幕旋转怎么设置(iphone11屏幕旋转失灵)

  • 快手通过私信添加是什么意思(快手私信添加好友)

    快手通过私信添加是什么意思(快手私信添加好友)

  • 微信运动几分钟更新一次(微信运动几分钟更新步数)

    微信运动几分钟更新一次(微信运动几分钟更新步数)

  • 网易云耳机适配怎么开(网易云耳机适配有用吗)

    网易云耳机适配怎么开(网易云耳机适配有用吗)

  • 微信缩略图和大图区别(微信缩略图和原图不一样)

    微信缩略图和大图区别(微信缩略图和原图不一样)

  • respack-8是什么元器件(res是什么元器件)

    respack-8是什么元器件(res是什么元器件)

  • 苹果x充电多久才充满(苹果14第一次充电要充多久)

    苹果x充电多久才充满(苹果14第一次充电要充多久)

  • windows是什么操作系统(windows是什么操作)

    windows是什么操作系统(windows是什么操作)

  • 计算机存储整数最常用的方法(整数在计算机内存中以什么形式储存)

    计算机存储整数最常用的方法(整数在计算机内存中以什么形式储存)

  • 微信朋友圈怎么取消部分朋友可见(微信朋友圈怎么批量删除)

    微信朋友圈怎么取消部分朋友可见(微信朋友圈怎么批量删除)

  • 删除sku权重多久会恢复(删除sku会降权吗)

    删除sku权重多久会恢复(删除sku会降权吗)

  • 手机拍视频如何不抖动(手机拍视频如何去掉声音)

    手机拍视频如何不抖动(手机拍视频如何去掉声音)

  • 网络安全密钥是啥(网络安全密钥是填什么的)

    网络安全密钥是啥(网络安全密钥是填什么的)

  • oppoa3耳机模式怎么解除(oppoa3手机耳机模式怎么调回来)

    oppoa3耳机模式怎么解除(oppoa3手机耳机模式怎么调回来)

  • ipad怎么连接学校投影(ipad怎么连接学校的无线网)

    ipad怎么连接学校投影(ipad怎么连接学校的无线网)

  • 笔记本不拆机怎么清灰(笔记本不拆机怎么加内存)

    笔记本不拆机怎么清灰(笔记本不拆机怎么加内存)

  • 快手被关注自动回复怎么设置(快手被关注自动回复设置)

    快手被关注自动回复怎么设置(快手被关注自动回复设置)

  • 抖音别人给自己的私信在哪看(抖音别人给自己买抖加自己能看见吗)

    抖音别人给自己的私信在哪看(抖音别人给自己买抖加自己能看见吗)

  • 苹果手机如何将来电设为静音(苹果手机如何将旧手机所有资料导入新手机)

    苹果手机如何将来电设为静音(苹果手机如何将旧手机所有资料导入新手机)

  • m1mac恢复出厂设置教程(m1 mac 恢复出厂)

    m1mac恢复出厂设置教程(m1 mac 恢复出厂)

  • 苹果推送最新系统macOS Big Sur开发者预览版Beta 5(附推送内容)(苹果今天推送更新内容)

    苹果推送最新系统macOS Big Sur开发者预览版Beta 5(附推送内容)(苹果今天推送更新内容)

  • 前端实现分页效果(前端分页显示)

    前端实现分页效果(前端分页显示)

  • 织梦DEDECMS修改模板默认扩展名为.html的教程(织梦系统如何更换网站内容)

    织梦DEDECMS修改模板默认扩展名为.html的教程(织梦系统如何更换网站内容)

  • 个税什么会计科目
  • 耕地占用税减半政策
  • 普票开错了几个月可以重新开
  • 代扣代缴完税凭证是什么
  • 非居民企业转让财产所得税
  • 商业折扣的纳税影响
  • 收取职工个人部分养老金怎么做分录
  • 研发支出转入管理费用摘要
  • 短期借款超过一年未归还转到哪会计视野
  • 收到股东增资款账务处理怎么做账
  • 收到股东借款的现金
  • 资产负债表金额越来越大代表什么
  • 什么是法?法的本质特征是什么
  • 单位旧电脑处置
  • 装卸费怎么开票
  • 企业如何避免风险
  • 开具增值税专用发票和普通发票的区别
  • 毛利润和纯利润的计算公式
  • 生产型企业进出口初申报流程
  • 控股子公司利润并表
  • 收工资扣款账务处理流程
  • 资产负债表日后事项涵盖期间
  • 把试驾车当新车卖,构成欺诈
  • 收益性支出的项目有哪些
  • 票据贴现融资有哪些潜在的风险
  • 内退人员
  • php rewrite
  • 土豆发芽了能吃吗有没有毒
  • 购货折让会计分录
  • laravel启动流程
  • phpstorm怎么样
  • 提取现金 备发工资
  • 房产土地税计提新规
  • php用img显示图片
  • php扫一扫识别代码
  • 什么叫相机标定
  • 发票金额有小数可以取整数吗
  • 织梦怎么调用当前栏目下的文章
  • 应付职工薪酬多栏式
  • mysql中regexp_substr函数的使用
  • 报废产品需要入库吗
  • 维修费开票属于信息技术服务吗
  • mongodb用法
  • 织梦怎么改网站主页
  • 企业正常性停产什么意思
  • 商品进销差价在借方还是贷方
  • 城市维护建设税属于中央还是地方
  • 合同履约成本如何设置明细科目
  • 采购商品未入库已经付款会计分录
  • 单式记账法因为其简单易学,记账效率高
  • 购买原材料保险费分录
  • 增值税计入固定资产的成本吗
  • 企业银行存款的流动性强于存货
  • 所得税多缴纳分录
  • 筹建期的财务费怎么算
  • 原始凭证丢了判刑吗
  • 利税总额怎么算?
  • MySQL5.7 windows二进制安装教程
  • sql事务的例子
  • mysql 5.7启动
  • 如何解开win10电脑密码
  • linux切换到home文件夹
  • 如何清理注册表的垃圾文件
  • ubuntu 14.04.6
  • mac上播放器
  • 快速锁定单元格的方法
  • win10预览版和正式版区别
  • cocos2dx CardinalSpline和CatmullRom算法
  • .json()
  • bat ping批处理
  • 厦门翔安到同安有多远
  • js每天的定时任务
  • keycode输入cat
  • 浙江税务局12366
  • 西安养老保险申报
  • 沈阳注销营业执照
  • 国家税务总局2018年61号公告
  • 包头市到青山区多少公里
  • 应缴增值税
  • 新疆哪个城市最有发展前景
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设