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

  • qq的小世界怎么关闭(qq的小世界怎么永久删除)

    qq的小世界怎么关闭(qq的小世界怎么永久删除)

  • 荣耀v30pro对比华为p40pro(荣耀v30pro对比华为p40)

    荣耀v30pro对比华为p40pro(荣耀v30pro对比华为p40)

  • 成年当天可以开通花呗吗(成年当天可以开通白条吗)

    成年当天可以开通花呗吗(成年当天可以开通白条吗)

  • 华为手机照相闪光灯怎么打开(华为手机照相闪光灯怎么关不了)

    华为手机照相闪光灯怎么打开(华为手机照相闪光灯怎么关不了)

  • qq音乐下载的歌怎么保存到本地(qq音乐下载的歌曲怎么导入u盘)

    qq音乐下载的歌怎么保存到本地(qq音乐下载的歌曲怎么导入u盘)

  • 小米9死机黑屏(小米9黑屏没反应)

    小米9死机黑屏(小米9黑屏没反应)

  • 微信退出登录了还能定位吗(微信退出登录了打微信电话)

    微信退出登录了还能定位吗(微信退出登录了打微信电话)

  • iphone12什么时候上市有什么功能(iphone12什么时候正式发售)

    iphone12什么时候上市有什么功能(iphone12什么时候正式发售)

  • 获取系统步数失败什么原因(获取运动步数失败是什么原因)

    获取系统步数失败什么原因(获取运动步数失败是什么原因)

  • 淘宝怎么看以前的购买记录(淘宝怎么看以前快递的物流)

    淘宝怎么看以前的购买记录(淘宝怎么看以前快递的物流)

  • 魅族17支持光学防抖吗(魅族17pro带光学防抖吗)

    魅族17支持光学防抖吗(魅族17pro带光学防抖吗)

  • 美团外卖充值卡怎么用(美团外卖充值卡兑换)

    美团外卖充值卡怎么用(美团外卖充值卡兑换)

  • 怎样登qq号不用短信验证码(怎样登qq号不用验证码)

    怎样登qq号不用短信验证码(怎样登qq号不用验证码)

  • vivox30能不能放内存卡(vivox30可以插u盘吗)

    vivox30能不能放内存卡(vivox30可以插u盘吗)

  • airpods pro是入耳式的吗(airpods pro入耳有声音吗)

    airpods pro是入耳式的吗(airpods pro入耳有声音吗)

  • 苹果机浮球开关在哪里(平果手机浮球)

    苹果机浮球开关在哪里(平果手机浮球)

  • ipx5级防水能淋雨吗(ipx56级防水)

    ipx5级防水能淋雨吗(ipx56级防水)

  • 苹果手机怎么设置nfc(苹果手机怎么设置自己喜欢的铃声)

    苹果手机怎么设置nfc(苹果手机怎么设置自己喜欢的铃声)

  • 投影的坏处(投影好处坏处)

    投影的坏处(投影好处坏处)

  • z87主板支持ddr4吗(z87主板支持m2固态吗)

    z87主板支持ddr4吗(z87主板支持m2固态吗)

  • qq音乐免流量怎么退订(qq音乐免流量怎么激活2022)

    qq音乐免流量怎么退订(qq音乐免流量怎么激活2022)

  • datediff函数什么意思(date_diff函数怎么用)

    datediff函数什么意思(date_diff函数怎么用)

  • 苹果xr呼吸灯怎么开(xr呼吸灯不亮了怎么设置)

    苹果xr呼吸灯怎么开(xr呼吸灯不亮了怎么设置)

  • 怎么让花呗不发短信(怎么让花呗不发账单短信给手机)

    怎么让花呗不发短信(怎么让花呗不发账单短信给手机)

  • ps自定义形状(ps自定义形状工具怎么添加)

    ps自定义形状(ps自定义形状工具怎么添加)

  • 产权转移书据印花税计税依据
  • 发票冲红重开,重开时是按新税率还是旧税率
  • 缴纳增值税会计账务处理
  • 一般纳税人可以开1%的发票吗
  • 市场营销策划开题报告
  • 预提工资与计提工资的区别
  • 临时工工资能否用公户支付
  • 财务公司承兑汇票是商票还是银票
  • 帮客人清关的费用如何做会计核算合适呢?
  • 电子承兑银行承兑
  • 建安业一般纳税人是清包工是什么意思
  • 商场预付卡是什么意思
  • 建筑公司收取的管理费如何入账
  • 出口抵减内销产品应纳税额年终结转
  • 销售原材料收到商业承兑汇票会计分录
  • 地质灾害评估费收费标准
  • 如何看发票是否被抵扣
  • 发票所有联次都需要加盖发票章吗
  • 签订借款合同要遵守规则吗
  • 普通合伙企业分配利润
  • 员工出差补贴怎么入账
  • 收到多开的发票会计上怎么入成本?
  • 出口佣金支付
  • 保险保障基金的管理单位是
  • 认定为虚开进项发票我的业务是真实的
  • 收到采购商品
  • Win10怎么清除系统
  • linux系统中如何查看日志
  • window11安装失败
  • 发票开出后对方不付款
  • 未分配利润可以用来干什么
  • 应付股利的会计分录T
  • 增值税专票如何查询对方是否抵扣
  • 同一控制下企业合并会计准则
  • php取二维数组的一组内容
  • php简单的接口编写示例
  • 梅尔加足球俱乐部
  • 我国的增值税是价外税消费税是价内税
  • 客户端调用axis1.4的方式
  • 公司借款给个人怎么写借条
  • react 入门教程
  • 材料报废及处置方案
  • 资产减值损失的大幅度变动
  • 代扣代缴个人所得税分录
  • 福利部门领用材料计入什么科目
  • 跨年增值税专用发票红字发票怎么开
  • MySQL数据库介绍
  • 在计算应纳税所得额时
  • 亏损企业所得税汇算清缴怎么做
  • 个人所得税完整申报流程
  • 经营性应付项目包括哪些内容
  • 内含增长率的推导
  • 总资产法怎么计算公式
  • 小微企业营业外收入二级科目怎么
  • 转卖增值税犯罪吗
  • 售后回租含手续费吗
  • 收入与费用配比也就是费用要由收入补偿
  • 工会经费如何申请返还
  • 冲销销售收入分录
  • 报销如果没有发票怎么补救
  • 残疾人保障金必须交吗
  • 数据库中alter table的用法
  • 如何查看mysql连接池
  • windows10玩lol有延迟怎么办
  • ubuntu20.10
  • mac如何预览字体大小
  • 高通ar芯片
  • Basic Layout——基本布局
  • handle thread
  • 分享一些常用的文件
  • listview点击获取内容
  • winrar指令
  • python怎么用命令行
  • jQuery中trigger()与bind()用法分析
  • 简述javascript的主要特点
  • Node.js中的全局对象有
  • 锐志2.5新车报价
  • 新旧动能转换是我们能否过坎的关键
  • uk怎么添加发票
  • 税务绩效工作存在的问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设