IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 【vue+el-upload】在导入过程中,展示动态百分比进度 -> 正文阅读

[JavaScript知识库]【vue+el-upload】在导入过程中,展示动态百分比进度

vue项目使用element-ui 导入文件时表格区域显示加载百分比 (假的)
请添加图片描述

我的需求是:在导入过程中,展示动态百分比进度
声明属性:

loading: true, // 表格遮罩层
isShowLoading:false, // 百分比div展示判断
timer: null // 定时器

1、百分比进度的div:

 <divstyle="
	 left:45%;
	 position:absolute;
	 top: 44%;
	 font-size:50px;
	 width: 100%;
	 z-index:10086;
	 color: #1890ff;"  
	 v-show="isShowLoading">
   <div class="box" id="div_box">
     <div class="load" id="load"></div>
   </div>
   <span id='result'></span>
 </div>

所以我将加载百分比的定时器写在了导入上传组件上
2、上传组件be like

<el-upload
    class="upload-demo"
    :action="actionFile"
    :headers="headersFile"
    :before-upload="beforeFileUpload"
    :on-progress="onProgressFile"
    :on-success="onSuccessFile"
    name="file"
    :limit="1"
  >
    <el-button
      size="small"
      icon="el-icon-folder-add"
      plain
      type="primary"
      >导入</el-button
    >
  </el-upload>

3、上传前,让表格loading,让百分比div展示
上传时,百分比里面的值利用定时器加载
上传后,表格loading结束,让百分比div消失,清除定时器

// 上传前,让表格loading,让百分比div展示
beforeFileUpload(){
  this.loading = true;
  this.isShowLoading = true;
},
// 上传时,百分比里面的值利用定时器加载
onProgressFile(){
  let n=0;
  let result = document.getElementById('result');
  let load = document.getElementById('load');
  this.timer = setInterval(function(){
    if(n<100){
      // n+=Math.floor(Math.round(Math.random()*(100-10)+10)/10);// 这里采用随机的两位数来模拟
      n+=1;// 这里采用+1来模拟
      if(n>100){n=100};
      result.innerText=n+"%"; 
      load.style.width=n*3+'px';
    }
  },100)
},
//上传后,表格loading结束,让百分比div消失,清除定时器
onSuccessFile(response) {
  clearInterval(this.timer);
  this.timer = null
  // 这里写你自己的代码
  this.loading = false;
  this.isShowLoading = false;
},
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:02:02  更:2022-04-29 12:02:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:07:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码