需求:正常我们上传都是一个固定的文件传到固定的后端字段里去。
但是有可能遇到,这种自定义新增多个上传组件,也就是遍历数组似的多个同样的上传组件
此时就遇到一个问题:因为是遍历出来的上传组件,导致上传成功:on-success、改变:on-change、删除:on-remove都是用的同样的方法,那么怎么知道刚才上传的这个文件是属于哪个组件的呢
解决方法: 在模板html的时候,结合function的函数,先将遍历的 j 下标return到对应的成功方法里,然后在methods时候,在return出来的对应的方法里,通过下标 j 标识将上传成功的内容(图片名称、url、id等)存入对应的字段中。
.
== :on-remove=“(file, file_list)=>{handlePayRemove(file, file_list, j)}”
:on-change=“(file, file_list)=>{return filePayChange(file, file_list, j)}”
:on-success=“(response, file, file_list)=>{return msgPaySuccess(response, file, file_list, index)}” ==
<div class="page-content-images-right">
<!-- 模块 -->
<template v-for="(item, index) in moduleConfig">
<div class="model-images-right">
<el-upload
class="upload-demo"
:disabled="item.imgDisplay"
drag
:action="uploadUrl"
:data="filepic"
:before-upload="beforeAvatarUpload"
:on-success="(response, file, fileList) => {return uploadSuccess(response, file, fileList, index)}"
:on-error="uploadError"
:show-file-list="false">
<img v-if="item.imageUrl" :src="item.imageUrl" />
<div v-else>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或
<em>点击上传</em>
</div>
</div>
</el-upload>
</div>
</template>
</div>
参考:https://blog.csdn.net/i_am_a_div/article/details/125545564