当前位置: 首页 > news >正文

el-upload自定上传列表删除,上传列表已删除,提交数据仍存在问题

 Element UI 中,el-upload 组件支持通过插槽(slot)来自定义文件列表的展示方式。这通常是通过 file-list 插槽来实现的。下面是一个使用 el-upload 组件并通过 file-list 插槽来自定义文件列表展示的完整示例代码。

在这个示例中,我将展示如何自定义每个文件的显示方式,包括文件名、文件大小、上传进度和删除操作。

<template>  <div>  <el-upload  ref="upload_attach"class="upload-demo"  action="你的文件上传接口URL"  :on-preview="handlePreview"  :on-remove="handleRemove"  :file-list="fileList"  :auto-upload="true" <!-- 设置为true以自动上传文件 -->  :on-change="handleChange"  :on-progress="handleProgress" <!-- 监听上传进度 -->  multiple  >  <el-button slot="trigger" size="small" type="primary">选取文件</el-button>  <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>  <!-- 自定义文件列表 -->  <div slot="file" slot-scope="{file}"><div class="file-name">{{ file.name }}</div>  <div class="file-size">{{ formatFileSize(file.size) }}</div>  <div v-if="file.percentage" class="file-progress">{{ file.percentage }}%</div>  <el-button  size="mini"  type="danger"  @click="$refs.upload_attach.handleRemove(file)"  >删除</el-button>  </div>  </el-upload>  </div>  
</template>  <script>  
export default {  data() {  return {  fileList: []  };  },  methods: {  handlePreview(file) {  console.log('preview', file);  },  handleRemove(fileName, fileList, index) {  this.fileList = fileList // 注意更新绑定的fileList,否则已删除的数据仍存在问题},  handleChange(file, fileList) {  // 这里通常不需要手动修改fileList,除非你有特殊的处理逻辑  },  handleProgress(event, file, fileList) {  // 更新文件的上传进度  for (let i = 0; i < fileList.length; i++) {  if (fileList[i].raw === file.raw) {  fileList[i].percentage = event.percent; // 假设event.percent是上传进度百分比  break;  }  }  },  formatFileSize(size) {  if (size / 1024 > 1024) {  return (size / 1024 / 1024).toFixed(2) + ' MB';  } else {  return (size / 1024).toFixed(2) + ' KB';  }  }  }  
};  
</script>  <style>  
.upload-file-list .upload-file-item {  margin-top: 10px;  display: flex;  justify-content: space-between;  align-items: center;  
}  .upload-file-list .file-name,  
.upload-file-list .file-size {  margin-right: 10px;  
}  
</style>

 在上述代码中,直接调用上传组件源码中的handleRemove,去删除自定义slot中的file

 <!-- 自定义文件列表 -->  <div slot="file" slot-scope="{file}"><div class="file-name">{{ file.name }}</div>  <div class="file-size">{{ formatFileSize(file.size) }}</div>  <div v-if="file.percentage" class="file-progress">{{ file.percentage }}%</div>  <el-button  size="mini"  type="danger"  @click="$refs.upload_attach.handleRemove(file)"  >删除</el-button>  </div>  

一定要注意,使用这个$refs.upload_attach.handleRemove(file)删除上传的文件列表,并不会主动的删除绑定的:file-list="fileList" 中fileList的数据,需要配合:on-remove="handleRemove" ,在on-remove中重新给fileList赋值,否则上传时会出现,上传列表中文件删除,提交的时候仍然存在的问题

相关文章:

  • 什么情况?上交所服务器被你们给买崩了?
  • 将Mixamo的模型和动画导入UE5
  • Android OpenGLES2.0开发(三):绘制一个三角形
  • 全方位助力“生活家”丨约克VRF中央空调UDIII舒享系列引领美好生活新潮流
  • Leetcode面试经典150题-39.组合总数进阶:40.组合总和II
  • 【OpenCV】 Python 图像处理 入门
  • vscode 顶部 Command Center,minimap
  • php中根据指定日期获取所在天,周,月,年的开始日期与结束日期
  • C# ReoGrid使用记录
  • 阿里云服务器操作系统 Alibaba Cloud Linux 全新升级,核心场景性能提升超 20%
  • 学习react小记
  • Easy Excel从入门到精通!!!
  • IP与网关的关系
  • 免杀笔记 ---> 无痕Hook?硬件断点 Syscall!
  • C语言中的栈
  • 网络传输文件的问题
  • [译]前端离线指南(上)
  • 【React系列】如何构建React应用程序
  • Django 博客开发教程 16 - 统计文章阅读量
  • Flex布局到底解决了什么问题
  • gulp 教程
  • JS+CSS实现数字滚动
  • js学习笔记
  • mongo索引构建
  • Python实现BT种子转化为磁力链接【实战】
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpiderData 2019年2月25日 DApp数据排行榜
  • ucore操作系统实验笔记 - 重新理解中断
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 前端js -- this指向总结。
  • 用简单代码看卷积组块发展
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​渐进式Web应用PWA的未来
  • ​如何防止网络攻击?
  • #LLM入门|Prompt#3.3_存储_Memory
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (Python第六天)文件处理
  • (ZT)薛涌:谈贫说富
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十)c52学习之旅-定时器实验
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一) springboot详细介绍
  • (一)VirtualBox安装增强功能
  • (转)ObjectiveC 深浅拷贝学习
  • (自适应手机端)行业协会机构网站模板
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net 7 上传文件踩坑
  • .Net Core 中间件与过滤器
  • .Net MVC4 上传大文件,并保存表单