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

news/2024/12/21 15:42:07/

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-uploadclass="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;//上传图片大小不超过1Mif (!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>


http://www.ppmy.cn/news/1413696.html

相关文章

什么是多路复用器滤波器

本章将更深入地介绍多路复用器滤波器&#xff0c;以及它们如何用于各种应用中。您将了解到多路复用器如何帮助设计人员创造出更复杂的无线产品。 了解多路复用器 多路复用器是一组射频(RF)滤波器&#xff0c;它们组合在一起&#xff0c;但不会彼此加载&#xff0c;可以在输出之…

ITK 重采样 resample

Itk 重新采样有二多种情况&#xff0c;这里说二种情况 1. 输入参数 &#xff0c;和输出相关数据&#xff0c;输出范围&#xff0c;spacing &#xff1b; typedef itk::Image< float, 3 > itkFloatImageType;typedef itk::ResampleImageFilter < itkFloatImageType, i…

【IC前端虚拟项目】时序面积优化与综合代码出版本交付

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 到目前为止,我们完成了第一版综合,那么就可以打开报告看一下了,一看就会发现在1GHz时钟下时序真的很差(毕竟虚拟项目里使用的工艺库还是比较旧的,如果用12nm、7mn会好很多): Timing Path Group cl…

[CUDA 学习笔记] 矩阵转置算子优化

矩阵转置算子优化 矩阵转置是一种基础的矩阵操作, 即将二维矩阵的行列进行反转. 本文主要围绕行主序的二维单精度矩阵的转置考虑相关的优化. 以下 kernel 笔者均是在 NVIDIA V100 (7.0 算力) 上进行测试的, 且选择矩阵的行列维度大小为 M2300 N1500. Version 0. 朴素实现 _…

vue3+element+AntDesign(自动导入)+pina+vite+js+pnpm搭建项目框架

vue3elementAntDesign(自动导入)pinavitejspnpm搭建项目框架 文章目录 vue3elementAntDesign(自动导入)pinavitejspnpm搭建项目框架1. 安装pnpm&#xff1a;通过以下命令安装pnpm&#xff0c;它是一个快速、零配置的包管理工具。2. 初始化项目&#xff1a;在命令行中执行以下命…

llinux进程控制

学习进程创建,fork/vfork 学习到进程等待 学习到进程程序替换, 微型shell&#xff0c;重新认识shell运行原理 学习到进程终止,认识$? fork函数 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程…

谈谈什么是 Redis

&#x1f525;博客主页&#xff1a;fly in the sky - CSDN博客 &#x1f680;欢迎各位&#xff1a;点赞&#x1f44d;收藏⭐️留言✍️&#x1f680; &#x1f386;慢品人间烟火色,闲观万事岁月长&#x1f386; &#x1f4d6;希望我写的博客对你有所帮助,如有不足,请指正&#…

【现代C++】委托构造函数

现代C中的委托构造函数&#xff08;Delegating Constructors&#xff09;是C11引入的特性&#xff0c;它允许一个构造函数调用同一个类中的另一个构造函数&#xff0c;以避免代码重复。这种特性在初始化对象时提高了代码的复用性和清晰性。 1. 基本用法 在同一个类中&#xf…