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

  • 黑鲨4spro怎么截屏(黑鲨4pro如何截屏)

    黑鲨4spro怎么截屏(黑鲨4pro如何截屏)

  • 苹果的id号可以更换吗(苹果的id号可以注销吗)

    苹果的id号可以更换吗(苹果的id号可以注销吗)

  • 苹果怎么取消流量下载限制(苹果怎么取消流量下载超过200)

    苹果怎么取消流量下载限制(苹果怎么取消流量下载超过200)

  • 华为鼠标闪红灯是什么意思(华为鼠标闪红灯但能用)

    华为鼠标闪红灯是什么意思(华为鼠标闪红灯但能用)

  • 苹果前置拍照左右相反怎么调整(苹果前置拍照左上角黑屏)

    苹果前置拍照左右相反怎么调整(苹果前置拍照左上角黑屏)

  • b-d9电池是什么手机(b一d9是什么手机电池)

    b-d9电池是什么手机(b一d9是什么手机电池)

  • 手机面容什么意思(手机面容功能有什么用)

    手机面容什么意思(手机面容功能有什么用)

  • 4g手机为什么显示2g网络(4g手机为什么显示两g网络)

    4g手机为什么显示2g网络(4g手机为什么显示两g网络)

  • 打印机只转不走纸(打印机只转动不打印)

    打印机只转不走纸(打印机只转动不打印)

  • 平板上的软件停运怎么修复(平板的软件停止运行怎么办)

    平板上的软件停运怎么修复(平板的软件停止运行怎么办)

  • 千人群需要什么条件(创建千人群的条件)

    千人群需要什么条件(创建千人群的条件)

  • 小米手机启用双4g有什么用(小米手机启用双4g什么意思)

    小米手机启用双4g有什么用(小米手机启用双4g什么意思)

  • 飞行模式收得到来电显示吗(飞行模式收得到手机信息吗)

    飞行模式收得到来电显示吗(飞行模式收得到手机信息吗)

  • 云闪付付款码时效期是多少(云闪付付款码失效是什么原因)

    云闪付付款码时效期是多少(云闪付付款码失效是什么原因)

  • vivo手机设置双卡切换(vivo手机设置双卡在哪里)

    vivo手机设置双卡切换(vivo手机设置双卡在哪里)

  • 天猫积分会清零吗(天猫积分会清零吗年底)

    天猫积分会清零吗(天猫积分会清零吗年底)

  • td-lte是华为啥型号(华为td_lte)

    td-lte是华为啥型号(华为td_lte)

  • 手机卡可以注销吗(手机卡可以注销了可以重新办卡)

    手机卡可以注销吗(手机卡可以注销了可以重新办卡)

  • huawei和honor的区别(华为和华为荣耀有啥区别)

    huawei和honor的区别(华为和华为荣耀有啥区别)

  • 微信视频如何录像(微信视频如何录像保存)

    微信视频如何录像(微信视频如何录像保存)

  • 网线有哪些类型(网线常用的网线分类)

    网线有哪些类型(网线常用的网线分类)

  • 苹果手机查看激活日期教程(苹果手机查看激活id账号信息)

    苹果手机查看激活日期教程(苹果手机查看激活id账号信息)

  • mac bootcamp怎么安装win10? bootcamp安装win10详细教程(bootcamp怎么直接安装)

    mac bootcamp怎么安装win10? bootcamp安装win10详细教程(bootcamp怎么直接安装)

  • 人工智能导论(第四版)王万良编著课后习题答案(人工智能导论报告)

    人工智能导论(第四版)王万良编著课后习题答案(人工智能导论报告)

  • 认证不过的进项税是怎么调出分录?
  • 个人提供建筑安装劳务如何缴纳个人所得税
  • 个人注册公司有什么优惠政策
  • 餐饮服务税率是几个点
  • 发票的红冲和作废有何区别
  • 小型微利企业年应纳税所得额不超过100万元的部分
  • 资产入股会计处理
  • 不得抵扣的进项税额转出会计分录
  • 出差怎么订机票
  • 员工的油费补贴怎么算
  • 信用卡产生滞纳金
  • 汇票本票的区别
  • 注资的设备出售怎么处理
  • 原材料的运输费怎么做会计分录
  • 事业单位购入存货分录
  • 营改增后建筑安装发票
  • 电子钥匙续费能退款吗
  • 进项税额转出与销售额配比异常
  • 许可费怎么进行分类
  • 出租房产免收租金,如何缴纳房产税
  • 购进原材料科目
  • 香港公司可以给个人打款吗
  • 无形资产的增值税怎么算
  • bios是什么请简要介绍一下
  • php二维数组遍历
  • linux web gui
  • mac 怎么操作
  • Mac SIP系统完整性保护开启及关闭的方法介绍
  • 旧房转让土地增值税计算案例
  • 个人开工程款票在哪开票
  • 招待费的范畴
  • 什么是所得税收入
  • 质保金 销售费用
  • 本月增加的无形资产数量
  • php 文件目录
  • 库存盘点差异会计分录
  • 支付临时工工资,需要个税申报吗
  • 农产品来源用途是什么
  • 应补退税额是什么意思 法律
  • 软件企业研发费用
  • 小规模企业税收优惠政策2022
  • 承兑汇票多付退税怎么算
  • 报销差旅费如何做记账凭证
  • 建筑工程人工费调整
  • 法院强制执行根本没用
  • 新公司几个月不报税
  • 服装厂做的都是什么产品
  • 土地价款抵减销项税
  • 挂靠经营的会计处理是?
  • 现金流动负债比率越大越好吗
  • 可转债举例说明
  • 房屋租赁账务如何做分录
  • 设计会计凭证
  • 企业投资人类型怎么选
  • sqlserver用户权限不给增删查改表结构权限
  • mysql 5.1.6
  • linux下mysql的root密码忘记的解决方法
  • windows10取消fn功能键
  • Win7 64位系统声卡重装过程中出现失败的解决方法
  • centos chrony
  • win8系统怎么设置
  • win8怎么把c盘恢复出厂设置
  • ubuntu10.04 root的帐户启用方法
  • 今日推送是什么
  • windows7怎么禁用网络
  • win10系统office2007每次打开都要配置
  • zlib是什么意思
  • android app 源码
  • [置顶] 《诸天星河》
  • java timer
  • js原型面试题
  • nodejs获取客户端设备信息
  • js函数function用法
  • js进阶视频教程
  • unity中sendmessage
  • 内蒙古税务局电子发票查询
  • 廉租房取消之后有什么补贴
  • 资源税是什么?
  • 企业税收筹划的基本目标
  • 征地税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设