elementUI自定义upload组件,进度条消失解决方法

本文介绍了elementUI的upload组件在自定义过程中遇到的进度条消失问题及其解决方案。关键在于理解file-list数组及其中对象的status和percentage属性。通过动态调整这些属性,可以确保进度条正确显示上传状态。
相信有些小伙伴用elementUI的upload组件时,通过`http-request`属性重写了上传的方法,
然后发现文件列表的进度条消失了ㄟ( ▔, ▔ )ㄏ,下面来看看怎么解决吧。(下面的列子主要是上传视频文件)

重点

进度条的显示效果主要由下面几点决定的:
1.file-list绑定的数组,该数组里面有多少个文件对象,列表就会显示多少个

:file-list="videoFileList"   //videoFileList是自定义的,存放视频文件的数组

2.列表里面的进度条显示,跟绑定的数组里面的对象属性有关,主要是status、percentage两个对象,status决定了进度条的显示状态(uploading 表示正在上传,success 表示上传成功,failed 表示上传失败),percentage决定了进度条的%(也就是说上传了%多少,是接收Number类型)

videoFileList:[
          {//文件对象
            ....
            status:'',
            percentage:0,
            ...
          },
          {//文件对象
            ...
            status:'',
            percentage:0,
            ...
          }
        ]

好了(ง •_•)ง,既然已经知道了这两个属性的作用,那就动态改变他们,就能解决进度条的显示问题了。

个人解决方法

1.在上传方法中实现对文件的status、percentage改变

:http-request="upLoadVideo"   //自定义的上传方法
uploadImgs(fileObj){    //elementUI会自动传一个参数(fileObj)进来,这个参数就是文件对象了,elementUI会自动将这个对象放进绑定的数组里面,如果没有放入就自己push进去就好了
        fileObj.status = 'uploading';   //本人是直接向这个对象里面添加status、percentage两个对象
        fileObj.percentage = 0;
        const formData = new FormData();     //不用看
        formData.append('file', fileObj.file);  //不用看
        formData.append('type', fileObj.file.type);  //不用看
        request({  //不用看
          url:api_list.api_uploadImage + '/' + '?module=showPicture',   //不用看
          method:'post',   //不用看
          data:formData,   //不用看
          timeout:60000   //不用看
          onUploadProgress: function(progressEvent) { // 处理上传进度事件,在这里改变percentage的值吧
		      let percent = (progressEvent.loaded / progressEvent.total * 100).toFixed(0);   //计算出上传的进度,去整数位
		      fileObj.percentage = percent;  //动态设置fileObj的percentage
		    }
        }).then(res=>{
          if(res.success){
            fileObj.status = 'success';  //上传成功后将status属性改成success
          }
        }).catch( err=>{
          if(err){
            fileObj.status = 'failed';
            fileObj.message = '上传失败';
          }
        })
      }

好了,这样就能解决进度条不显示的问题了(~ ̄▽ ̄)~

总结

1.跟绑定的数组有关
2.跟数组里面对象的status、percentage属性有关
处理好这两点就基本可以了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值