

<div v-for = 'item in list'>
<div @click="getImageTypeIndex(index)">
<el-upload
class="upload-demo"
drag
:action="uploadUrl"
:headers = "{token : userToken}" //带用户token
:on-success="getImageSuccess" //上传成功
:before-upload="beforeAvatarUpload"
:show-file-list = "false"
:on-error = "getImageError"
> //若上传失败,可继续拖拽
<div v-show="!item.imageUrl">
<i class="el-icon-upload"></i>
<p class="c8492A6 f14 upload-p">点击或拖拽 上传<span class="cFF8400">图片</span></p>
<p class="c8492A6 f12 upload-p">只能上传 jpg/png 文件,且不超过500kb</p>
</div> //若上传成功,展示图片
<img v-show="item.imageUrl" :src="imgUrl + '?fileId=' + item.imageUrl + '&token=' + userToken" alt="" height="180">
</el-upload>
</div>
</div>// 获取当前index
getImageTypeIndex:function (index) {this.uploadImageType = index //先在data里定义下,此处省略定义},
// 图片上传成功
getImageSuccess:function (res, file) {
this.$message({
message: '上传成功!',
type: 'success'
});
this.list[this.uploadImageIndex].imageUrl = res.data.fileId //我这里是list里有 imageUrl 来存储图片id,展示的地方根据id自己拼url
},备注:el-upload 的 getImageSuccess 方法 ,暂不支持其他参数,所以为了获取列表的index,可以通过以上方法,在el-upload外层套一个p获取index, 然后再在 getImageSuccess 方法内根据 index 对数据操作。
