使用element ui + vuedraggable 实现页面控件拖拽排序

2023-05-16

项目要实现一些控件的拖拽排序。从而找到了这款vuedraggable控件。
要实现

如上图要实现这些控件的拖拽排序
这是拖拽后
在这里插入图片描述

由于公司网络的原因,项目没有使用npm,都是使用的引入的js

<script type="text/javascript" src="lib/sortable/Sortable.min.js"></script>
<script type="text/javascript" src="lib/vuedraggable/vuedraggable.min.js"></script>

布局代码

<el-form :inline="true">
                   <draggable v-model="filters" dragable="true" :move="getdata" @update="datadragEnd">
                      <transition-group>
                            <el-col :span="8"  v-for="filter in filters" :key="filter.filterKey" style="margin-top: 5px">
                                <el-form-item :label="filter.name" >
                                    <el-input  v-model="filter.displayName" placeholder="请输入设置属性" @focus="openFilterDialog(filter)"></el-input>
                                </el-form-item>
                            </el-col>
                      </transition-group>
                    </draggable>
                    <fitlerdialog v-bind:visable=dialogObjectVisible v-bind:avtivefilter=avtivefilter   v-on:on-filter-data-change="onFilterDataChange" v-on:filterdialogcancle="handleDialogObjectcancle" v-on:filterdialogclose="handleDialogObjectClose"></fitlerdialog>
</el-form>

标签draggable放在你要拖拽的组件的最外层。

相关的处理代码

getdata(evt) {
    console.log(evt.draggedContext.filterKey)
    //这里evt.draggedContext后续的内容根据具体的定义变量而定
},
datadragEnd(evt) {
    console.log('拖动前的索引 :' + evt.oldIndex)
    console.log('拖动后的索引 :' + evt.newIndex);

    let filters = this.filters;
    for(let a=0;a<filters.length;a++){
        filters[a].index = a;
    }
    vm.report.filter = filters;

}

这里是因为我们需要将每个的顺序记录下来所以有业务代码。
每次移动后,可以通过v-model获取所有的控件,他们的顺序是当前排好的顺序,再进行index顺序记录。

evt为object,他的内容较多。
在这里插入图片描述
draggedContext: 被拖拽元素的上下文

index:拖拽元素的指针
element: 拖拽数据本身
futureIndex: 拖动后的index

element如图:
在这里插入图片描述
这是filters定义的数据本身也就是v-model内容。

relatedContext: 拖入区域的上下文

index: 目标元素的index
element:目标数据本身
list: 拖入的列表
component:目标组件

dragged:被拖拽元素的指向

大概就这些,功能较简单,但满足了要求就行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用element ui + vuedraggable 实现页面控件拖拽排序 的相关文章

  • 这或许是个新的开始吧

    其实上大学到现在很多时候我都很迷茫 xff0c 内心有很多感想和体会 xff0c 有时会想着去把它写下来 xff0c 却又在拿起笔的时候退缩 现在我是大二的下学期末 xff0c 回顾这两年的自己 xff0c 或许我比许多同学差很多 xff0
  • 信息化VS数字化

    1 信息化更偏系统建设 xff0c 数字化更偏业务 2 信息化更偏稳态 xff0c 数字化更偏敏态变革 3 信息化更偏流程管理 xff0c 数字化更偏业务赋能 4 信息化更偏流程 xff0c 数字化更偏数据 5 信息化是管理视角 xff0c
  • ?跟谁学_极简英语——公开课01作业

    作业 xff1a 将下列句子的六成分用删除线划掉 xff0c 并翻译出来 1 I hava many letters to write 2 We met a group of pupils 小学生 returning from school
  • ?跟谁学_极简英语——公开课02作业

    作业 xff1a 找出句子的悬挂结构 xff0c 并翻译句子 1 Lin Tao a 14 yeas old schoolboy still didn t show up at school 2 I play tennis with my
  • grafana如何修改默认端口【3000】

    grafana修改默认端口为80后 xff0c 启动会报 bind permission denied 解决方法 xff1a xff08 三种方式 xff09 授予grafana二进制权限 xff08 推荐使用 xff09 span cla
  • 分享【免费】【英语听力】&【背单词】练习网站和微信小程序 博主:杨中科

    内容丰富 xff0c 贴近实战 xff0c 值得一试 英语听力 xff1a https www youzack com 背单词 xff1a https bdc youzack com Recitation Home ChooseDictio
  • connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    docker 守护进程未启动 xff0c 无法使用docker命令 span class token punctuation span root 64 grafana253 span class token punctuation span
  • Win10上Docker无法正常启动 出现install WSL2 kernel update的情况

    文章目录 一 情况描述 二 解决方法 2 1检查自己的Win10版本 2 2下载插件 三 最终效果 写在最后 一 情况描述 当装完docker之后 xff0c 系统提示Windows重新启动 xff0c 作者就重启系统准备使用docker
  • 【JVM规范】2.5.JVM运行时数据区 Run-Time Data Areas

    2 5 运行时数据区Run Time Data Areas JVM为程序执行定义了不同的运行时数据区 xff08 run time data areas xff09 一部分运行时数据区在JVM启动时创建 xff0c JVM退出时被销毁 另一
  • for in遇到的bug

    项目场景 xff1a 由于ie不兼容getElmentsByClassName获取元素 xff0c 所以我自己封装该方法 xff1a ie支持ID与TagName获取元素 问题描述 xff1a 提示 xff1a 这里描述项目中遇到的问题 x
  • 使用C#进行点对点通讯和文件传输(发送接收部分)

    上面介绍了通讯的基类 xff0c 下面就是使用那个类进行发送和接收的部分 xff1a 二 发送部分 xff1a 发送咱们使用了多线程 xff0c 可以同时进行多个任务 xff0c 比如发送文件 发送文本等 xff0c 互不影响 xff1a
  • 这些日子我读过的《java编程思想》

    来到这里实习的时候 xff0c 就准备多读几本书 xff0c 其中第一本就是 Java编程思想 xff0c 后续还会读一些 代码大全 算法导论 之类的书籍 不过这一次通过阅读 java编程思想 xff0c 我收获了实在太多了 xff0c 现
  • CMMI2.0和CMMI1.3有什么区别?

    CMMI资质认证想必已经有不少企业已经了解过了 xff0c 很多企业只了解到CMMI的基础知识 xff0c 却不明白CMMI也有不同的版本 xff0c CMMI1 3版本自动20年10月更改为2 0版本 xff0c 那CMMI的一个版本升级
  • CMMI2.0和1.3之间的区别有哪些?

    CMMI资质认证已经有很多年的历史了 xff0c CMMI的版本也发生了变化 xff0c 从最初的1 3版本演变成至今2 0版本 xff0c 现在的企业在办理的时候使用也都是2 0版本 xff0c 那么这两者之间的变化是什么 xff1f 区
  • Python str isalpha方法

    目录 描述 语法 举例 1 字符串中只包含字母 2 字符串包含数字 符号和字母 描述 isalpha函数检测字符串中是否只包含字母 如果全部是字母组成的字符串 xff0c 则返回True xff0c 否则返回False isalpha 函数
  • Caffe 完全安装指南(GPU) 上

    目录 0 写在前面1 Caffe依赖包安装1 1 ProtoBuffer1 2 Boost1 3 GFLAGS1 4 GLOG1 5 BLAS1 6 ZLIB1 7 HDF51 8 LMDB和LEVELDB1 9 Snappy1 10 Op
  • 质数因子的求解

    质因子 xff08 或质因数 xff09 在数论里是指能整除给定正整数的质数 根据算术基本定理 xff0c 不考虑排列顺序的情况 下 xff0c 每个正整数都能够以唯一的方式表示成它的质因数的乘积 下面求解某一个数的质因子的情况 1 分解为
  • 常见的液晶显示模块类型

    随着市场的发展 人们更加倾向于产品的人机交互对话功能 能够实现交互的方式很多 xff0c 作为对交互界面的各种显示器液晶液晶模块以其低功耗 易控制受到设计者的青睐 于是各种型号 功能的液晶模块涌入市场 xff0c 这就需要对其进行综合及比较
  • 如何在ubuntu系统中安装gnome界面

    首先 xff0c 你需要进入ubuntu系统 xff0c 然后打开终端 然后需要这样操作 xff1a 1 更新软件源 sudo apt get update sudo apt get upgrade y 2 安装Tasksel sudo a
  • 使用 podman 将容器作为 systemd 服务运行

    前置环境要求 xff1a 需要以 CRI O 作为容器运行时 安装 CRI O 及配置国内容器镜像加速器请参考 xff1a 使用 CRI O 容器引擎 本文介绍了如何使用 podman 初始化 systemd 服务 xff0c 以两种不同的

随机推荐