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

  • 京东京享值是怎么计算的(京东京享值怎么查看明细)

    京东京享值是怎么计算的(京东京享值怎么查看明细)

  • lumion的复制快捷键(lumion 复制)

    lumion的复制快捷键(lumion 复制)

  • 共享文件夹突然打不开了(共享文件夹突然出现不共享怎么办)

    共享文件夹突然打不开了(共享文件夹突然出现不共享怎么办)

  • airpods左耳有电流声(airpods左耳有电量却不工作)

    airpods左耳有电流声(airpods左耳有电量却不工作)

  • 谷歌pixel2国内能用吗(谷歌pixel能在国内用吗)

    谷歌pixel2国内能用吗(谷歌pixel能在国内用吗)

  • 苹果手机下载支付宝在哪里下载(苹果手机下载支付宝为什么要付款)

    苹果手机下载支付宝在哪里下载(苹果手机下载支付宝为什么要付款)

  • sendencpac文件是什么(sendencpacbin文件能删吗)

    sendencpac文件是什么(sendencpacbin文件能删吗)

  • 怎样解决手机视频加载失败(手机视频屏幕不清楚怎么办)

    怎样解决手机视频加载失败(手机视频屏幕不清楚怎么办)

  • iphonese2有面容吗(苹果se2有面容识别吗)

    iphonese2有面容吗(苹果se2有面容识别吗)

  • 注销淘宝账号后可以重新注册吗(注销淘宝账号后,电脑登录的淘宝账号还在线吗)

    注销淘宝账号后可以重新注册吗(注销淘宝账号后,电脑登录的淘宝账号还在线吗)

  • 华为手机背面的标签可以撕吗(华为手机背面的玻璃外壳碎了)

    华为手机背面的标签可以撕吗(华为手机背面的玻璃外壳碎了)

  • 为什么图像和声音不符(为什么图像和声不一样)

    为什么图像和声音不符(为什么图像和声不一样)

  • securityhealth可以禁止启动吗(securitythreat)

    securityhealth可以禁止启动吗(securitythreat)

  • 打印机显示5sec是什么意思(打印机显示未联机怎么办)

    打印机显示5sec是什么意思(打印机显示未联机怎么办)

  • 多媒体操作系统可分为(多媒体操作系统的特点)

    多媒体操作系统可分为(多媒体操作系统的特点)

  • iphone7plus分屏多任务(iphone7分屏有什么用)

    iphone7plus分屏多任务(iphone7分屏有什么用)

  • word文档怎么调整页面布局(word文档怎么调整行间距)

    word文档怎么调整页面布局(word文档怎么调整行间距)

  • 手机360浏览器怎么翻译网页(手机360浏览器怎么下载视频)

    手机360浏览器怎么翻译网页(手机360浏览器怎么下载视频)

  • 为什么快手没骂人被封号(快手为什么惹人嫌)

    为什么快手没骂人被封号(快手为什么惹人嫌)

  • 苹果11怎么弄九宫格(苹果11怎么弄九宫格切图)

    苹果11怎么弄九宫格(苹果11怎么弄九宫格切图)

  • 两个固态硬盘可以一起用吗(两个固态硬盘可以装两个系统吗)

    两个固态硬盘可以一起用吗(两个固态硬盘可以装两个系统吗)

  • loadrunner测试流程(loadrunner测试教程)

    loadrunner测试流程(loadrunner测试教程)

  • cad导入su如何快速成面(cad导入su要注意些什么)

    cad导入su如何快速成面(cad导入su要注意些什么)

  • vue自由模式在哪(vue自定义模板)

    vue自由模式在哪(vue自定义模板)

  • 有经营许可无道路运输证罚多少钱
  • 2021年白酒新政策
  • 销项负数的分录怎么做
  • 个人所得税隔月交么
  • 报关单汇率按出口日期还是申报日期
  • 重分类八个对应科目有哪些
  • 开户以后不用要钱吗
  • 每月先报税还是先清卡
  • 其他收益怎么用
  • 防伪税控系统服务费发票在哪里开
  • 合同能源管理项目账务处理
  • 抵债资产账务处理2021年
  • 收到补价时应确认收益,支付补价时不能确认收益
  • 金税三期国地税合并
  • 进项税有余额但没有余额
  • 充值费用优惠怎么取消
  • 税控盘抵税账务处理
  • 油罐车运输费用怎么算
  • 小规模9万是含税吗
  • 内部退养个税计算方式
  • 机械租赁费如何开
  • 中小企业社保优惠延长政策
  • 会计调账有哪些方式
  • 公司招聘费属于什么科目
  • 专家费1000元个人所得税到底是税前还是税后
  • 年底返利账务处理
  • 电脑自我诊断
  • mac菜单键怎么设置出来的
  • 在win10中如何设置在开始菜单中显示应用列表
  • 不动产在建工程领用原材料的分录
  • 外资企业股权转让给外资企业
  • 收回已核销的坏账分录
  • 公司连续几年不向股东分配利润
  • chatGPT背后的真正逻辑
  • 前端经典面试题及答案
  • php强大吗
  • php 性能优化
  • 学费入账处理
  • 长期待摊费用账务
  • 电商每天利润表怎么做
  • 怎么开电子专用增值税发票
  • access如何设置宏的功能
  • 员工餐费补助交个人所得税吗
  • 餐饮服务规定
  • 租金收入怎么做分录
  • 如何利用sql进行数据传输
  • 劳务报酬收入是否含税
  • 个人所得税手续费返还账务处理
  • 税务机关如何对个人股东股权财务报表审核
  • 小规模纳税人的条件
  • 网上交税已经缴费怎么退
  • 营改增后房地产企业增值税如何核算
  • 建筑工程劳务分包合同范本2019
  • 社保返还补贴政策2020
  • 技术员差旅费计入哪个会计科目
  • 记账凭证应该是
  • 法人章和财务章尺寸
  • 小型微利企业年报填什么表
  • mysql很卡
  • sql server索引的使用
  • sql比较两个集合
  • 怎么操作win10系统
  • 苹果电脑dock栏是什么意思
  • win7 mysql
  • qbdagent2002.exe - qbdagent2002是什么进程 有什么用
  • win7报错0x0000007b
  • win10系统打开文件夹就不停的闪
  • vs2019创建安装程序
  • glCopyBufferSubData
  • 简述js和jquery的关系
  • Android游戏开发案例教程小小弹球
  • angularjs定义全局变量
  • JavaScript中setAttribute用法介绍
  • 完美解决怠速抖动加油就平稳
  • js二分法排序递归
  • jquery当前时间
  • jquery cookie用法
  • 什么东西的海关不能寄
  • 国家电子税务总局重庆电子税务局
  • 领了不动产权证房子可以卖吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设