//先上代码

  1. <template>
  2. <!-- data绑定的参数
  3. getuploadloge: [
  4. {
  5. url: '',
  6. name: ''
  7. }
  8. ],
  9. -->
  10. <!-- 编辑操作模板
  11. this.uploadstatue = false
  12. //在父类给该upload组件添加v-if事件
  13. this.$nextTick(() => {
  14. this.uploadstatue = true
  15. })
  16. this.form = res.data
  17. //给upload传参
  18. this.getuploadloge = [
  19. {
  20. name: res.data.Name,
  21. url: res.data.Logo,
  22. status: 0
  23. }
  24. ] -->
  25. <!-- 新增模板
  26. this.uploadstatue = false
  27. //在父类给该upload组件添加v-if事件
  28. this.$nextTick(() => {
  29. this.uploadstatue = true
  30. })
  31. //给upload传参
  32. this.getuploadloge[0].name = ''
  33. this.getuploadloge[0].url = ''
  34. this.getuploadloge[0].status = 1
  35. -->
    <!--上边的添加事件是在父类引用改子类的标签里加v-if事件,来保证组件从新加载,否则组件不会刷新-->
  36. <div>
  37. <p >
  38. 只能上传jpg/png文件,且不超过1024kb
  39. </p>
  40. <el-upload
  41. action="#"
  42. :auto-upload="false"
  43. :file-list="fileList"
  44. :multiple = "false"
  45. :limit="1"
  46. accept=".jpg,.jpeg,.png"
  47. list-type="picture-card"
  48. :class="{hide:hideUpload}"
  49. :on-change="maximg"
  50. :before-upload="beforeAvatarUpload"
  51. :on-remove="handleRemove">
  52. <!-- <img :src="backimg"> -->
  53. <i class="el-icon-plus"></i>
  54. </el-upload>
  55. </div>
  56.  
  57. </template>
  58.  
  59. <script>
  60. export default {
  61. props: ['getuploadloge'],
  62. data() {
  63. return {
  64. hideUpload: false, //隐藏添加窗口
  65. dialogVisible: false, //照片模态框
  66. fileList: [], //图片数组
  67. uploaddate: [], //子组件数组
  68. backimg: '../../../static/images/bank_upload_logo.png'
  69. }
  70. },
  71. mounted() {
  72. //获取图片数据
  73. this.getupload()
  74. },
  75. methods: {
  76. //获取文件数据
  77. getupload() {
  78. this.uploaddate = Object.assign(this.getuploadloge)
  79. if (this.uploaddate[0].status === 1) {
  80. this.fileList.length = 0
  81. this.handleRemove('', this.fileList)
  82. } else {
  83. if (this.uploaddate[0].name) {
  84. this.fileList = this.uploaddate
  85. this.hideUpload = this.fileList.length >= 1
  86. }
  87. }
  88. },
  89. //文件列表移除文件时的钩子
  90. handleRemove(file, fileList) {
  91. if ((fileList.length = 0)) {
  92. this.hideUpload = true
  93. } else {
  94. this.hideUpload = fileList.length >= 1
  95. this.$emit('uploaddate', '')
  96. }
  97. },
  98. handlePictureCardPreview(file) {},
  99. //文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用
  100. maximg(file, fileList) {
  101. const isIMAGE = file.name.substring(file.name.lastIndexOf('.') + 1)
  102. const isLt1M = file.size / 1024 / 1024
  103. if (isIMAGE !== 'jpg' && isIMAGE !== 'png' && isIMAGE !== 'jpeg') {
  104. this.$message.error('上传文件只能是jpg和png格式!')
  105. this.fileList.length = 0
  106. this.handleRemove(file, fileList)
  107. }
  108. if (isLt1M > 1) {
  109. this.$message.error('上传文件大小不能超过 1MB!')
  110. this.fileList.length = 0
  111. this.handleRemove(file, fileList)
  112. }
  113. this.hideUpload = fileList.length >= 1
  114. let reader = new FileReader() //html5读文件
  115. //转BASE64
  116. reader.readAsDataURL(file.raw)
  117. reader.onload = e => {
  118. this.uploaddate = e.target.result
  119. //读取完毕后调用接口
  120. this.$emit('uploaddate', this.uploaddate)
  121. }
  122.  
  123. return isIMAGE && isLt1M
  124. },
  125. beforeAvatarUpload(file, fileList) {
  126. // console.log('123465789')
  127. }
  128. },
  129. name: 'Upload'
  130. }
  131. </script>
  132. <style>
  133. .hide .el-upload--picture-card {
  134. display: none;
  135. }
  136. </style>
  137. <style scoped>
  138. </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. Codeforces 659A Round House【水题,细节】

    题目链接: http://codeforces.com/contest/659/problem/A 题意: 一个圈,按逆时针编号,给定起点,方向和步数,问终点在几号? 分析: 很简单的模拟...注意答 ...

  2. Spring Boot使用MyBatis 3打印SQL的配置

    普通Spring下的XML文件配置: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE co ...

  3. Eclipse导入Maven项目出现:Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2

    错误如下: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2 or one of ...

  4. C#内存管理—职场生存的必修课

    前言 在职场中,确立自身的技术水平很重要,因为,如果你被标记成了技术菜鸟,那么你的工作一旦做快了,大家就会一致的认为这个任务比较简单:如果你未如期完成,则会被各种明嘲暗讽,你不但无法获得合理的表扬,还 ...

  5. 破解电信光猫华为HG8120C关闭路由功能方法

    昨天电信的工作人员来安装了电信的光纤宽带,使用的是华为HG8120C这款光电转换器与路由器一体机 这导致下级路由无法直接使用PPPOE拨号连接到互联网,且无法使用端口映射来实现外网访问 而华为开放给用 ...

  6. android事件分发(二)

    非常早之前写过一篇android事件分发的博客,主要写的是它是怎样分发的,具体非常多原理的东西都没有涉及到.今天就从源代码看android怎样控制它的分发机制. 鉴于手机屏幕的限制,所以android ...

  7. vue Iframe

    1.Iframe.vue <!-- Iframe --> <template> <div> <!-- 标题栏 --> <mt-header tit ...

  8. hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决这个问题 .

    一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"文件夹下,您能够看到一个 Hi3531_SDK_Vx ...

  9. android 开发中用到的工具-持续更新(码农必看)

    1. vim 单文件查看改动利器(一直使用支持各种编码各种文件,各种插件),欢迎下载笔者插件 git clone https://github.com/green130181/vim-conf.git ...

  10. phpqrcode生成带logo的二维码图片及带文字的二维码图片

    <?php require_once "./phpqrcode/phpqrcode.php"; /** * 这样就可以生成二维码了,实际上在png这个方法里还有几个参数需要使 ...