element用户上传头像组件带大图预览,和删除功能

element 用户上传组件不支持大图预览,拿组件的简单修改一些,发表上来主要是记一下,以后可以用

效果图

<template>
    <div class="flex-img">
      <div class="el-upload-list el-upload-list--picture-card" v-show="hideShow">
        <div class="el-upload-list__item is-success">
          <img class="flex-img__image" :src="imageUrl">
          <label class="el-upload-list__item-status-label">
            <i class="el-icon-upload-success el-icon-check"></i>
          </label>
          <span class="el-upload-list__item-actions" >
                          <span
                            @click="handlePictureCardPreview()"
                          >
                      <i class="el-icon-zoom-in"></i>
                    </span>
                    <span class="el-upload-list__item-delete" v-show="disabledBoolean ? false:true">
                        <i class="el-icon-delete" @click.stop="handleRemove()"></i>
                    </span>
                </span>
        </div>
      </div>
      <el-upload
        class="image-uploader"
        :show-file-list="false"
        :headers="headers"
         action="/api/blade-resource/oss/endpoint/put-file"
        :on-success="handleAvatarSuccess"
        :before-upload="beforeUpload"
        v-show="!hideShow">
        <i class="el-icon-plus"></i>
      </el-upload>
      <el-dialog :visible.sync="dialogVisible"     append-to-body>
        <img width="100%" :src="imageUrl" alt="">
      </el-dialog>
  </div>
</template>

<script>

import {getToken} from "@/util/auth";

export default {
  name: "uploadImage.vue",
  data() {
    return {
      file: this.imageUrl ? this.imageUrl : '',
      headers:"", //上传地址
      imageForm:"",//给父组件传值
      dialogVisible: false,//控制大图预览
    };
  },
  props:{
    imageUrl:{//父组件传值过来照片回显
      type:String,
      dispatch() {
        return "";
      }
    },
    disabledBoolean:{//父组件传过来是编辑,还是查看
      type: Boolean,
      default() {
        return false;
      }
    },
  },
  watch:{
    imageUrl(value) {
      this.file = value
    },
    imageForm(value) {//当照片地址改变的时候,给父组件传值
      const list = value;
      this.$emit('updateImage', list);
    }
  },
  computed: {
    hideShow() {//当图片多于一张的时候,就隐藏上传框
      return this.file === '' ? false : true
    }
  },
  methods: {

    handlePictureCardPreview() {
      this.dialogVisible = true;
    },
    beforeUpload(file) {
      const imageSize = file.size / 1024 / 1024 < 1;//上传图片大小不超过1M
      if (!imageSize) {
        this.$message.error('上传封面大小不能超过 1MB!');
      }
      return imageSize;
    },
    //删除照片是清空所有
    handleRemove() {
      this.file = '';
      this.imageUrl="";
      this.imageForm="";
    },
    handleAvatarSuccess(res, file) {
      this.imageUrl =  URL.createObjectURL(file.raw);
      this.imageForm = res.data.name;
    },

  }
}
</script>

<style scoped>
.flex-img {
  display: flex;
}
.image-uploader {
  background-color: #fbfdff;
  border: 1px dashed #c0ccda;
  border-radius: 6px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 148px;
  height: auto;
  cursor: pointer;
  line-height: 146px;
  vertical-align: top;
  text-align: center
}

.image-uploader {
  font-size: 28px;
  color: #8c939d;
}

.image-uploader .el-upload:hover {
  border-color: #409EFF;
}

.flex-img__image {
  width: 146px;
  height: auto;

  border-radius: 6px;
}
</style>

<style>
.avatar-uploader .el-upload {
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.avatar-uploader .el-upload:hover {
  border-color: #409EFF;
}
.avatar-uploader-icon {
  font-size: 28px;
  color: #8c939d;
  width: 178px;
  height: 178px;
  line-height: 178px;
  text-align: center;
}
.avatar {
  width: 178px;
  height: 178px;
  display: block;
}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记:The Reversal Curse: LLMs trained on “A is B” fail to learn “B is A”

iclr 2024 reviewer 评分668 1 intro 论文揭示了自回归大模型&#xff08;LLM&#xff09;中令人惊讶的泛化失败【反转诅咒】 如果模型在“A is B”形式的句子上进行训练&#xff0c;它不会自动泛化到相反的方向“B is A”通过对“Uriah Hawthorne 是深渊旋律的作曲家”等虚构…

微服务项目sc2024父工程

1.基础版本要求 jdk 17maven 3.9mysql 8.0spring boot 3.2.0spring cloud 2023.0.0spring cloud alibaba 2022.0.0.0-RC2 2.创建父工程 2.1.字符编码 2.2.java编译版本 2.3.注解生效激活 2.4.File Type过滤 2.5.父工程中只保留pom文件,其余的删了 3.父工程pom文件 <?xm…

Covalent Network(CQT)推出以太坊质押迁移计划,以增强长期结构化数据可用性、塑造万亿级 LLM 参数体系

作为 Web3 领先的链上数据层&#xff0c;Covalent Network&#xff08;CQT&#xff09;宣布了其将质押操作从 Moonbeam 迁移回以太坊的决定。此举是 Covalent Network&#xff08;CQT&#xff09;走向以太坊时光机&#xff08;EWM&#xff09;的第一步&#xff0c;EWM 是一个为…

TensorFlow学习之:深度学习基础

神经网络基础 神经网络是深度学习的核心&#xff0c;它们受人脑的结构和功能启发&#xff0c;能够通过学习大量数据来识别模式和解决复杂问题。神经网络的基本工作原理包括前向传播和反向传播两个阶段。 前向传播&#xff08;Forward Propagation&#xff09; 前向传播是神经…

OpenC910 datasheet 2.0 翻译

概述 C910是由THEAD半导体有限公司开发的一款RISC-V兼容的64位高性能处理器。它通过架构和微架构创新&#xff0c;在控制流、计算和频率方面提供行业领先的性能。C910处理器基于RV64GC指令集&#xff0c;并实现了XIE&#xff08;XuanTie指令扩展&#xff09;技术。C910采用先进…

友思特应用 | 高精度呈现:PCB多类型缺陷检测系统

导读 PCB等电子产品的精密生产制造过程中&#xff0c;往往需要将缺陷问题100%高精度暴露。友思特 PCB 多类型缺陷检测系统&#xff0c;借由Neuro-T深度学习模型自动排查全部微小缺陷&#xff0c;为工业 PCB 生产制造提供了先进可靠的质量保障。 在现代制造业中&#xff0c;尤其…

TLF9471 - High-Speed CAN FD Transceiver

1 框图描述 2 功能描述 CAN收发器被设计用来承受汽车应用的恶劣条件&#xff0c;并支持12V应用。   SBC的控制器区域网络&#xff08;CAN&#xff09;收发器部分在汽车和工业应用中提供高速&#xff08;HS&#xff09;差分模式数据传输&#xff08;最高可达2Mbaud&#xff09…

kali使用msf+apkhook520+cploar实现安卓手的攻击

学习网络安全的过程中&#xff0c;突发奇想怎么才能控制或者说是攻击手机 边找工作边实验 话不多说启动kali 一、使用msfapktool生成简单的木马程序 首先使用kali自带的msfvenom写上这样一段代码 选择安卓 kali的ip 一个空闲的端口 要输出的文件名 msfvenom -p android/met…

【软件测试】个人博客系统测试

个人博客系统测试 一、项目背景1.1 技术背景1.2 功能背景 二、自动化测试2.1 什么是自动化测试2.2 通过使用selenium进行自动化测试的编写&#xff08;Java实现&#xff09;2.3 编写测试用例&#xff0c;执行自动化测试2.3.1 输入用户名:test,密码:123&#xff0c;登录成功2.3.…

深度学习图像处理04:图像分类模型训练实战——动物分类

这篇博文不涉及理论知识&#xff0c;主要通过一个完整的深度学习模型训练流程&#xff0c;直观地了解深度学习图像分类任务。有关理论的部分&#xff0c;之前几篇博文已经涉及基础部分&#xff0c;之后也会对一些理论进行补充。 本文将结合代码&#xff0c;主要介绍三部分内容…

halcon缺陷检测-印刷品检测(差异化模型),键盘字符缺陷检测

前言 在实际项目中&#xff0c;印刷品缺陷检测是缺陷检测中的难点项目。通常印刷品检测往往具备缺陷小&#xff0c;缺陷所在位置不固定&#xff0c;出现少印或者多印的情况。并且由于产线原因&#xff0c;大量的印刷品在视野中的大小并不是完全一致的&#xff0c;可能出现细微…

【UE5 C++】访问修饰符public/protected/private继承

限制类与类之间访问级别的方法 public 在类中创建一个public的部分&#xff0c;即" public: "&#xff0c;public之下的所有内容都是公共的,可以在类之间访问 private&#xff08;最常见&#xff09; 如若没有指明修饰符&#xff0c;则默认为private 不能在类的外…

文本处理常见命令

目录 前言-了解Linux目录结构 一、cat-查看文件内容 1.表现形式 2.常用选项 3.示例 二、more-查看文件内容 1.表现形式 2.交互操作方法 3.示例 三、less-查看文件内容 1.表现形式 2.交互操作方法 四、head-从头查看文件内容 五、tail-从尾查看文件内容 六、wc-统…

【石上星光】context,go的上下文存储并发控制之道

目录 1 引言2 What&#xff1f;3 How&#xff1f; 3.1 用法一、上下文数据存储3.2 用法二、并发控制 3.2.1 场景1 主动取消3.2.2 场景2 超时取消 3.3 用法三、创建一个空Context&#xff08;emptyCtx&#xff09; 4 Why&#xff1f; 4.1 go中的上下文思想 4.1.1 上下文是什么…

17 - Games101 - 笔记 - 材质与外观

**17 **材质与外观 材质与BRDF 自然界中的材质&#xff1a;丝绸、头发、蝴蝶翅膀表面、寿司表面等等 图形学中的材质&#xff1a;同一个模型之所以渲染出不同结果的原因就是因为材质。在图形学中是给不同的物体指定不同的材质&#xff0c;知道它们如何和光线作用后就能正确的…

体验Docker快速部署微信机器人

找到一个 Docker 部署微信机器人的镜像&#xff0c;简单测试一下。 1 使用 Docker 部署 1.1 拉取最新镜像 docker pull dannicool/docker-wechatbot-webhook1.2 Docker 部署 docker run -d --name wxBotWebhook -p 3001:3001 \ -v ~/wxBot_logs:/app/log \ dannicool/docker…

【C++基础】运算符和流程控制语句

C中的运算符和流程控制语句 一、运算符1. C和Java在通用运算符中的不同之处对比2. C中的位运算符2.1 移位运算符2.2 位逻辑运算符 3. 运算时的类型转换总结3.1 隐式类型转换3.2 显式类型转换&#xff08;强制类型转换&#xff09; 4. 注意 二、流程控制语句1. C和Java在通用流程…

网工内推 | 安全运维、服务工程师,软考中级、CISP优先,六险一金

01 华成峰科技 招聘岗位&#xff1a;安全运维工程师 职责描述&#xff1a; 1、负责安全产品的运维管理&#xff0c;包括设备升级变更、策略配置优化、设备巡检等&#xff1b; 2、负责7*24小时安全监控与应急响应&#xff0c;包括态势感知日志监测、安全事件分析及处置等&#…

【Keil5-报错】

Keil5-报错 ■ 调试烧录出现问题■ 烧录程序失败■ 编译报错 .\Objects\stm32h7_tms.axf: Error: L6218E: Undefined symbol __heap_base (referred from alloc.o).■ Keil5 load 出错■ No Space in execution regions with .ANY selector matching startup ...■ Execution r…

selenium自动化测试实战

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…