首页 > 其他分享 >VUE2 使用 el-upload 实现单文件上传、删除、预览(上传后隐藏上传图片按钮)

VUE2 使用 el-upload 实现单文件上传、删除、预览(上传后隐藏上传图片按钮)

时间:2024-09-26 14:21:09浏览次数:9  
标签:el false upload fileList file 上传

实现后效果展示:

上传前:
在这里插入图片描述
上传后:
在这里插入图片描述

注意点:on-change 事件不要与 on-success 事件同时使用

Demo:

<template>
  <div>
    <el-upload
      list-type="picture-card"
      accept="image/*"
      :file-list="fileList"
      :action="uploadImageApi"
      :headers="headers"
      :limit="uploadLimit"
      :auto-upload="true"
      :on-change="uploadChange"
      :before-upload="beforeUpload"
      :class="{ 'upload-hide': hideUploadEdit }"
    >
      <i slot="default" class="el-icon-plus"></i>
      <div slot="file" slot-scope="{ file }">
        <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
        <span class="el-upload-list__item-actions">
          <span class="el-upload-list__item-actions">
            <!-- 图片预览 -->
            <span class="el-upload-list__item-preview" @click="handlePreview(file)">
              <i class="el-icon-zoom-in" />
            </span>
            <!-- 删除图片 -->
            <span class="el-upload-list__item-delete" @click="handleRemove(file)">
              <i class="el-icon-delete" />
            </span>
          </span>
        </span>
      </div>
    </el-upload>
    <el-dialog :visible.sync="dialogVisible">
      <img width="100%" :src="addForm.faceUrl" alt="" />
    </el-dialog>
  </div>
</template>
<script>
import { getToken } from '@/utils/auth'
import { mapGetters } from 'vuex'
export default {
  data() {
    return {
      addForm: {
        faceUrl: null,
      },
      uploadLimit: 1,
      dialogVisible: false,
      disabled: false,
      hideUploadEdit: false,
      headers: {
        Authorization: getToken(),
      },
      fileList: [],
    }
  },
  computed: {
    ...mapGetters(['uploadImageApi']),
  },
  methods: {
    uploadChange(file, fileList) {
      this.hideUploadEdit = fileList.length >= this.uploadLimit
    },
    beforeUpload(file) {
      const isLt2M = file.size / 1024 / 1024 < 2
      if (!isLt2M) {
        this.$message.error('上传头像图片大小不能超过 2MB!')
      }
      return isLt2M
    },
    handleRemove(file, fileList) {
      this.hideUploadEdit = false
      this.fileList = []
    },
    handlePreview(file) {
      this.addForm.faceUrl = file.url
      this.dialogVisible = true
    },
  },
}
</script>
<style lang="scss" scoped>
::v-deep .upload-hide .el-upload--picture-card {
  display: none;
}
</style>

如果不想要动画效果css 中可以加上以下代码:

::v-deep .el-upload-list__item {
  transition: none !important;
}

标签:el,false,upload,fileList,file,上传
From: https://blog.csdn.net/weixin_46847041/article/details/142547516

相关文章

  • elementUI 的 input无法输入bug解决
    1、出现bug的原因    是因为数据层虽然改变了,但是并没有引起视图层的变化2、解决方案@input="forceUpdate($event)"//在input框上加输入事件forceUpdate(e){this.$forceUpdate()强制刷新}jeecg-boot框架前端写了个筛选组件:SearchBox.vue,测试人员发现输......
  • 如何在CMakeList项目中集成GNU Autotools 构建模块
    背景:我有三个工具A,B,C,其中A,B是原先MakeFile编译的工具,C是原先GNUAutotools自动编译的工具。现在希望使用CMakeList统一构建,我的目录如下:||–A|-----/src|-----CMakeList.txt|–B|-----/src|-----CMakeList.txt|–C|-----autoTool|–CMakeList.txt想要起到的效......
  • Electron 框架详解与最新动态
    什么是Electron?Electron是由GitHub开发并维护的一个开源框架,旨在使用Web技术(如HTML、CSS和JavaScript)来构建跨平台的桌面应用程序。它嵌入了Chromium和Node.js,使开发者能够使用这些Web技术在桌面环境中构建应用。Electron的核心优势在于其跨平台兼容性,允......
  • 未公开 用友 NC uploadControl任意文件上传漏洞
     0x01阅读须知        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用......
  • 影刀RPA之自动化上传填表
    了解影刀学习影刀:影刀RPA下载教学版工具名称:影刀-自动化上传填表程序简介:   该程序是模拟人工登录操作,读取文件夹里面的文件上传到该网站并选择填写内容然后提交,依次循环。使用场景:    该程序的优势在于操作方法节省了时间成本,提高了工作效率,从而减少错误率的......
  • READ_ONCE/WRITE_ONCE/ACCESS_ONCE和smp_store_release/smp_load_acquire作用
    READ_ONCE,WRITE_ONCE和ACCESS_ONCE宏在linux内核中出现的频率极高。那么这三个宏到底起了什么样的作用呢?smp_store_release/smp_load_acquire又如何呢?1、宏定义我们先看下READ_ONCE和WRITE_ONCE的宏定义:#defineREAD_ONCE(x)\ ({union{typeof(x)__val;char__......
  • Linux服务器运维管理面板1Panel快速安装及安全配置
    1Panel是一个现代化、开源的Linux服务器运维管理面板,旨在帮助运维人员简化服务器管理任务。它提供了直观的界面和强大的功能,使用户可以通过图形化操作界面对服务器进行管理,减少了对命令行的依赖。1Panel支持多种操作系统,适用于Linux服务器,提供了如网站管理、数据库管......
  • 【GiraKoo】PowerShell美化笔记
    【GiraKoo】PowerShell美化笔记oh-my-poshinitpwsh--config"$env:POSH_THEMES_PATH/powerlevel10k_lean.omp.json"|Invoke-Expression#-------------------------------ps-read-line-------------------------------#引入ps-read-lineImport-ModulePSReadLi......
  • WPF InkCanvas selection mode, save all/selected strokes, load strokes file, sav
    //xaml<Windowx:Class="WpfApp416.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • cPanel&WHM 的将插件转换为帐户工具
    cPanel主机帐户是可以管理多个域名。但在某些情况下,可能希望将附加域分离到单独的cPanel帐户中。在这篇文章中,我们将详细说明如何完成这一操作!具有最高权限的用户可以将附加域移至其自己的独立cPanel帐户。WHM界面首先,登录到您的WHM控制面板。在左侧菜单中选择“ConvertAddonDoma......