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

  • coloros12内测申请入口官网(coloros12内测怎么申请)

    coloros12内测申请入口官网(coloros12内测怎么申请)

  • bose蓝牙耳机怎么重新配对(bose蓝牙耳机怎么接听电话)

    bose蓝牙耳机怎么重新配对(bose蓝牙耳机怎么接听电话)

  • 华为mate40的屏幕尺寸是多大(华为mate40pro屏幕多少钱)

    华为mate40的屏幕尺寸是多大(华为mate40pro屏幕多少钱)

  • 华为nova5ipro支持otg功能吗(华为nova5ipro支持内存卡扩展吗)

    华为nova5ipro支持otg功能吗(华为nova5ipro支持内存卡扩展吗)

  • 小米手机健康系统在哪里(小米手机健康系统怎么破解)

    小米手机健康系统在哪里(小米手机健康系统怎么破解)

  • iphonex屏幕是2k吗(iphonex是不是2k屏幕)

    iphonex屏幕是2k吗(iphonex是不是2k屏幕)

  • 苹果平板已停用连接itunes是什么意思?(苹果平板已停用连接itunes最简单办法)

    苹果平板已停用连接itunes是什么意思?(苹果平板已停用连接itunes最简单办法)

  • 腾讯会议是视频吗(zoom视频会议)

    腾讯会议是视频吗(zoom视频会议)

  • 手机共享网络怎么连接(手机共享网络怎么连接电脑)

    手机共享网络怎么连接(手机共享网络怎么连接电脑)

  • 数字编码的作用和意义(数字编码的作用和意义三年级上册)

    数字编码的作用和意义(数字编码的作用和意义三年级上册)

  • iphone录屏相册找不到(iphone屏幕录制在相册找不到)

    iphone录屏相册找不到(iphone屏幕录制在相册找不到)

  • 上海12123为什么一直显示繁忙(上海12123服务异常怎么解决)

    上海12123为什么一直显示繁忙(上海12123服务异常怎么解决)

  • 如何调苹果截图清晰度(苹果手机截图怎么调)

    如何调苹果截图清晰度(苹果手机截图怎么调)

  • flyme账号是什么(flyme账号是什么格式的)

    flyme账号是什么(flyme账号是什么格式的)

  • ps闪退是什么原因(ps闪退什么情况)

    ps闪退是什么原因(ps闪退什么情况)

  • 手机酷狗怎么修改歌名(手机酷狗怎么修改歌曲信息)

    手机酷狗怎么修改歌名(手机酷狗怎么修改歌曲信息)

  • 物联卡会自动注销吗(物联卡会自动注销吗没有合约的)

    物联卡会自动注销吗(物联卡会自动注销吗没有合约的)

  • 腾讯大王卡拼多多免流吗(腾讯大王卡拼多多视频免流吗)

    腾讯大王卡拼多多免流吗(腾讯大王卡拼多多视频免流吗)

  • 番茄社区怎么看直播(番茄社区从哪里看直播)

    番茄社区怎么看直播(番茄社区从哪里看直播)

  • 华为p20pro红外线功能在哪(华为p20pro红外线遥控功能在哪里)

    华为p20pro红外线功能在哪(华为p20pro红外线遥控功能在哪里)

  • 手机微信聊天记录如何恢复(手机微信聊天记录删除了电脑上还有吗)

    手机微信聊天记录如何恢复(手机微信聊天记录删除了电脑上还有吗)

  • 如何关闭win11系统触摸屏的功能?永久禁用win11触摸屏的方法步骤(如何关闭win11系统)

    如何关闭win11系统触摸屏的功能?永久禁用win11触摸屏的方法步骤(如何关闭win11系统)

  • Vue3安装配置、开发环境搭建(组件安装卸载)(图文详细)(vue3安装配置)

    Vue3安装配置、开发环境搭建(组件安装卸载)(图文详细)(vue3安装配置)

  • let命令  执行一个或多个表达式(命令执行函数echo)

    let命令 执行一个或多个表达式(命令执行函数echo)

  • 申报未抄税
  • 卷烟消费税是怎么算
  • 应交税费和应交增值税
  • 怎么计提固定资产折旧科目
  • 酒店物业费收取标准2019
  • 银行存款属于其他货币资金核算内容吗
  • 个人所得税是全部收入吗
  • 税控盘锁死日期查询
  • 展位费怎么入账
  • 建筑业企业纳税人税率是多少
  • 核定征收的收入总额包括营业外收入吗
  • 发票丢了企业所得怎么办
  • 事业单位购入三年期国债的会计分录怎么做?
  • 个人转到公司账上的钱能开发票吗
  • 税率调整后之前签的合同用变更吗
  • 固定资产忘了折旧有什么影响
  • 小企业收到下列票据后,银行存款账户不变的是
  • 软件开发公司怎么找客户
  • 建筑业营改增实施指南
  • 企业短期投资的计划和管理过程叫做资本预算
  • 进口应付款融资
  • 其他资本公积核算内容
  • 机动车销售统一专票税率
  • office软件图标不显示
  • 视同销售怎么做账务处理
  • 华为应用市场被锁了,怎么解除密码
  • 车船税的会计分录怎么写
  • mac和mac之间怎么传东西
  • 天然气 初装费
  • 贸易公司如何办理产地证
  • csrsv.exe是什么
  • 全资子公司取得注册证可以免临床
  • php图像
  • php写json
  • 退休返聘人员算临时工吗
  • postman 下载
  • 杀疯了出自哪里
  • 小企业会计准则外币业务
  • 结构性存款随时可取么
  • wordpress怎么安装插件
  • python中字符串与数字相乘的结果
  • cms静态页面生成原理
  • mongodb应用实例
  • 客户多付款不要了,多出这部分是哪种收入
  • 投资收益的主要形式有
  • 金税四期怎么监控个人账号
  • 费用发票处理
  • pycharm怎么安装mysql
  • 私企固定资产报废程序
  • 航空电子客票行程单怎么打印
  • 暂估入库后发票来不了
  • 物业公司代收代付租金要开发票吗
  • 机物料消耗计入什么费用
  • 公司利润如何
  • 租车运货产生的费用
  • 生产型企业出口退税计算
  • 小规模纳税人发票可以抵扣吗
  • 从农民手里租用土地用于科研要开发票吗
  • 会计分录要怎么写
  • win10系统详情
  • java开发经常出差合理吗
  • optimize error by column count
  • 如何设置让自己手机号处于关机状态
  • win10通讯设置在哪
  • win7系统电脑图标不见了
  • win8.1使用教程
  • win xp系统安装
  • kinect unity开发
  • jquery 设置css
  • 复制链接
  • 深入理解中国式现代化论文
  • js数组entries
  • Android应用与开发
  • django modelform
  • android高级开发实战------ui、ndk与安全
  • 地税局局长权利大吗
  • 税务局解决户口吗
  • 财税招商专员是做什么的
  • 非居民企业通俗指
  • 西安税务总局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设