vue+draggable+el-upload上传图片拖拽重排方法

news2024/11/15 11:15:55

vue+draggable+el-upload上传图片拖拽重排方法

在这里插入图片描述
1.html

<el-row>
  <el-col>
    <el-form-item label="添加视频/图片" prop="device_id">
      <div class="image-upload">
        <draggable v-model="fileList" @update="dataDragEnd">
          <transition-group class="uploader">
            <div v-for="(item, index) in fileList" :key="item.url" class="upload-list">
              <img v-if="item.url" style="width:146px;height: 146px" :src="item.url" />
              <div class="icon-container">
                <span v-if="item.url" @click="handlePreviewNew(index)">
                  <i class="el-icon-zoom-in"></i>
                </span>
                <span v-if="item.url" @click="handleRemoveNew(item, index)">
                  <i class="el-icon-delete"></i>
                </span>
              </div>
            </div>
          </transition-group>
        </draggable>
        <el-upload name="image" ref="uploadFile" class="upload-demo" action="#" multiple :http-request="uolpadMorePic" :file-list="fileList" list-type="picture-card">
          <i class="el-icon-plus avatar-uploader-icon"></i>
        </el-upload>
      </div>
    </el-form-item>
  </el-col>
      <ImageViewer v-if="previewVisible" :on-close="closeViewer" :url-list="[previewPath]" style="z-index: 9999;" />
</el-row>

2.js

import draggable from 'vuedraggable';
import ImageViewer from 'element-ui/packages/image/src/image-viewer.vue';
components: { draggable, ImageViewer },
//拖拽
    //图片方法
    function uploadImage(file) {
      return new Promise(async (resolve, reject) => {
        const formData = new FormData();
        formData.append('source', file.file);
        formData.append('modular', 'sccontrol');
        const { data } = await uploadsImg(formData);
        resolve(data);
      });
    }
    const fileList = ref([]);
    async function uolpadMorePic(file) {
      const data = await uploadImage(file);
      fileList.value.push({
        name: '图片',
        url: data.url,
        uid: Math.floor(Math.random() * 100000),
      });
      fileList.value.map((item, index) => (item.sortNum = index + 1));
      Message.success('上传成功');
    }
    function handleRemoveNew(file, index) {
      fileList.value.splice(index, 1);
    }
    const previewVisible = ref(false);
    const previewPath = ref('');
    function handlePreviewNew(index) {
      previewPath.value = fileList.value[index].url;
      previewVisible.value = true;
    }
    function closeViewer() {
      previewVisible.value = false;
    }
    function dataDragEnd() {
      fileList.value.forEach((item, index) => {
        item.sortNum = index + 1;
      });
      fileList.value = fileList.value.filter(item => {
        return item.url != '';
      });
    }

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

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

相关文章

CWDM和DWDM的区别

CWDM粗波分复用技术和DWDM密集波分复用技术都是WDM的应用&#xff0c;两者在原理上相似&#xff0c;但是在一些具体特点和应用场景上会有很大的区别&#xff0c;以满足不同应用场景的需求。 一、了解波分复用技术 WDM即波分复用是将一系列载有信息、但波长不同的光信号合成一…

Python学习从0到1 day8 Python循环语句

我相信有些友情不会被时间打败&#xff0c;但我也知道&#xff0c;我们没有办法像从前一样常常相聚&#xff0c;时常联系&#xff0c;所以我想让你知道&#xff0c;我希望你过的很好&#xff0c;像你的照片一样好&#xff0c;我希望你很顺利&#xff0c;像你曾经在我面前憧憬的…

数据结构·单链表

不可否认的是&#xff0c;前几节我们讲解的顺序表存在一下几点问题&#xff1a; 1. 中间、头部的插入和删除&#xff0c;需要移动一整串数据&#xff0c;时间复杂度O(N) 2. 增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗 3. 增容一般是2倍的增…

【C++】介绍STL中list容器的常用接口

目录 一、STL中的list简介 二、构造函数 2.1 默认构造函数 2.2 填充构造&#xff08;用n个相同的值构造&#xff09; 2.3 迭代器构造 2.4 拷贝构造和赋值运算符重载 三、迭代器 3.1 正向迭代器 3.2 反向迭代器 四、容量相关 4.1 获取list中有效数据的个数 4.2 判…

【Unity学习笔记】第十一 · 动画基础(Animation、状态机、root motion、bake into pose、blendTree、大量案例)

转载引用请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/132081959 作者&#xff1a;CSDN|Ringleader| 如果本文对你有帮助&#xff0c;不妨点赞收藏关注一下&#xff0c;你的鼓励是我前进最大的动力&#xff01;ヾ(≧▽≦*)o 主…

【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

文章目录 方案一览Gateway软件介绍启动容器配置apt源在容器中安装SSH服务器配置SSH服务器生成SSH密钥启动SSH服务为root创建密码连接到容器使用Gateway 方案一览 本篇博客将介绍如何在Docker容器中打开SSH连接服务&#xff0c;以及如何使用JetBrains Gateway软件进行代码调试。…

数据结构与算法-二叉树-路径总和 II

路径总和 II 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], target…

wpf控件Expander集合下的像素滚动

项目场景&#xff1a;Expander集合滚动 如下图&#xff0c;有一个Expander集合&#xff0c;且设置 ScrollViewer.VerticalScrollBarVisibility "Auto" 每个Expaner下包含有若干元素&#xff0c;当打开Expader(即IsExpanded "true"&#xff09;时&#…

企业邮箱遭入侵!印度制药巨头损失超4500万元

近日&#xff0c;印度制药巨头阿尔肯实验室子公司部分员工的企业邮箱遭入侵&#xff0c;导致其子公司被欺诈5.2亿卢比&#xff08;约合人民币4500万元&#xff09;。而根据截至2023年9月的季度财务报告数据&#xff0c;该公司营业收入为263.46亿卢比&#xff0c;净利润为64.65亿…

电脑城衰退的原因是什么?

​电脑城衰退的原因分析 随着科技的飞速发展&#xff0c;电脑城曾经是电子产品交易的热门场所。然而&#xff0c;近年来&#xff0c;电脑城的发展状况不容乐观&#xff0c;正面临着巨大的挑战。究竟是什么原因导致了电脑城的衰退&#xff1f;本文将深入探讨这一问题。 电子商…

05-Seata下SQL使用限制

不支持 SQL 嵌套不支持多表复杂 SQL(自1.6.0版本&#xff0c;MySQL支持UPDATE JOIN语句&#xff0c;详情请看不支持存储过程、触发器部分数据库不支持批量更新&#xff0c;在使用 MySQL、Mariadb、PostgreSQL9.6作为数据库时支持批量&#xff0c;批量更新方式如下以 Java 为例 …

编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡&#xff08;Weighted Load Balancing&#xff09; 轮询&#xff08;Round Robin&#xff09; IP 哈希&#xff08;IP Hash&#xff09; 最少连接&#xff…

服务器和云桥通SDWAN组网的区别

一、服务器的概念 服务器是一种计算设备&#xff0c;用于存储、处理和提供数据和应用服务。通常&#xff0c;服务器配备高性能处理器、大容量存储器和网络接口&#xff0c;其主要目的是提供计算资源、存储资源以及应用程序的托管。这种设备可以用于托管网站、应用程序、数据库和…

1331:【例1-2】后缀表达式的值

【题目描述】 从键盘读入一个后缀表达式&#xff08;字符串&#xff09;&#xff0c;只含有0-9组成的运算数及加&#xff08;&#xff09;、减&#xff08;—&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;四种运算符。每个运算数之间用一个空格隔开…

8.8加油站(LC134-M)

算法&#xff1a; 首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈&#xff0c; 每个加油站的剩余量rest[i]为gas[i] - cost[i]。 说明 各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。 i从0开始累加rest[i]&#xff0c;和记为curSum&#xff0c;一旦curS…

合合信息启信数据发布园区金融解决方案,助力银行精准服务“十四五”特色产业

今年冬季寒潮频现&#xff0c;“尔滨”等冰雪之城却凭借着出色的文旅服务&#xff0c;接连火爆“出圈”。现阶段&#xff0c;作为传统工业基地的哈尔滨正积极向第三产业转型。文旅园区具备产业、技术、知识、劳动力密集属性和特定产业集群规模效应&#xff0c;是推动文化与创意…

腾讯云安装Java11(jdk11.0.21)

腾讯云安装Java11(jdk11.0.21) 下载Java11 下载Linux的jdk包Java11下载路径 https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html 解压jdk 下载完成后&#xff0c;进入自己想要放到的目录下面&#xff0c;输入tar -zxvf jdk-11.0.21_linux-x64_b…

考研C语言刷题基础篇之数组(一)

目录 第一题&#xff1a;用数组作为参数实现冒泡排序 不用函数的冒泡排序 冒泡排序原理&#xff1a; 错误的数值传参冒泡排序 错误的原因 就是什么是数组名 正确的数组传参的冒泡排序 数组的地址和数组首元素的地址的区别 第一题&#xff1a;用数组作为参数实现冒泡排…

oracle19.22的patch已发布

2024年01月16日,oracle发布了19.22的patch 具体patch如下 Reserved for Database - Do not edit or delete (Doc ID 19202401.9) 文档ID规则如下 19(版本)+年份(202x)+(季度首月01,04,07,10).9 往期patch no信息和下载参考文档 oracle 19C Release Update patch num…

喝葡萄酒要懂得选对杯

喝葡萄酒要懂得选对杯 一、什么是葡萄酒杯&#xff1f; 葡萄酒杯&#xff0c;因其有一个细长的底座而被大众形象的称为高脚杯&#xff0c;但在事实上&#xff0c;高脚杯只是葡萄酒杯中的一种。在葡萄酒文化中&#xff0c;酒杯是其不可缺失的一个重要环节&#xff0c;在西方传统…