vue-element-admin 上传进度条

前言

今天分享一个在 vue-element-admin 中使用的上传组件,使用 elementUI 仪表盘形进度条,可以上传图片、视频。图片、视频尺寸根据传入的参数改变。

效果

报错 Invalid prop: custom validator check failed for prop "percentage".

出现这个错误的原因,并不是因为 dom 已经渲染完成了,而数据还没回来。而是因为 percentage 超出正常取值(0~100)范围。

因为人为的控制进度,所以 percentage 会出现负数现象。

控制进度是因为,后端处理上传数据需要时间,前端已经传完了,但是资源地址返回会慢一些。如果进度条过早走到 100% 而资源地址还没拿到显示不出来,会让用户迷惑。

// 上传进度调用方法实现
xhr.upload.onprogress = function(evt) {
  // evt.total是需要传输的总字节,evt.loaded是已经传输的字节。如果evt.lengthComputable不为真,则evt.total等于0
    if (evt.lengthComputable) {
      // 进度条限制 上传时永远不能达到100% 最大95% 除非收到后端返回值 才设置为100%
      $v.percentage = Math.floor(evt.loaded / evt.total * 100) - 5
      console.log($v.percentage)
    }
}

找到问题后就很好解决了

$v.percentage < 0 ? $v.percentage = 0 : $v.percentage

源码

<template>
  <div>
    <el-upload
      v-if="type=='img&
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Irene1991

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值