详解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 相关文章推荐
jquery 跳到顶部和底部动画2句代码简单实现
Jul 18 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
Oct 17 Javascript
jquery each的几种常用的使用方法示例
Jan 21 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
JS实用的动画弹出层效果实例
May 05 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
Sep 27 Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 Javascript
javascript 缓冲运动框架的实现
Sep 29 Javascript
vue中的数据绑定原理的实现
Jul 02 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输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Python随机函数random()使用方法小结
2018/04/29 Python
儿童python练习实例
2018/05/27 Python
python新手学习使用库
2020/06/11 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
戴尔英国官网:Dell英国
2017/05/27 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
英文自荐信
2013/12/15 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
教师节表彰会主持词
2015/07/06 职场文书
高三英语教学反思
2016/03/03 职场文书