elementUI使用el-uplaod上传多个图片并删除部分图片

前端界面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<el-form-item label="商品轮播图" :rules="[{ required: true, message: '必须要上传图片', trigger: 'blur' }]"
              prop="images">
  <el-upload
      ref="upload"
      :action=webSite
      class="upload-demo"
      drag
      :limit="5"
      :file-list="form.file_list"
      :before-upload="beforeUpload"
      :on-success="handleSuccess"
      :on-remove="handleRemove"
      :on-exceed="handleExceed"
      :headers="uploadHeaders"
      :show-file-list="true"
      multiple
      style="float: left">
    <i class="el-icon-upload"></i>
    <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
    <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过5M</div>
  </el-upload>
</el-form-item>

  其中,主要是on-success 和 on-remove需要特殊处理, form.file_list 初始化为 空列表[]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
handleSuccess(response, file, fileList) {
  this.$message.success('上传成功!')
  this.form.image = response.url;
  if (fileList.every(item => item.status === 'success')) {
    fileList.map(item => {
      /** 这时只需要push进带有response的数据就好 */
      if (item.response) {
        this.form.file_list.push({
          name: item.response.file_name,
          url: item.response.url
        })
      }
    })
  }
  console.log(this.form.file_list)
},

  

1
2
3
4
5
6
7
handleRemove(file) {
  // 通过url找到index并去除列表
  const indexs = this.form.file_list.map((item, index) => index).filter(index => this.form.file_list[index].url === file.url);
  for (let index of indexs) {
    this.form.file_list.splice(index, 1);
  }
},

  

后端接收 form内容,request.data,其中file_list的内容为:

1
'file_list': [{'name': '桃花.png', 'url': 'save_dir/13786f5bfc734da1bb1d31eecd4c453d.png', 'uid': 1692951058963, 'status': 'success'}, {'name': '1-小鸡1.png', 'url': 'save_dir/8d868dddaa7e4ffdad5ae0f077c770a9.png', 'uid': 1692951058964, 'status': 'success'}]

  

posted @   lytcreate  阅读(740)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示