Element-UI 多个el-upload组件自定义上传,不用上传url,并且携带自定义传参(文件序号)

1. 需求: 有多个(不确定具体数量)的upload组件,每个都需要单独上传获取文件(JS File类型),不需要action上传到指定url,自定义上传动作和http操作。而且因为不确定组件数量,所以每次也需要获取是第几个文件(索引),所以也需要实现附加索引这个参数

2. 实现:如下

<el-col v-bind="grid2" v-for="(item, index) in list" :key="index"> # list 不知道一共有几个列表项<el-form-item required :label="item.value" prop="randomAmount"><el-uploadclass="upload-demo"action="none" #这里随便写:http-request="handleFileUpload" #这里会覆盖原本的上传http的操作,从而实现自定义。:limit="1":on-remove="(file, fileList)=> {return onRemove(file, fileList, index)}" #这里的index是自定义索引参数,这种写法能够携带自己的参数:on-change="(file, fileList)=> {return onChange(file, fileList, index)}">  <el-button round>点击上传</el-button></el-upload></el-form-item>
</el-col>
<el-col :span="24"><el-button type="primary" @click="submitForm">确认提交</el-button>
</el-col><script>
export default {data() {return {// 暂存个el-upload的FilefileUploaded: {1: null,2: null,3: null,4: null,5: null // 可以多写几个(确定最多不会上传超过某数量的文件)},list:[ // 根据这个列表,渲染相应数量的el-upload组件{ key: "1", value: "个体工商户/企业营业执照照片" },{ key: "2", value: "政府机关/事业单位/社会组织登记证书照片" },// list 不知道一共有几个列表项,这部分是通过后端请求获取的]}},methods: {// 覆盖默认的http行为handleFileUpload(options, index){},// 文件操作删除onRemove(file, fileList, index){this.fileUploaded[index] = null},// 文件上传onChange(file, fileList, index) {// 判断上传的文件是否是满足格式要求(自定义)if(!file.name.includes('.zip')) {fileList.pop() # 清除上传文件后展示出来的文件图标return this.$message.error("请上传zip压缩包!")}// 判断上传的文件是否超过大小限制(自定义)if (file.size >= 5*1024*1024){ // 5mbfileList.pop()return this.$message.error("大小不能超过5MB!")}// 判断上传的文件的状态(一般不会出错)if(file.status != 'ready'){fileList.pop()return this.$message.error("状态错误")}// 暂存文件this.fileUploaded[index] = file.raw},// 表单上传,先判断文件是否按要求上传了,满足要求的话,构造formDatasubmitForm(){let formdata = new FormData()let formList = []for (let i = 0; i < this.list.length; i++) {// 如果有文件未上传,则报错。确保每个el-upload都上传了文件if (!this.fileUploaded[i]){return this.$message.error('请上传'+this.list[i].value)}formList.push(this.fileUploaded[i])}formdata.append('subMerCertFiles', formList) // formData列表形式// 后面调用接口提交订单}}
}
</script>

演示

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

MongoDB之索引

常用命令 查看表的索引 db.<table>.getIndexes() 查看表索引的大小 db.<table>.totalIndexSize() 重建索引 db.<table>.reIndex() 删除索引 db.COLLECTION_NAME.dropIndex("INDEX-NAME") db.COLLECTION_NAME.dropIndexes() _id 索引无法删…

C++——函数的调用

1&#xff0c;函数功能的调用 功能&#xff1a;使用定义好的函数 语法&#xff1a;函数名&#xff08;参数&#xff09; 示例&#xff1a; #include<bits/stdc.h> using namespace std; //定义加法函数 int add(int num1,int num2){int sumnum1num2;return sum; …

ECTouch 电商微信小程序 SQL注入漏洞复现(CVE-2023-39560)

0x01 产品简介 ECTouch是一款开源的电商系统,为中小企业提供最佳的新零售解决方案 0x02 漏洞概述 ECTouch 电商系统 /ectouch-main/include/apps/default/helpers/insert.php 文件中第285行的 insert_bought_notes 函数中,传入的 $arr[id] 参数未进行验证和过滤,导致未经…

JavaWeb-Cookie与Session

一、概念 是否还记得我们在HTTP概念中提到&#xff1a;HTTP的一大特点是无状态&#xff0c;这意味着多次HTTP请求之间是无法共享数据的。而在请求之间共享一些数据又是我们期望达到的效果。&#xff08;例如登录的记住我功能&#xff09;于是便有了会话跟踪技术&#xff0c;而…

mysql 下载和安装和修改MYSQL8.0 数据库存储文件的路径

一、第一步:下载步骤 下载链接&#xff1a;MySQL :: Download MySQL Installer 选择版本8.0.35&#xff0c;社区版&#xff0c; 点击 Download 下载 安装包 二、第二步:安装步骤 添加环境变量&#xff0c;C:\Program Files\MySQL\MySQL Server 8.0\bin 可以点开MySQL 8.0 Co…

基于python socket实现TCP/UDP通信

两个应用程序如果需要进行通讯最基本的一个前提就是能够唯一的标示一个进程&#xff0c;我们知道IP层的ip地址可以唯一标示主机&#xff0c;而TCP层协议和端口号可以唯一标示主机的一个进程&#xff0c;这样我们可以利用ip地址&#xff0b;协议&#xff0b;端口号唯一标示网络中…

【蓝桥杯EDA设计与开发】立创开源社区分享的关于蓝桥被EDA真题与仿真题的项目分析

立创开源社区内有几个项目分享了往年 EDA 设计题目与仿真题&#xff0c;对此展开了学习。 【本人非科班出身&#xff0c;以下对项目的学习仅在我的眼界范围内发表意见&#xff0c;如有错误&#xff0c;请指正。】 项目一 来源&#xff1a;第十四届蓝桥杯EDA赛模拟题一 - 嘉立…

掌握使用CXF快速开发webservice服务和生成client端技能

文章目录 前言1.安装和配置cxf环境2.创建一个通过maven管理的java项目并引入相关cxf依赖3.使用cxf提供的类编写webservice服务端并发布服务3.1 定义一个webservice服务接口HelloWorld3.2 编写HelloWorld实现类3.3 通过JaxWsServerFactoryBean发布webservice服务3.4 在浏览器中通…

实用干货:最全的Loading动画合集网站!复制即用

大家好&#xff0c;我是大澈&#xff01; 本文约1000字&#xff0c;整篇阅读大约需要2分钟。 感谢关注微信公众号&#xff1a;“程序员大澈”&#xff0c;免费领取"面试礼包"一份&#xff0c;然后免费加入问答群&#xff0c;从此让解决问题的你不再孤单&#xff01…

写点啥 内核调优吧

一、命令xargs --------------- 参数替换 由于很多命令不支持管道|来传递参数&#xff0c;xargs用于产生某个命令的参数&#xff0c;xargs 可以读入 stdin 的数 据&#xff0c;并且以空格符或回车符将 stdin 的数据分隔成为参数&#xff0c;另外许多命令不能接受过多参数&am…

【Linux】相关背景及环境搭建

前言&#xff1a; 认识 Linux, 了解 Linux 的相关背景&#xff0c;学会如何使用云服务器&#xff0c;掌握使用远程终端工具 xshell 登陆 Linux 服务器 文章目录 一、Linux介绍1.1 关于UNIX1.2 Linux的诞生及发展历程1.3 Linux开源1.4 Linux在各个行业的现状1.5 发行版本 二、Li…

【设计模式】腾讯二面:自动贩卖机/音频播放器使用了什么设计模式?

状态模式是什么&#xff1f; 状态模式&#xff0c;也被称作状态对象模式&#xff0c;是一种行为设计模式。 当一个对象的内在状态改变时&#xff0c;允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 它让对象在其内部状态改变时改变自己的行为。外部调用者无需了…