详解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渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
May 23 Javascript
Javascript setInterval的两种调用方法(实例讲解)
Nov 29 Javascript
浅谈JavaScript函数参数的可修改性问题
Dec 05 Javascript
Node.js中child_process实现多进程
Feb 03 Javascript
JavaScrip常见的一些算法总结
Dec 28 Javascript
Node.js实现文件上传
Jul 05 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
JavaScript 作用域scope简单汇总
Oct 23 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
PHP5 面向对象(学习记录)
2009/12/02 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
python转换摩斯密码示例
2014/02/16 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
python实现操作文件(文件夹)
2019/10/31 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
党校培训自我鉴定
2014/02/01 职场文书
环保倡议书100字
2014/05/15 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
中秋客户感谢信
2015/01/22 职场文书
职位证明模板
2015/06/23 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
入党申请书怎么写?
2019/06/11 职场文书