vue中实现拖拽排序功能

news2024/9/20 7:48:20

npm i vuedraggable

<template>
  <div class="app-container">
    <!-- <div :class="canEdit ? 'dargBtn-lock el-icon-unlock' : 'dargBtn-lock el-icon-lock'" @click="removeEvent()">
      {{ canEdit ? '调整' : '锁定' }}
    </div> -->
    <ul class="projset-content">
      <draggable
        style="display: flex; flex-direction: column"
        :forceFallback="true"
        :move="onMove"
        :list="imgList"
        handle=".dargBtn"
        :animation="1000"
        filter=".undraggable"
        fallbackClass="fallbackStyle"
        ghostClass="item_ghost"
        chosenClass="chosenStyle"
        dragClass="dragStyle"
      >
        <li v-for="(item, index) in imgList" :key="index" :class="canEdit ? 'draggable' : 'undraggable'">
          <div class="dargBtn">
            <svg-icon icon-class="drag" />
          </div>
          <img :src="item.path" alt="" />
          <span>{{ item.name }}</span>
        </li>
      </draggable>
    </ul>
  </div>
</template>

<script>
import Draggable from 'vuedraggable'
export default {
  components: { Draggable },
  data () {
    return {
      canEdit: true,
      imgList: [
        {
          path: 'https://lupic.cdn.bcebos.com/20210629/3000005161_14.jpg',
          name: '1'
        },
        {
          path: 'https://lupic.cdn.bcebos.com/20210629/26202931_14.jpg',
          name: '2'
        },
        {
          path: 'https://lupic.cdn.bcebos.com/20210629/27788166_14.jpg',
          name: '3'
        }
      ]
    }
  },
  created () {},
  mounted () {},
  methods: {
    onMove (relatedContext, draggedContext) {
      console.log(relatedContext.relatedContext.list)
    },
    removeEvent (item) {
      if (this.canEdit) {
        this.canEdit = false
      } else {
        this.canEdit = true
      }
      console.log(this.canEdit)
    }
  }
}
</script>

<style scoped lang="scss">
.app-container {
  background: #ffffff;
  height: 100%;
  .dargBtn-lock {
    margin: 0px 50px;
    color: #2ea9df;
  }
  .dragStyle {
    padding: 10px;
    border-radius: 4px;
    opacity: 1;
  }
  .fallbackStyle {
    padding: 10px;
    border-radius: 4px;
    opacity: 1;
  }
  .chosenStyle {
    padding: 10px;
    border-radius: 4px;
    opacity: 1 !important;
  }
  .item_ghost {
    opacity: 0 !important;
  }
  .projset-content {
    list-style-type: none;
    position: relative;
    li {
      display: inline-block;
      margin: 10px;
    }
    img {
      width: 141px;
      height: 100px;
    }
    span {
      justify-content: center;
      display: flex;
    }
    .dargBtn {
      position: absolute;
      line-height: 100px;
      text-align: center;
      width: 141px;
      height: 100px;
      display: none;
      color: white;
      // background: rgba(101, 101, 101, 0.6);
    }
    .draggable {
      cursor: pointer;
      width: 141px;
      height: 100px;
    }
    .draggable:hover .dargBtn {
      display: block;
    }
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1465098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows传文件到Linux系统(拖拽方式)

1、概述? 在平时开发过程中,可能会遇到如下场景: 在自己的Window系统中安装了VMware虚拟机,并在里面安装了Linux系统(Centos,Ubuntu,redhat等)。这个时候我们期望将window中的文件传递到Linux中,传递的过程比较的麻烦。 这个时候我们就可以借助相关工具直接拖拽完成。 …

ubuntu内核卸载重装

目录 问题1.问题复现2.可以正常启动的方式 保存快照卸载有问题的内核重装最新内核参考资料 问题 1.问题复现 ubuntu开机出现如下画面,启动不能正常启动 2.可以正常启动的方式 使用其他内核可以正常工作 保存快照 在解决之前保存快照,防止破坏时恢复 卸载有问题的内核…

Gitea提交代码自动触发Jenkins构建版本

提交代码自动触发Jenkins构建版本 1. 下载Generic Webhook Trigger 2. 配置Generic Webhook Trigger http://JENKINS_URL/generic-webhook-trigger/invoke?tokenruoyi-ui-8978456465 http://192.168.0.136:8090 为jenkisn地址&#xff0c;/generic-webhook-trigger/invoke?…

【selenium】执行 Javascript 脚本 滚动、元素的特殊操作等

某些特殊情况下&#xff0c;使用selenium的api无法操作页面元素&#xff0c;点击、滚动实现的某些功能&#xff0c;可以考虑通过执行js来完成。 为什么不用js写自动化&#xff1f;——selenium第一版是js写的&#xff0c;但js兼容性存在问题&#xff0c;所以引入webdriver 现在…

【C语言-期末项目/项目实践】-贪吃蛇(两万五千字详解,手把手教程博文,期末答辩神助手)

重要&#xff1a;游戏逻辑设计图 目录 1.游戏背景 2.项目效果展示 3.项目实现要求 4.技能要求 5.技术要点 6.Win32 API介绍 6.1Win32API 6.2控制台程序 6.3控制台屏幕上的坐标COORD 6.4GetStdHandle 6.5GetConsoleCursorInfo 6.5.1 CONSOLE_CURSOR_ INFO 6.6 Se…

初始Nginx(基本概念)

目录 一、Nginx的概念 二、Nginx常用功能 1、HTTP(正向)代理&#xff0c;反向代理 1.1正向代理 1.2 反向代理 2、负载均衡 2.1 轮询法&#xff08;默认方法&#xff09; 2.2 weight权重模式&#xff08;加权轮询&#xff09; 2.3 ip_hash 3、web缓存 三、基础特性 四…

JAVA工程师面试专题-Mysql篇

一、基础 1、mysql可以使用多少列创建索引&#xff1f; 16 2、mysql常用的存储引擎有哪些 存储引擎Storage engine&#xff1a;MySQL中的数据、索引以及其他对象是如何存储的&#xff0c;是一套文件系统的实现。常用的存储引擎有以下&#xff1a; Innodb引擎&#xff1a;In…

Git拉取gitee代码至本地

首先需要有Git&#xff0c;才能拉取代码。 安装参考 Git安装与卸载_git卸载重装-CSDN博客 安装好后在自己想要拉取代码的位置&#xff0c;右键Git bash here gitee 点击 复制 填写到打开的窗口即可

GEE数据集——30 米全球年度烧毁面积地图 (GABAM)(更新)

30 米全球年度烧毁面积地图 (GABAM) 迄今为止&#xff0c;全球烧毁面积&#xff08;BA&#xff09;产品只有较高的空间分辨率&#xff0c;因为目前大多数全球烧毁面积产品都是在主动火灾探测或密集时间序列变化分析的帮助下生成的&#xff0c;这需要非常高的时间分辨率。不过&a…

GoLand 相关

goland 下载依赖 go mod tidy&#xff1a;保持依赖整洁 go mod tidy 命令的作用是清理未使用的依赖&#xff0c;并更新 go.mod 以及 go.sum 文件。 go mod tidy 和 go mod vendor 两个命令是维护项目依赖不可或缺的工具。go mod tidy 确保了项目的 go.mod 文件精简且准确&…

Nacos注册中心实战

目录 为什么需要注册中心&#xff1f; 注册中心选型 Nacos是什么&#xff1f; 微服务整合Nacos注册中心实战 Nacos Server环境搭建 微服务提供者整合Nacos 微服务调用者整合Nacos 整合RestTemplateSpring Cloud LoadBalancer实现微服务调用 为什么需要注册中心&#xf…

简单几步通过DD工具把云服务器系统Linux改为windows

简单几部通过DD安装其他系统&#xff0c;当服务器的web控制台没有我们要装的系统&#xff0c;就需要通过DD&#xff08;Linux磁盘&#xff09;工具来更改系统&#xff0c;&#xff08;已知支持KVM系统&#xff09; 本文如何简单的更换系统&#xff0c;不通过web控制台来更换&a…

掌握Docker:让你的应用轻松部署和管理

文章目录 一、引言&#xff08;为什么要学习docker&#xff1f;&#xff09;1.1 环境不一致1.2 隔离性1.3 弹性伸缩1.4 学习成本 二、Docker介绍2.1 Docker的由来2.2 什么是Docker2.3 为什么要用Docker2.3.1 虚拟机2.3.2 Linux容器 2.4 Docker与传统虚拟机的区别2.5 Docker的思…

利用采购软件有效管理采购支出流程

在资本驱动的商业世界中&#xff0c;企业花的每一分钱都必须通过可量化的回报来证明其合理性。 采购支出管理通过简化企业的采购流程来实现支出的无缝优化。适当的程序可通过加强与供应商和贸易伙伴的沟通&#xff0c;来帮助企业最大限度地节省成本。 采购支出管理的重要性 企…

代码随想录算法训练营第四十天 343. 整数拆分、 96.不同的二叉搜索树

代码随想录算法训练营第四十天 | 343. 整数拆分、 96.不同的二叉搜索树 343. 整数拆分 题目链接&#xff1a;343. 整数拆分 - 力扣&#xff08;LeetCode&#xff09; 例如 n 10, 可以拆分为 3 * dp[7] 。因为dp[7]之前已经计算过最大 3 * 4&#xff0c; 所以dp[10] 3 * 3 …

conda 进入python环境里pip install安装不到该环境或不生效

参考&#xff1a;https://blog.csdn.net/weixin_47834823/article/details/128951963 https://blog.51cto.com/u_15060549/4662570?loginfrom_csdn 1、直接进入python Scripts目录下安装 cmd打开运行窗口&#xff0c;cd切换路径至指定虚拟环境下的Scripts路径后再pip安装 擦…

二叉树中的第K大层和

1.题目 这道题是2024-2-23的签到题&#xff0c;题目难度为中等。 考察知识点为BFS算法&#xff08;树的层序遍历&#xff09; 大根堆&#xff08;优先队列&#xff09;。 题目链接&#xff1a;2583. 二叉树中的第 K 大层和 - 力扣&#xff08;LeetCode&#xff09; 给你一棵…

MySQL学习Day18——逻辑架构

一、逻辑架构剖析: 1.服务器处理客户端请求: 首先 MySQL 是典型的C/S架构&#xff0c;即client/Server架构&#xff0c;服务器端程序使用的mysqld。不论客户端进程和服务器进程是采用哪种方式进行通信&#xff0c;最后实现的效果都是:客户端进程向服务器进程发送段文本(SQL语…

QT中调用python

一.概述 1.Python功能强大&#xff0c;很多Qt或者c/c开发不方便的功能可以由Python编码开发&#xff0c;尤其是一些算法库的应用上&#xff0c;然后Qt调用Python。 2.在Qt调用Python的过程中&#xff0c;必须要安装python环境&#xff0c;并且Qt Creator中编译器与Python的版…

docker 可视化管理工具 ui-for-docker

1、查询 docker search ui-for-docker 2、拉取镜像 docker pull uifd/ui-for-docker 3、运行启动容器 docker run -it -d \ --name docker-web \ -p 9010:9000 \ --privilegedtrue \ -v /var/run/docker.sock:/var/run/docker.sock \ ui-for-docker 4、页面访问 ​http:/…