详解element上传组件before-remove钩子问题解决


Posted in Javascript onApril 08, 2020

应公司业务要求已上传文件删除前提醒确认代码如下

if(file && file.status === "success"){
      return this.$confirm('此操作将永久删除该文件, 是否继续?', '系统提示',{
        confirmButtonText: '确认',
        cancelButtonText: '取消',
        type: 'warning',
        center: true
      }).then(() => {
        this.$message({
          type: 'success',
          message: '删除成功!'
        });
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除!'
        });
        reject(false);
      });
    };

确认会直接调用on-remove方法具体业务代码如下

if (file && file.status==="success") {
    this.$axios.delete("url" + data);
  }

下面是 before-upload 上传文件前的钩子,在遇到大于10M的文件时,我们返回false

//图片上传前钩子
  beforeUpload(file) {
   this.loading = true;
   const isLt2M = file.size / 1024 / 1024 < 10;
 
   if (!isLt2M) {
    this.loading = false;
    this.$message.error("单个附件大小不能超过 10MB!");
   }
   
   return isLt2M;
   // return false;
  }

但是这时会出现自动调用before-remove on-remove钩子

其实此时我们根本没有上传文件,所以也不会需要删除操作,然后我的代码就报错了。

解决办法如下:

//删除图片
  beforeRemove(file, fileList) {
   let a = true;
   if (file && file.status==="success") {
     a = this.$confirm(`确定移除 ${ file.name }?`);
   }
   return a;
  },
  //删除图片
  handleRemove(file, fileList) {
   if (file && file.status==="success") {
    this.$axios.delete("accessory/one/" + file.response.id).then(resp => {
     if (resp.status == 200) {
      this.$message({
       message: "删除成功",
       type: "success"
      });
     }
    });
   }
  },

把不需要执行的代码放入判断内。

if (file && file.status==="success") {
}

到此这篇关于详解element上传组件before-remove钩子问题解决的文章就介绍到这了,更多相关element上传组件before-remove钩子内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js压缩利器
Feb 20 Javascript
javascript中的有名函数和无名函数
Oct 17 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 Javascript
玩转方法:call和apply
May 08 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
Sep 12 Javascript
分享一些常用的jQuery动画事件和动画函数
Nov 27 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 08 #Javascript
javascript 设计模式之组合模式原理与应用详解
Apr 08 #Javascript
JS async 函数的含义和用法实例总结
Apr 08 #Javascript
微信小程序以ssm做后台开发的实现示例
Apr 08 #Javascript
JS co 函数库的含义和用法实例总结
Apr 08 #Javascript
JS Thunk 函数的含义和用法实例总结
Apr 08 #Javascript
JS Generator 函数的含义与用法实例总结
Apr 08 #Javascript
You might like
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
详解Python文本操作相关模块
2017/06/22 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
python安装gdal的两种方法
2019/10/29 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
网络安全类面试题
2015/08/01 面试题
Ajax请求总共有多少种Callback
2016/07/17 面试题
食品厂厂长岗位职责
2014/01/30 职场文书
《称象》教学反思
2014/04/25 职场文书
公司募捐倡议书
2014/05/14 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
人事代理委托书
2014/09/27 职场文书
法人代表证明书范本
2015/06/18 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python