vue+antd——实现拖拽上传文件——技能提升

news2024/9/26 1:22:02

最近看到有2023年博客之星的入围状况,提示我还差24篇高质量文章才可以入围。前两年由于比较勤奋,文章篇数足够,因此没有遇到这种提示过。现在补上几篇文章,希望可以入围吧。

在这里插入图片描述

1.html代码

<template>
  <div class="clearfix">
    <a-upload-dragger
      :action="`${baseURL}/api/file-management/file/upload`"
      :fileList="fileList"
      :headers="headers"
      @preview="handlePreview"
      @change="handleChange"
      :multiple="false"
    >
      <p class="ant-upload-drag-icon">
        <a-icon type="inbox" />
      </p>
      <p class="ant-upload-text">
        点击或拖拽实现上传
      </p>
      <p class="ant-upload-hint">
        支持单次或批量上传。严格禁止上传公司数据或其他被禁止的文件。
      </p>
    </a-upload-dragger>
    <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel">
      <img alt="example" style="width: 100%" :src="previewImage" />
    </a-modal>
  </div>
</template>

2.script部分代码

<script>
const uuid = require('uuid');
import Cookie from 'js-cookie';
export default {
  props: {
    value: {
      type: String,
      value: '',
    },
    maxCount: {
      type: Number,
      default: 1,
    },
  },
  mounted() {
    this.refresh();
  },
  data() {
    return {
      previewVisible: false,
      previewImage: '',
      fileList: [],
      internelValue: {},
      baseURL: process.env.VUE_APP_API_BASE_URL,
      headers: { Authorization: Cookie.get('Authorization') },
    };
  },
  watch: {
    value(val) {
      this.value = val;
      this.refresh();
    },
  },
  methods: {
    multiple() {
      return this.maxCount > 1;
    },
    refresh() {
      if (this.maxCount < 1) {
        throw 'maxCount必须>=1';
      }
      if (this.value) {
        let urls = [];
        urls.push(this.value);
        this.fileList = urls.map((x) => {
          return {
            name: x,
            uid: uuid.v4(),
            status: 'done',
            id: x,
            url: `${this.baseURL}/api/file-management/file/${x}/getFile`,
          };
        });
      } else {
        this.fileList = [];
      }
    },
    handleCancel() {
      this.previewVisible = false;
    },
    handlePreview(file) {
      this.previewImage = file.url || file.thumbUrl;
      this.previewVisible = true;
    },
    handleChange({ file, fileList }) {
      this.fileList = fileList;
      if (file.status == 'done' || file.status == 'removed') {
        var values = this.fileList
          .filter((x) => x.status == 'done')
          .map((x) => x.id || x.response.fileInfo.id);
        var newValue = this.maxCount == 1 ? values[0] : values;
        this.internelValue = newValue;
        this.$emit('input', newValue);
      }
    },
  },
};
</script>

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

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

相关文章

编译linux内核(三)

内核配置选项[Centos] 挑选核心功能选项介绍1. General setup&#xff08;通用选项&#xff09;2. Enable loadable module support3. Enable the block layer4. Processor type and features(CPU 的类型与功能选择)5. Power management and ACPI options(电源管理功能)6. Bus …

【Python 随练】❀ 绘制正方形

题目&#xff1a; 画图&#xff0c;学用rectangle画方形。 简介&#xff1a; 在本篇博客中&#xff0c;我们将介绍如何使用Python的绘图库来画方形。我们将使用rectangle函数来绘制方形&#xff0c;并提供一个完整的代码示例来演示其用法。 绘制方形&#xff1a; 要绘制方…

Dom4j在某节点上添加已有的Element节点

需求&#xff1a;有两个xml文件需要解析&#xff0c;将A文件的节点解析之后放到了一个List<Element> list的集合中了&#xff0c;然后解析B文件&#xff0c;将list的内容填充到B中去。 众所周知&#xff0c;下面这段代码是可以添加一个节点元素的。 SAXReader reader n…

数通王国历险记之以太网和MAC地址

系列文章目录 数通王国历险记&#xff08;3&#xff09; 目录 前言 一&#xff0c;以太网的定义 二&#xff0c;如何理解以太网 2.1&#xff0c;以太网是一种广播式数据链路层协议 2.2&#xff0c;以太网支持多点接入 2.3&#xff0c;个人电脑的网络接口遵循的就是以太网…

Apikit 自学日记:如何分享 API、项目

开启/关闭在线分享 您可以在线分享项目给团队以外的人&#xff0c;其他人可以通过分享链接在线查看API文档并且进行API测试。通过这种方式查看API文档不需要注册账号&#xff0c;用户可方便查看接口文档和测试接口。 在项目内&#xff0c;点击进入项目管理菜单&#xff0c;选择…

【国产虚拟仪器】基于ZYNQ7045+V7 FPGA的多通道数据同步采集设计方案(二)

多通道数据采集电路主要流程为实现4路模拟信号接收&#xff0c;通过模数转换、信 号处理后的数据经过光纤传输到总站。多通道数据采集电路由模拟信号采集单元、 数字信号处理单元和信号转接板构成&#xff0c;组成框图如图4-1所示。 为了对带宽内的多个关键频点进行侦察监测&a…

Qt的未来发展趋势:跨平台、用户体验和AI的突破

Qt的未来发展有以下几个方面的趋势&#xff1a; 跨平台和多端支持&#xff1a;随着移动设备和嵌入式系统的普及&#xff0c;Qt将继续扩展其跨平台和多端支持能力。Qt已经在移动平台上取得了一定的成功&#xff0c;并且正在不断改进和优化移动开发工具和功能。未来&#xff0c;Q…

Tcl常用命令汇总

往期文章链接&#xff1a; 1&#xff09;基础篇&#xff1a;包括置换方法&#xff0c;特殊字符&#xff0c;incr与append用法&#xff0c;以及执行方式。 Tcl常用命令备忘录: 基础篇 2&#xff09;列表篇&#xff1a;包括list、concat、lrepeat、lindex、llength、lrange、l…

有趣的turtle(一)

关注“Python专栏”微信公众号&#xff0c;回复暗号【面试大全】&#xff0c;立即领取面试题简历模板。 turtle 是 Python 中用来绘图的标准库&#xff0c;它简单且有趣&#xff0c;很多Python初学者都愿意将它作为第一个学习对象。 下面的内容主要包含 turtle 的基本用法和一…

OpenCV(加载、修改、保存图像)

目录 1、图像加载 2、显示图像 3、修改图像 4、图像保存 OpenCV官方文档查询地址&#xff1a;OpenCV: OpenCV modules 1、图像加载 加载图像&#xff08;用cv::imread )imread功能是加载图像文件成为一个Mat对象&#xff0c;其中第一个参数表示图像文件名称 第二个参数&…

还在一步步搭建平台吗?找对方法更重要喔~

前言&#xff1a; 如今&#xff0c;随着信息化时代互联网的高速发展&#xff0c;繁琐的流程和线下的工作已经不能满足社会发展的需求&#xff0c;这个时候大家都知道系统是唯一一个可以快速解决的方法。但每个企业的需求不一样&#xff0c;成品型的系统未必能满足企业的属性。但…

MySQL数据库--------简单理解文件的相关信息

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com ———————————————————————————————————— 目录 文件的信息 文件的权限 权限的赋予 —————————————————————————————— 插播一些…

INFORMIX存储过程

一、存储过程概述 存储过程是一个用户定义的函数,由存储过程语句(SPL) 和一组SQL语句组成&#xff0c;以可以执行代码形式存储在数据库中&#xff0c;和表、视图、索引等一样&#xff0c;是数据库的一种对象。 存储过程语言SPL&#xff08;Stored Procedure Language&#xf…

硬件重生:PC与数码市场迎来历史性繁荣,搞机佬的春天回来了

在过去的一年里&#xff0c;我们看到了一场全球范围内的数字革命。在这次变革中&#xff0c;PC硬件和数码产品的市场表现令人瞩目&#xff0c;显著反弹。根据我们的调研数据&#xff0c;这一领域的市场规模和销售量都大幅增长&#xff0c;这预示着搞机佬们的春天已经来临。 PC硬…

Vue项目前端部署——nginx方式

Vue项目前端部署——nginx方式 1. 准备好服务器&#xff0c;下载安装nginx并启动2. vue项目编译打包3. 将dist目录上传到服务器上4. 配置nginx安装目录下的nginx.config文件5. 重启nginx6. 访问地址 1. 准备好服务器&#xff0c;下载安装nginx并启动 随便在网上找一篇文章&…

AI 绘画 - 建筑绘图辅助设计之 SD 基础

前情提要 如果你想学会一门东西&#xff0c;那么就给交给自己一个明确的任务&#xff0c;然后独立完成&#xff0c;之后我们就可以掌握这门技术了&#xff1b; 简介 SD建筑绘画主要目的是将建筑概念转化为可视化的表达形式&#xff0c;以便更好地传达设计理念给业主、团队成…

银河麒麟服务器 v10 sp1 安装 .Net6.0

系统版本、架构&#xff1a; 如果系统自带.netcore3&#xff0c;先卸载系统自带的.netcore3&#xff1a; 卸载.netcore3&#xff1a; 我的系统没有自带.netcore3&#xff0c;也没有yum命令。 下载二进制文件安装SDK&#xff1a; 下载 .NET 6.0 (Linux、macOS 和 Windows) 下载…

CUDA中的缓存

CUDA缓存包括L1缓存和L2缓存。 SM加载数据&#xff0c;根据不同的设备和类型分为三种路径&#xff1a; 一级和二级缓存常量缓存只读缓存 常规的路径是一级和二级缓存&#xff0c;需要使用常量和只读缓存的需要在代码中显式声明。但是提高性能&#xff0c;主要还是要取决于访问…

最全:2023年华为认证HCIA+HCIP题库合集(含答案解析)

随着华为业务也全球领域的迅猛发展&#xff0c;越来越多人开始重视华为认证的重要性。 想要通过华为认证&#xff0c;除了进行专业的学习&#xff0c;练题刷题也是最重要的一环&#xff0c;今天给大家提供一份全真的华为认证HCIAHCIP真题文档&#xff0c;帮助大家顺利备考&…

双端队列和C++ std::deque详解

文章目录 1. 双端队列和std::duque2. deque的用法2.1 deque的定义和声明2.2 成员函数2.2.1 元素访问assignatoperator[]frontback 2.2.2 迭代器begin、end和cbegin、cendrbegin、rend和crbegin、crend 2.2.3 容量emptysizemax_sizeshrink_to_fit 2.2.4 修改器clearinsertemplac…