详解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 相关文章推荐
取得传值的函数
Oct 27 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
Extjs中ComboBox加载并赋初值的实现方法
Mar 22 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 Javascript
javascript使用avalon绑定实现checkbox全选
May 06 Javascript
js判断手机端(Android手机还是iPhone手机)
Jul 22 Javascript
关于在Servelet中如何获取当前时间的操作方法
Jun 28 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
May 09 Javascript
微信小程序开发实现消息推送
Nov 18 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
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
微信小程序异步处理详解
2017/11/10 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
实践Vim配置python开发环境
2018/07/02 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
物业客服专员岗位职责
2013/11/30 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
连带责任保证书
2014/04/29 职场文书
学习演讲稿范文
2014/05/10 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python