element ui的照片墙 默认显示照片
参考地址: element ui的照片墙 默认显示照片
照片显示的数据格式是:[{name: '', url: ''}],:file-list=""默认显示的图片
实际项目开发中需要处理两个问题:① 从后端返回的二进制数据处理为前端image可识别的base64格式; ② 如果从后端返回的数据不为空,那么显示图片,并且隐藏上传按钮,只有当删除展示的图片后才可继续上传

问题①:处理方式可参照:前端imageBuffer设置图片src(后端返回二进制流图片)
问题②:处理方式如下:
// 页面架构
<tr>
<td>项目截图:</td>
<td>
<el-upload action="" :class="{hide: hideUpload}" :http-request="uploadScreenShot" list-type="picture-card" :before-upload="isPic" :on-preview="handlePictureCardPreview" :on-remove="screenShotRemove" :on-change="screenShotChange" :limit="1" :file-list="dialogImageUrlArray">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</td>
</tr>
data() {
return {
projectScreenShot: [], // 项目截图 - 用于存储url
dialogImageUrl: '', // 项目截图 - 图片的url
dialogImageUrlArray: [{ url: '' }], // 项目截图 - 图片的url
hideUpload: false, // 项目截图:是否隐藏上传按钮
dialogVisible: false,
}
}
如果限制只能上传1张图片,且图片上传成功后隐藏上传按钮,需要设置以下几个属性: :on-preview = ''、:on-remove = ''、:on-change=''
// 项目截图:点击'放大'按钮,可以放大图片(点击文件列表中已上传的文件时的钩子)
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
// 项目截图:删除上传文件on-remove事件(文件列表移除文件时的钩子)
screenShotRemove(file, fileList) {
this.hideUpload = fileList >= 1; // 上传的项目截图 < 1时,显示上传按钮
},
// 项目截图:上传文件on-change事件(文件上传时的钩子)
screenShotChange(file, fileList) {
this.hideUpload = fileList.length >= 1; // 上传的项目截图 >= 1时,隐藏上传按钮
},
处理从后端返回的二进制数据,并把处理好的路径赋值给 this.dialogImageUrlArray[0].url ,隐藏上传按钮
// 获取'项目截图'的url
this.$http({
url: this.$http.adornUrl('/web/showimgFile'),
method: 'get',
responseType: "arraybuffer",
params: this.$http.adornParams({
'url' : infoModel.projectIndexUrl
})
}).then(({ data }) => {
let bytes = new Uint8Array(data);
let storeData = "";
let len = bytes.byteLength;
for (let i = 0; i < len; i++) {
storeData += String.fromCharCode(bytes[i]);
}
this.dialogImageUrlArray[0].url = "data:image/png;base64," + window.btoa(storeData);
this.screenShotChange('', this.dialogImageUrlArray); // 隐藏上传按钮
});
element ui的照片墙 默认显示照片的更多相关文章
- element UI select 设定默认值
要为select设定默认值,有两个步骤 1.数据中,声明一个变量param:该变量的值设为你想设定的select option中value 2.控件的 v-model 绑定 param 即可 < ...
- element UI 调整表格行高
使用element UI的table默认属性,绘制表格如下: 该表格的行高太大了,于是想调小一些. 查看官网的文档,table有几个属性, row-style:行的 style 的回调方法,也可以使用 ...
- element ui 修改默认样式
修改element ui默认的样式 如果要组件内全局修改 首先在浏览器里F12找到element默认的UI类名 找到要修改的默认类名以后 在文件中修改代码,重写属性 <style> .el ...
- element ui 1.4 升级到 2.0.11
公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- 上传图片组件封装 element ui
// element ui 文档地址: http://element.eleme.io/#/zh-CN <template> <div> <div class=" ...
- vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
其实这3个讲的是一个问题,先说下问题,我在watch里设置一个监听,当弹窗打开时,自动添加树形的默认选中项, 但奇怪的是this.$refs为undefined,自然setCheckedKeys无法使 ...
- element UI table 过滤 筛选问题
一.问提描述 使用elementUI table 官方筛选案例,发现筛选不是服务器端筛选,而是浏览器端对每一页进行单独筛选. 如何在服务器端筛选? 二.查询Element UI 官网table组 ...
- Vue(十八)Element UI
Elment UI 1. 简介 Element UI是饿了么团队提供的一套基于Vue2.0的组件库,可以快速搭建网站,提高开发效率 ElementUI PC端 MintUI 移动端 [官网](http ...
随机推荐
- 第一个smarty例子--分页显示数据
模板页index.tpl: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
- c语言 nmealib-0.5.3 学习 简单代码 ,供参考
void showInfo1(char *buf) { ];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M, ...
- 启动mongodb报错,无法连接mongodb
报错原因如下: MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 --01T12:: W NETWORK [t ...
- CSV文件规范及其Java解析方式
Comma-separated values(CSV)文件规范见WIKIPEDIA:https://en.wikipedia.org/wiki/Comma-separated_values#RFC_4 ...
- JS 事件介绍
1.设置js对象属性为事件处理程序 事件处理程序属性的名字由“on”后面跟着事件名组成.这些属性名 都必须小写 事件处理程序的缺点:设计都是围绕着假设每个事件目标对于每种事件类型将最多只有一个处理程序 ...
- 依赖管理系统 go modules
golang在1.11版本中引入了新的包管理工具 go mod 类似于maven包管理(多项目公用),而之前的vendor类似于node的node_modules管理(各个项目一份) 依赖信息添加到g ...
- nginx 配置 https 并强制跳转(lnmp一键安装包)
目录 一.安装包 二.配置 三.查看配置文件 3.1.设定强制跳转 https 3.2 Rewrite 常用全局变量举例 一.安装包 安装大家按照官方说的安装即可. ./install.sh lnmp ...
- Unit Testing, Integration Testing and Functional Testing
转载自:https://codeutopia.net/blog/2015/04/11/what-are-unit-testing-integration-testing-and-functional- ...
- arduino系列文章
arduino系列文章 1.Arduino基础入门篇-进入Arduino的世界 2.关于使用Arduino做开发的理解 3.详解Arduino Uno开发板的引脚分配图及定义(重要且基础) 4.Ard ...
- springmvc 参数解析绑定原理
handlerMethodArgumentResolver:方法参数解析器接口,这个接口是springmvc参数解析绑定的核心接口.不同的参数类型绑定都是通过实行这个接口来实现.也可以通过实现这个接口 ...