当前位置: 首页 > article >正文

分享一个后端说异步导出,前端的实现方法

最近做项目遇到一个导出报表的功能,后端说是异步的,前端如何处理呢?话不多说直接上方案

在页面中做一个进度条弹窗

<el-dialog : visivle.sync="showProgress" width="30%" :show-close="false" :close-on-click-modal="false">
    <p>正在导出,请稍后...</p>
    <el-progress :text-inside="true" :percentage="percentageVal" color="rgba(142,113,199,0.7)"></el-progress>
</el-dialog>

在导出按钮点击时,将showProress置为true,将percentageVal置为0,然后开始调用一个异步的后端接口,在接口内部传了个type类型表示是哪个报表,之后拿到res之后,res会给返回一个标识,或者是编号之类的,之后前端再调用一个函数来将这个编号传入,

_queryTask()函数主要功能是通过post请求查询任务进度,并根据返回的状态进行响应的处理

请求构建

serialno作为请求参数data中的serialno字段,

使用$http的post方法请求/api/progress/XX接口,设置了超时时间为0并且传递了取消令牌this.source = this.$http.Canceltoken.source()

返回处理

如果返回的code为‘0’,表示请求成功,进一步处理结果

let result = res.data.data

如果uploadStatus为‘0’,表示上传中,更新进度值percentageVal为uploadProgress,并使用setTimeout实现递归查询任务状态

如果uploadStatus为‘1’,表示上传成功,将进度值设为100,取消查询任务(this.source.cancel()),跳转到文件下载页面(window.location.href = `${filApi}/api/file/down/?id=${id}&timestap=XX`),并显示成功消息

如果uploadStatus为‘2’,并且有uploadMessage,表示上传失败,取消查询任务,关闭进度条,显示失败信息

如果返回的code值不为‘0’,显示错误消息


http://www.kler.cn/a/560447.html

相关文章:

  • JVM生产环境问题定位与解决实战(三):揭秘Java飞行记录器(JFR)的强大功能
  • 先进制造aps专题三十 用免费生产排程软件isuperaps进行长期生产计划制定
  • FreiHAND (handposeX-json 格式)数据集-release >> DataBall
  • 如何将本地连接服务器中的文件内容复制到本机的剪贴板
  • 具有快慢思考的语言调节机器人操作
  • 【JavaEE进阶】Spring Boot配置文件
  • 世优科技国内首家 MR 体验店开业,打造 MAS 任意门奇幻之旅
  • 2025年2月科技热点深度解析:AI竞赛、量子突破与开源革命
  • 19-找出字符串中第一个匹配项的下标
  • 拓扑排序的核心算法:BFS应用与实践
  • 国内主流 AI 能力特点对比
  • 2022年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题4)-网络部分解析-附详细代码
  • clickhouse--表引擎的使用
  • 使用S32DS部署Tensorflow lite到S32K3
  • 开源基准测试模拟器:BlueROV2 水下机器人的控制
  • python绘图之swarmplot分布散点图
  • 法线向量在3D机器视觉中的应用
  • 开源神器KRR:用数据驱动K8s资源优化
  • 目标检测数据集-风机叶片缺损检测数据集(适用YOLO全系列)
  • 鸿蒙NEXT开发-位置服务