详解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 相关文章推荐
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 Javascript
详解javascript事件绑定使用方法
Oct 20 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
Jul 27 Javascript
JS实现闭包中的沙箱模式示例
Sep 07 Javascript
点击按钮弹出模态框的一系列操作代码实例
Mar 29 Javascript
Vue formData实现图片上传
Aug 20 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
vue中使用v-for时为什么不能用index作为key
Apr 04 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
php-msf源码详解
2017/12/25 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
浅析js封装和作用域
2013/07/09 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python中基础的socket编程实战攻略
2016/06/01 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python里运用私有属性和方法总结
2019/07/08 Python
餐饮商业计划书范文
2014/04/29 职场文书
政府法律服务方案
2014/06/14 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
入党函调证明材料
2014/12/24 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书