当前位置: 首页 > news >正文

Vue中el-tree结合vuedraggable实现跨组件元素拖拽

实现效果:

左侧el-tree:

<template><el-treeclass="filter-tree":data="treeData":props="defaultProps":filter-node-method="filterNode"node-key="id"draggable:allow-drop="allowDrop"@node-drag-start="handleDragStart"@node-drag-end="handleDragEndz"ref="tree"></el-tree>
</template>
<script>data() {return {treeData:[],defaultProps: {children: 'children',label: 'datasetColumnName'},}},methods: {filterNode(value, data) {if (!value) return true;return data.datasetColumnName.indexOf(value) !== -1;},// 阻止el-tree默认拖拽allowDrop() {return false;},handleDragStart() {console.log(node.data)if(!node.data.aqlStr) returnthis.draggingItem = node.datathis.isShowDragging = true},handleDragEndz() {this.isShowDragging = false},}
</script>

右侧vuedraggable接收,先npm install vuedraggable,main.js中引入:

import draggable from 'vuedraggable';

Vue.use(draggable)

使用如下:

<draggable v-model="dragList" class="drag_list" :class="{ 'hint': isShowDragging?true:false }" animation="1000"  group="items" @dragover="handleDragOver" @drop="handleTargetDrop($event)"><div class="add_tip" v-if="dragList.length <= 0"><i class="el-icon-plus"></i></div><template v-else v-for="(item, index) in dragList" :key="index">其他代码</template>
</draggable>
<script>export default {data() {return {}},methods: {handleDragOver(e) {e.preventDefault();},handleTargetDrop(e, index) {e.preventDefault();// 阻止冒泡e.stopPropagation();// 将el-tree选中的数据放入dragList中this.dragList.push(this.draggingItem)// 刷新页面this.$forceUpdate()}}}
</script>

文章参考:

https://blog.csdn.net/Turn_to_empty/article/details/126759544

http://www.lryc.cn/news/517785.html

相关文章:

  • 湘潭大学人机交互复习
  • 基于ADAS 与关键点特征金字塔网络融合的3D LiDAR目标检测原理与算法实现
  • Kivy App开发之UX控件DropDown下拉列表
  • 机器学习模型评估指标
  • C# 特性
  • Reactor测试框架之StepVerifier
  • k8s helm部署kafka集群(KRaft模式)——筑梦之路
  • unity action委托举例
  • conda 批量安装requirements.txt文件
  • Flutter:封装一个自用的bottom_picker选择器
  • Group3r:一款针对活动目录组策略安全的漏洞检测工具
  • 支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘
  • 力扣-数组-35 搜索插入位置
  • List ---- 模拟实现LIST功能的发现
  • HashMap和HashTable区别问题
  • mysql -> 达梦数据迁移(mbp大小写问题兼容)
  • leetcode热门100题1-4
  • 作业:IO:day2
  • UVM: TLM机制
  • flink的EventTime和Watermark
  • arcgis的合并、相交、融合、裁剪、联合、标识操作的区别和使用
  • 【Leetcode 热题 100】20. 有效的括号
  • 比较procfs 、 sysctl和Netlink
  • Leetcode 3413. Maximum Coins From K Consecutive Bags
  • MakeFile使用指南
  • 矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM
  • VB.NET CRC32 校验
  • 冒充者综合征上线了
  • 【大模型】百度千帆大模型对接LangChain使用详解
  • Redis相关面试