elementUI 的上传组件<el-upload>,自定义上传按钮样式

方法一:

原理:调用<el-upload>组件的方法唤起选择文件事件

效果:

页面代码:

1、选择图片按钮
<div class="flex_row_spacebetween btn" @click="chooseImg"><span class="el-icon-plus ic-plus-sign"></span> <span style="font-size: 13px;">更换票种图片</span>
</div>
2、展示选择的图片
<div><el-uploadref="piaoTypeDialogUpload"class="piao-type-dialog-upload"action="#":limit="2" :file-list="dialogform.img_files" list-type="picture-card":auto-upload="false" :before-upload="beforeAvatarUpload":on-change="piaoTypePicChange"accept=".png,.jpg"><i slot="default" class="el-icon-plus" ></i><div slot="file" slot-scope="{file}"><img class="el-upload-list__item-thumbnail" :src="file.url" alt=""><span class="el-upload-list__item-actions"><span class="el-upload-list__item-preview" @click="picShow(file)"><i class="el-icon-zoom-in"></i></span><span class="el-upload-list__item-delete" @click="picDel('dialogform',file)"><i class="el-icon-delete"></i></span></span></div></el-upload>
</div>

js代码:(其他逻辑与element文档的上使用一致)

chooseImg(){this.$refs['piaoTypeDialogUpload'].$refs['upload-inner'].handleClick()
},

css代码:

隐藏原来的选择图片按钮

.piao-type-dialog-upload .el-upload-list--picture-card .el-upload-list__item {width: 90px;height: 90px;
}.piao-type-dialog-upload .el-upload--picture-card {display: none;
}

方法二:

原理:把图片显示分离出来,<el-upload>做选择图片使用,单独做一个显示图片的区域

效果:

 页面代码:

1、选择文件按钮
<div><el-uploadaction="#"accept="image/*":on-change="(file)=>picChange(file,item)":show-file-list="false":multiple="item.multiple":before-upload="beforeAvatarUpload":auto-upload="false"><div><i class="el-icon-plus" style="color: #FF4C15;"></i><span style="color: #FF4C15;">上传</span></div></el-upload>
</div>
2、显示图片区域
<div class="imglist" v-if="item.file_list.length != 0"><div class="img-item" v-for="(img,index) in item.file_list" :key="item.pic_id"><img :src="img.url" class="hover" alt="" style="width: 100%;height:100%">3、预览图片,删除图片按钮<span class="el-upload-list--picture-card"><span class="el-upload-list__item-actions"><span class="el-upload-list__item-preview" @click="picShow(img)"><i class="el-icon-zoom-in"></i></span><span class="el-upload-list__item-delete" @click="zizhiPicDel(typeIndex+1,img)"><i class="el-icon-delete"></i></span></span></span></div>
</div>

js 代码:

picChange(file,item){item.file_list.push({pic_id: xxxx,url: xxxx, // 图片地址,就如何从file里获取图片地址(可能你选择图片就上传到服务器了,这时候放的就是服务器返回的地址)});
}

css代码:

.imglist{display: flex;flex-wrap: wrap;
}
.imglist .img-item{width:120px;height:120px;margin-right: 15px;margin-top: 15px; 
}

总结

两个方法的代码量都差不多,看自己的逻辑偏向哪个转得快一点。方法二还需要自己写上删除图片的东西。方法一,图片放大删除都用elementui文档说明里就可以了

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kotlin 基础教程一

Kotlin 基本数据类型 Java | Kotlin byte Byte short Short int Int long Long float Float double Double boolean Boolean c…

ceph数据分布

ceph的存储是无主结构&#xff0c;数据分布依赖client来计算&#xff0c;有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设&#xff1a; 第一&#xff0c;pg的数量稳定&#xff0c;可以认为保持不变&#xff1b; 第二&#xff0c; OSD的数量可以增减&#xff0c;OSD的…

安装和配置 Ansible

安装和配置 Ansible 按照下方所述&#xff0c;在控制节点 control.area12.example.com 上安装和配置 Ansible&#xff1a; 安装所需的软件包 创建名为 /home/curtis/ansible/inventory 的静态清单文件&#xff0c;以满足以下要求&#xff1a; node1 是 dev 主机组的成员 node2 …

软件需求-架构师之路(五)

软件需求 软件需求&#xff1a; 指用户 对系统在功能、行为、性能、设计约束等方面的期望。 分为 需求开发 和 需求管理 两大过程。 需求开发&#xff1a; 需求获取需求分析需求定义&#xff08;需求规格说明书&#xff09;需求验证&#xff1a;拉客户一起评审&#xff0c…

LeetCode150道面试经典题-- 合并两个有序链表(简单)

1.题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 2.示例 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输…

Sencha Ext.NET Crack,构建Blazing快速应用

Sencha Ext.NET Crack,构建Blazing快速应用 Sencha Ext.NET是一个高级的ASP.NET核心组件框架&#xff0c;它包含了强大的跨浏览器Sencha Ext JS库。通过140多个预构建和专业测试的UI组件实现企业级性能和生产效率。Sencha Ext.NET使用尖端的Web技术创建功能强大的Web应用程序&a…

item_password-获得淘口令真实url

一、接口参数说明&#xff1a; item_password-获得淘口令真实url &#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_password 名称类型必须描述keyString是调用key&#xff08…

ATF(TF-A) 威胁模型汇总

安全之安全(security)博客目录导读 目录计划如下&#xff0c;相关内容补充中&#xff0c;待完成后进行超链接&#xff0c;敬请期待&#xff0c;欢迎您的关注 1、通用威胁模型 2、SPMC威胁模型 3、EL3 SPMC威胁模型 4、fvp_r 平台威胁模型 5、RSS-AP接口威胁模型 威胁建模是安全…

十、RabbitMQ集群

一、clustering 1、 使用集群的原因 单台RabbitMQ遇到内存崩溃、机器故障等情况会导致服务不可用单台RabbitMQ只能满足每秒1000条的消息吞吐量 2、搭建步骤 1、准备三台虚拟机 2、修改3台机器的主机名称 分别为node1、node2、node3 vi /etc/hostname 3、配置节点的hosts文…

hive中get_json_object函数不支持解析json中文key

问题 今天在 Hive 中 get_json_object 函数解析 json 串的时候&#xff0c;发现函数不支持解析 json 中文 key。 例如&#xff1a; select get_json_object({ "姓名":"张三" , "年龄":"18" }, $.姓名);我们希望的结果是得到姓名对应…

Springboot 在 redis 中使用 Guava 布隆过滤器机制

一、导入SpringBoot依赖 在pom.xml文件中&#xff0c;引入Spring Boot和Redis相关依赖 <!-- Google Guava 使用google的guava布隆过滤器实现--><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><vers…

leetcode473. 火柴拼正方形(回溯算法-java)

火柴拼正方形 leetcode473 火柴拼正方形题目描述回溯算法 上期经典算法 leetcode473 火柴拼正方形 难度 - 中等 原题链接 - leetcode473 火柴拼正方形 题目描述 你将得到一个整数数组 matchsticks &#xff0c;其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍…