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

  • 中国移动一号双卡怎么办理(中国移动一号双终端业务什么时候恢复)

    中国移动一号双卡怎么办理(中国移动一号双终端业务什么时候恢复)

  • 苹果12怎么开双卡模式(苹果12怎么开双扬声器)

    苹果12怎么开双卡模式(苹果12怎么开双扬声器)

  • 佳能打印机墨盒在哪(佳能打印机墨盒堵塞如何疏通)

    佳能打印机墨盒在哪(佳能打印机墨盒堵塞如何疏通)

  • amap文件夹可以删除吗(手机里amap是什么文件夹可以删除吗)

    amap文件夹可以删除吗(手机里amap是什么文件夹可以删除吗)

  • 小米mix3小窗口模式在哪设置(小米mix3小窗口一直固定在屏幕)

    小米mix3小窗口模式在哪设置(小米mix3小窗口一直固定在屏幕)

  • 手机硬壳怎么拆下来(手机壳硬壳拆卸教程)

    手机硬壳怎么拆下来(手机壳硬壳拆卸教程)

  • 未接电话删了怎么恢复(未接电话删除了怎么办)

    未接电话删了怎么恢复(未接电话删除了怎么办)

  • 单方删除微信好友又加会有提示吗(单方删除微信好友)

    单方删除微信好友又加会有提示吗(单方删除微信好友)

  • 华为mate20pro耳机孔在哪(华为mate20Pro耳机)

    华为mate20pro耳机孔在哪(华为mate20Pro耳机)

  • 轻颜视频怎么录五分钟(轻颜能录视频多长时间)

    轻颜视频怎么录五分钟(轻颜能录视频多长时间)

  • ps格式是什么(ps格式是什么后缀)

    ps格式是什么(ps格式是什么后缀)

  • 手机怎么录mp3(手机怎么录mp3文件)

    手机怎么录mp3(手机怎么录mp3文件)

  • 运算器能储存信息吗(运算器能储存信号吗)

    运算器能储存信息吗(运算器能储存信号吗)

  • 华为p20pro指纹键失灵怎么办(华为p20pro指纹键更换)

    华为p20pro指纹键失灵怎么办(华为p20pro指纹键更换)

  • 华为手环如何开机(华为手环如何开机关机)

    华为手环如何开机(华为手环如何开机关机)

  • 苹果蓝牙键盘连不上(苹果蓝牙键盘连接失败)

    苹果蓝牙键盘连不上(苹果蓝牙键盘连接失败)

  • a1978是几代苹果手表(a1978是几代苹果多少钱买的)

    a1978是几代苹果手表(a1978是几代苹果多少钱买的)

  • word图标变成白底怎么办(word图标变成白色)

    word图标变成白底怎么办(word图标变成白色)

  • m1005mfp恢复出厂设置(m1005 恢复出厂)

    m1005mfp恢复出厂设置(m1005 恢复出厂)

  • 手机腾讯文档能导出吗(手机腾讯文档能设置隐藏吗)

    手机腾讯文档能导出吗(手机腾讯文档能设置隐藏吗)

  • 苹果手机为什么搜不到无线网(苹果手机为什么会突然黑屏)

    苹果手机为什么搜不到无线网(苹果手机为什么会突然黑屏)

  • 如何检测固态硬盘是否损坏(如何检测固态硬盘颗粒)

    如何检测固态硬盘是否损坏(如何检测固态硬盘颗粒)

  • 小米6如何连接电脑(小米6如何连接苹果手机)

    小米6如何连接电脑(小米6如何连接苹果手机)

  • 【node拓展】web开发模式 | express应用程序生成器(nodejs c扩展)

    【node拓展】web开发模式 | express应用程序生成器(nodejs c扩展)

  • 电脑学习网2022年首发宝塔企业破解版本,宝塔企业版最新7.9.3完整破解版本-电脑学习网破解(网上学电脑)

    电脑学习网2022年首发宝塔企业破解版本,宝塔企业版最新7.9.3完整破解版本-电脑学习网破解(网上学电脑)

  • Vue使用高德地图选点定位搜索定位功能实现(vue使用高德地图闪白屏)

    Vue使用高德地图选点定位搜索定位功能实现(vue使用高德地图闪白屏)

  • 账面金额是包含什么?
  • 银行承兑汇票相当于贷款
  • 专利没有资本化成本如何入账
  • 预算资产负债表
  • 服装类发票可以做账吗
  • 救援车拉货交警查吗?
  • 个人劳务附加税税率表
  • 所得税申报表填写样本
  • 纳税人少缴税款,税务机关发现之日怎么算
  • 科目汇总表的登记方法
  • 免征土地增值税
  • 已认证的发票如何导入
  • 营改增后开餐厅需要交什么税?
  • 汇算清缴时资产总额如何计算
  • 单位有临时工工资怎么发
  • 所得税费用可以抵减利润吗
  • 红字发票如果开多了下个月能进行抵扣么?
  • 项目自筹资金是什么意思
  • 公司发工资了
  • 坏账准备冲回是借方还是贷方
  • vue移动端预览pdf
  • 虚拟机vm怎么用
  • 如何修复面部毛孔粗大
  • 递延负债减递延资产
  • 财务变更是什么意思
  • 工业厂房修建需要哪些手续
  • 买电脑主要看什么?
  • 出口退税的期限是多长
  • tensorflow1 教程
  • 受托加工要交消费税吗
  • 塞里雅兰瀑布图片高清
  • 延期支付土地款利息会计处理
  • 企业一次性取得所得税
  • 大学生web网页实训心得体会
  • 梅萨维德国家公园特点
  • framework怎么用
  • npm安装node指定版本
  • 使用uni-app开发网站
  • WordPress 浏览量修改
  • 装修费摊销3年会计分录
  • 公路修路步骤
  • 民非企业税金及附加是什么科目
  • 长期股权投资减值准备是什么科目
  • 原材料的主要账目有哪些
  • 税盘维护费可以年年抵扣吗
  • 个人补缴的医保有钱返吗
  • 结账的内容和程序是什么
  • 拨缴经费收入
  • 以他人名义投资该签订什么协议
  • 贸易公司的成本怎么做
  • 航天税盘服务费分录
  • 日记账处理数据流程图
  • mysql函数返回值类型
  • sqlserver锁表是什么意思
  • mac声音无法调节
  • wmpdmc.exe是什么意思
  • 资源管理器 windows
  • win7系统开机蓝屏0x0000007b
  • win8系统电脑没声音怎么办
  • linux awk排序
  • windows8.1 preview
  • linux fflush
  • win7怎么运行itunes
  • win8.1隐藏文件夹
  • 如何删除win7系统自带游戏软件
  • 猫的所有视频
  • 局域网扫描器
  • Python定时器实例代码
  • unity5.x游戏开发指南
  • node.js deno
  • vue.js有什么用
  • 技术开发类工作有哪些
  • js面向对象编程实例
  • 两个fragment之间传值
  • 单张发票开票限额?
  • 2020宜兴市民中心营业时间
  • 车船税多少钱一辆
  • 地税官网怎么登录
  • 某地区土拍的楼盘有哪些
  • 印花税核算有两种情况,是如何处理的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设