详解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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
js确认删除对话框适用于a标签及submit
Jul 10 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
Jan 22 Javascript
JS弹出新窗口被拦截的解决方法
Aug 09 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 Javascript
JS实现列表页面隔行变色效果
Mar 25 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
Vue实现base64编码图片间的切换功能
Dec 04 Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 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的几个常用加密函数
2016/02/03 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python实现log日志的示例代码
2018/04/28 Python
python获取array中指定元素的示例
2019/11/26 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
总裁办公室主任职责
2014/01/02 职场文书
先进个人获奖感言
2014/01/24 职场文书
销售员岗位职责范本
2014/02/03 职场文书
消防标语大全
2014/06/07 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
分居协议书范本
2014/11/03 职场文书
身份证丢失证明
2015/06/19 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python