//先上代码

<template>
<!-- data绑定的参数
getuploadloge: [
{
url: '',
name: ''
}
],
-->
<!-- 编辑操作模板
this.uploadstatue = false
//在父类给该upload组件添加v-if事件
this.$nextTick(() => {
this.uploadstatue = true
})
this.form = res.data
//给upload传参
this.getuploadloge = [
{
name: res.data.Name,
url: res.data.Logo,
status: 0
}
] -->
<!-- 新增模板
this.uploadstatue = false
//在父类给该upload组件添加v-if事件
this.$nextTick(() => {
this.uploadstatue = true
})
//给upload传参
this.getuploadloge[0].name = ''
this.getuploadloge[0].url = ''
this.getuploadloge[0].status = 1
-->
<!--上边的添加事件是在父类引用改子类的标签里加v-if事件,来保证组件从新加载,否则组件不会刷新-->
<div>
<p >
只能上传jpg/png文件,且不超过1024kb
</p>
<el-upload
action="#"
:auto-upload="false"
:file-list="fileList"
:multiple = "false"
:limit="1"
accept=".jpg,.jpeg,.png"
list-type="picture-card"
:class="{hide:hideUpload}"
:on-change="maximg"
:before-upload="beforeAvatarUpload"
:on-remove="handleRemove">
<!-- <img :src="backimg"> -->
<i class="el-icon-plus"></i>
</el-upload>
</div> </template> <script>
export default {
props: ['getuploadloge'],
data() {
return {
hideUpload: false, //隐藏添加窗口
dialogVisible: false, //照片模态框
fileList: [], //图片数组
uploaddate: [], //子组件数组
backimg: '../../../static/images/bank_upload_logo.png'
}
},
mounted() {
//获取图片数据
this.getupload()
},
methods: {
//获取文件数据
getupload() {
this.uploaddate = Object.assign(this.getuploadloge)
if (this.uploaddate[0].status === 1) {
this.fileList.length = 0
this.handleRemove('', this.fileList)
} else {
if (this.uploaddate[0].name) {
this.fileList = this.uploaddate
this.hideUpload = this.fileList.length >= 1
}
}
},
//文件列表移除文件时的钩子
handleRemove(file, fileList) {
if ((fileList.length = 0)) {
this.hideUpload = true
} else {
this.hideUpload = fileList.length >= 1
this.$emit('uploaddate', '')
}
},
handlePictureCardPreview(file) {},
//文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用
maximg(file, fileList) {
const isIMAGE = file.name.substring(file.name.lastIndexOf('.') + 1)
const isLt1M = file.size / 1024 / 1024
if (isIMAGE !== 'jpg' && isIMAGE !== 'png' && isIMAGE !== 'jpeg') {
this.$message.error('上传文件只能是jpg和png格式!')
this.fileList.length = 0
this.handleRemove(file, fileList)
}
if (isLt1M > 1) {
this.$message.error('上传文件大小不能超过 1MB!')
this.fileList.length = 0
this.handleRemove(file, fileList)
}
this.hideUpload = fileList.length >= 1
let reader = new FileReader() //html5读文件
//转BASE64
reader.readAsDataURL(file.raw)
reader.onload = e => {
this.uploaddate = e.target.result
//读取完毕后调用接口
this.$emit('uploaddate', this.uploaddate)
} return isIMAGE && isLt1M
},
beforeAvatarUpload(file, fileList) {
// console.log('123465789')
}
},
name: 'Upload'
}
</script>
<style>
.hide .el-upload--picture-card {
display: none;
}
</style>
<style scoped>
</style>

//因为我的dialog写的公用组件,需要的可以看下我的其他文章.

//因为我的新增与修改是一个模态框,所以判断那一块可以自行修改.

//file-list绑定的数组格式是:File-list:[{name:名字,url:地址}]

//只要符合这个数组就可以回显.

//其中的属性代表什么官网里有详细解释,在这里就不一一解释了.

//说几个特殊点的.accept属性是点击上传按钮后,弹出的图片选择框的默认后缀.目的是为了加载迅速,如果不加此属性,点击后页面文件过多的情况下会加载很慢.

//注意:accept后面跟的不是验证,accept后面跟的不是验证,accept后面跟的不是验证,如果需要验证请在方法中写校验规则

element中upload单图片转base64后添加进数组,请求接口的更多相关文章

  1. Angular中$watch实现控件改变后实时发送HTTP请求

    实现代码如下 <!DOCTYPE html> <html ng-app="myServiceApp"> <head> <meta char ...

  2. java消除整型数组中重复的元素,排序后输出新数组

    法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...

  3. 分离与继承的思想实现图片上传后的预览功能:ImageUploadView

    本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...

  4. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

  5. Vue项目打包发布后CSS中的背景图片不显示

    相信有很多同学在学习vue的刚开始都遇到过项目打包发布后发现CSS中的背景图片不显示,具体如何解决只需要更改bind的配置即可 修改 build/utils.js 中的 generateLoaders ...

  6. 【PHP】图片转换为base64,经过post传输后‘+’会变成 ‘空格’

    图片转换为base64,经过post传输后‘+’会变成 ‘空格’, 需要用PHP 处理一下 $str= $_POST['img_data']; $str= str_replace(' ','+',$s ...

  7. 在vue项目中,解决如何在element表格中循环出图片列!

    效果图: 1,vue项目环境 2,引入element-ui组件 3,制作表格 此处省去制作循环表格数据那步,想看的可以找回我的博客:element中的表格处理:循环出表格数据 今天想在表格出循环出一列 ...

  8. C#中图片转换为Base64编码,Base64编码转换为图片

    #region 图片转为base64编码的字符串 public string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = ...

  9. JS上传图片-通过FileReader获取图片的base64

    下面文章,我想要的是: FileReader这个对象,可以借助FileReader来获取上传图片的base64,就可以在客户端显示该图片了.同时,还可以把该图片的base64发送到服务端,保存起来. ...

随机推荐

  1. HDU 2059 【DP】

    题意: 中文. 思路: 这题不是自己的思想. 当对第i个点的最优值进行求解的时候一定存在最后一个加油的点j.这里j直接枚举. 另外将0和n+1个加油站定义为起点和终点. dp需要加强训练. #incl ...

  2. Java开发笔记(一百)线程同步synchronized

    多个线程一起办事固然能够加快处理速度,但是也带来一个问题:两个线程同时争抢某个资源时该怎么办?看来资源共享的另一面便是资源冲突,正所谓鱼与熊掌不可兼得,系统岂能让多线程这项技术专占好处?果然是有利必有 ...

  3. java构造方法的特点和理解--三只坚果

    构造方法的特点:1.首先构造方法是基于类,名字必须与类的名字完全相同(构造方法一般是自己编写的类需要初始化)2.每个类都有一个默认的构造方法,既无参数又无返回值,其作用是使用new操作符创建新对象后初 ...

  4. 阿里oss上传图片react组件alioss-react,vue组件alioss-vue (不用我先收藏着,后端看下前端处理方法)

    1.介绍 最近开发了一个项目,其中需要一个上传图片到阿里云的 oss 上面,就是上传图片到阿里云的 oss 上面. 因为之前开发过 vue 的阿里云 oss 上传,所以直接复制粘 vue 的组件. 因 ...

  5. pip命令自动补全功能;设置代理;使用国内源

    这是pip自带的功能 执行的脚本 把脚本写入.zshrc或者profile等里面,执行source立即生效 设置代理: pip --proxy=http://username:password@pro ...

  6. TeamCity - Docker创建

    // 创建Server docker run -it --name teamcity-server-instance \-v /home/tc_datadir:/data/teamcity_serve ...

  7. Mysql不同存储引擎的表转换方法

    Mysql不同存储引擎的表转换方法 1.Alter table直接修改表的存储引擎,但是这样会导致大量的系统开销,Mysql为此要执行一个就表向新表的逐行复制.在此期间,转换操作可能会占用服务器的所有 ...

  8. 阅读《Android 从入门到精通》(33)——Intent 分类

    Intent 分类 显式 Intent:Intent("android.intent.action.CALL", Uri.parse("tel:" + stri ...

  9. sqlzoo练习答案--SELECT within SELECT Tutorial

    This tutorial looks at how we can use SELECT statements within SELECT statements to perform more com ...

  10. phpexcel不能输出中文

    问题描写叙述:在使用phpexcel时,假设在单元格中填充中文内容,会导致输出单元格为空的情况,甚至连中文的字符(?!等)都无法识别. 产生原因:从网上查是utf-8的问题 解决方法:能够用iconv ...