【VUE+ElementUI】通过接口下载blob流文件设置全局Loading加载进度
下载Blob流文件,并以服务形式显示文件下载进度
1、下载接口 增加 config参数,并用...config将该属性加入到请求中;
xxapi.js文件中设置downloadFile下载接口
// 下载文件
export function downloadFile(data, config) {return request({url: '/xx/downloadFile',method: 'post',data: data,responseType: 'blob',timeout: 120 * 60 * 1000,...config})
}
2、在页面中添加以下代码
<el-button type="text" icon="el-icon-download" @click="handleDownload(scope.row)">下载</el-button>
<script>
import { downloadFile } from "@/api/xxapi";
import { Loading } from 'element-ui'
let downloadLoadingInstance;export default {name: "DownloadFile",data() {return {downloadProgress: 0}},methods: {handleDownload(row) {var that = this;downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候 " + that.downloadProgress + '%', spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })const config = {onDownloadProgress: progressEvent => {if (progressEvent.lengthComputable) {that.downloadProgress = Math.round((progressEvent.loaded / progressEvent.total) * 100);downloadLoadingInstance.text = "正在下载数据,请稍候 " + that.downloadProgress + '%';}}};// 从后端请求到 二进制数据,并由后端转成blobdownloadFile({ url: row.url }, config).then((response) => {let downloadName = `${row.fileName}`;this.downloadBlob(response, downloadName); // 二进制流直接取responsedownloadLoadingInstance.close(); // 关闭加载loading效果});},// 下载文件流格式的文件downloadBlob(response, downloadName) {let blob = new Blob([response], {type: "application/json;charset=utf-8",});let href = window.URL.createObjectURL(blob); // 创建下载的链接if (window.navigator.msSaveBlob) {try {window.navigator.msSaveBlob(blob, downloadName);} catch (e) {console.log(e);}} else {// 谷歌浏览器 创建a标签 添加download属性下载let downloadElement = document.createElement("a");downloadElement.href = href;downloadElement.target = "_blank";downloadElement.download = downloadName; // 下载后文件名document.body.appendChild(downloadElement);downloadElement.click(); // 点击下载document.body.removeChild(downloadElement); // 下载完成移除元素window.URL.revokeObjectURL(href); // 释放掉blob对象}}}
}
</script>
相关文章:
【VUE+ElementUI】通过接口下载blob流文件设置全局Loading加载进度
下载Blob流文件,并以服务形式显示文件下载进度 1、下载接口 增加 config参数,并用...config将该属性加入到请求中; xxapi.js文件中设置downloadFile下载接口 // 下载文件 export function downloadFile(data, config) {return request({ur…...
算法的五个重要特性和4个基本标准
五个特性: 1、有穷性:一个算法必须执行有穷步后结束、 2、确定性:对于每种情况下所应执行的操作,在算法中都应该有确切的规定,不会产生二义性, 使得算法的执行者和阅读者都能明确其含义以及如何执行。 3、…...
svelte5中使用react组件
在svelet5中导入并使用react组件库 svelte5中使用react组件 svelte5中使用react组件 在svelet5中导入并使用react组件库, 示例项目地址:https://github.com/shenshouer/my-svelte-react 在svelte5中当前还有问题,无法将children传递到react中渲染 使用…...
iOS - 自定义引用计数(MRC)
自定义引用计数(Custom Reference Counting)是指类可以通过重写 retain/release 等方法来实现自己的引用计数管理机制。这通常用于特殊场景下的内存管理优化。 1. 判断是否使用自定义引用计数 inline bool objc_object::hasCustomRR() {// 检查类是否…...
北航现实场景无人机VLN新基准! OpenUAV:面向真实环境的无人机视觉语言导航,平台、基准与方法
作者:Xiangyu Wang, Donglin Yang, Ziqin Wang, Hohin Kwan, Jinyu Chen, Wenjun Wu1, Hongsheng Li, Yue Liao, Si Liu 单位:北京航空航天大学人工智能学院,香港中文大学多媒体实验室,感知与交互智能中心 原文链接:…...
OpenCV计算机视觉 08 图像的旋转
图像的旋转 下面是一张小猪佩奇的照片,请进行顺时针90度,逆时针90度,180度旋转 方法一:使用了 NumPy 库的 np.rot90() 函数来实现图像的旋转 np.rot90(img, k-1) 表示将输入的图像 img 顺时针旋转 90 度, np.rot90(…...
C++感受15-Hello STL 泛型启蒙
生鱼片和STL的关系,你听过吗?泛型编程和面向对象编程,它们打架吗?行为泛型和数据泛型,各自的目的是? 0 楔 俄罗斯生鱼片,号称俄罗斯版的中国烤鸭,闻名于世。其鱼肉,源于…...
【Java 学习】对象赋值的艺术:Java中clone方法的浅拷贝与深拷贝解析,教你如何在Java中实现完美复制
💬 欢迎讨论:如对文章内容有疑问或见解,欢迎在评论区留言,我需要您的帮助! 👍 点赞、收藏与分享:如果这篇文章对您有所帮助,请不吝点赞、收藏或分享,谢谢您的支持&#x…...
基于高斯混合模型的数据分析及其延伸应用(具体代码分析)
一、代码分析 (一)清除工作区和命令行窗口 clear; clc;clear;:该命令用于清除 MATLAB 工作区中的所有变量,确保代码运行环境的清洁,避免之前遗留的变量对当前代码运行产生干扰。例如,如果之前运行的代码中…...
无人机+Ai应用场景!
军事领域 无人机AI制导技术在军事领域的应用尤为突出。通过AI技术,无人机可以自主执行侦察、监视、打击等多种任务,极大地提高了军事行动的效率和准确性。 侦察与监视:AI无人机能够利用先进的传感器和摄像头,对目标区域进行大范…...
操作手册:集成钉钉审批实例消息监听配置
此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时,能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库,存储钉钉发送的消息,可以忽略,若不配置,则钉钉的消息将不再记录到…...
AI大模型-提示工程学习笔记4
卷首语:我所知的是我自己非常无知,所以我要不断学习。 写给AI入行比较晚的小白们(比如我自己)看的,大神可以直接路过无视了。 不同主题提示词可以完成不同基本任务,常见的提示主题有: 文本概…...
Vue3.5 企业级管理系统实战(一):项目初始搭建与配置
本文详细介绍了如何使用 Vite 构建一个高效的 Vue 3.5 项目框架,并整合了 ESLint、Prettier、EditorConfig、Husky、lint-staged 和 commitlint 等现代化开发工具。通过这些工具的集成,我们能够确保代码质量、格式化和提交规范的一致性,从而提…...
缓存-Redis-缓存更新策略-主动更新策略-Cache Aside Pattern(全面 易理解)
**Cache-Aside Pattern(旁路缓存模式)**是一种广泛应用于缓存管理的设计模式,尤其在使用 Redis 作为缓存层时尤为常见。该模式通过在应用程序与缓存之间引入一个旁路,确保数据的一致性和高效性。本文将在之前讨论的 Redis 主动更新…...
杭州市有哪些大学能够出具论文检索报告?
杭州市具有查收查引服务的学校有浙江大学、杭州电子科技大学、浙江工业大学、杭州师范大学等高校。 1、浙江大学图书馆 浙江大学图书馆提供文献查收查引服务,包括查询学术论文被SCIE、SSCI、A&HCI、EI、CPCI-S、CPCI-SSH、CSSCI、CSCD等国内外权威数据库收录和…...
SpringBootWeb 登录认证(day12)
登录功能 基本信息 请求参数 参数格式:application/json 请求数据样例: 响应数据 参数格式:application/json 响应数据样例: Slf4j RestController public class LoginController {Autowiredpriva…...
使用AOP在切面逻辑中无法获取到requesetBody
使用场景:在接口处理之前,我们需要拿到请求参数,对参数进行校验。注意,这里需要拿到的是原始的请求信息! 一般的获取方式 ServletInputStream inputStream request.getInputStream(); StringBuilder stringBuilder …...
生成模型:变分自编码器-VAE
1.基本概念 1.1 概率 这里有: x为真实图像,开源为数据集, 编码器将其编码为分布参数 x ^ \hat{x} x^为生成图像, 通过解码器获得 p ( x ) ^ \hat{p(x)} p(x)^: 观测数据的分布, 即数据集所构成的经验分布 p r e a l ( x ) p_{real}(x) preal(x): …...
Hive sql执行文件合并配置参数
HIVE自动合并输出的小文件的主要优化手段为:HIVE将会启动一个独立的map-reduce任务进行输出文件的merge。 set hive.merge.mapfiles true: 在只有map的作业结束时合并小文件, set hive.merge.mapredfiles true: 在Map-Reduce的任…...
鸿蒙 ArkUI实现地图找房效果
常用的地图找房功能,是在地图上添加区域、商圈、房源等一些自定义 marker,然后配上自己应用的一些筛选逻辑构成,在这里使用鸿蒙 ArkUI 简单实现下怎么添加区域/商圈、房源等 Marker. 1、开启地图服务 在华为开发者官网,注册应用&…...
OpenClaw 系统环境配置大全|Windows、macOS、Linux 三大平台逐项实操
本系列第五篇:三大平台全覆盖——从 WSL2 到 Homebrew,让 OpenClaw 在任意操作系统上稳定运行 在上一篇中,我们完成了跨平台的环境预检清单。但实际操作中,Windows、macOS 和 Linux 三者在系统配置层面有着本质差异——权限体系不同、命令工具不同、网络环境不同。 这篇文…...
WSL2中部署Pixel Script Temple:解决Linux环境配置与依赖安装难题
WSL2中部署Pixel Script Temple:解决Linux环境配置与依赖安装难题 1. 前言:为什么选择WSL2? 对于习惯Windows开发环境的用户来说,直接部署基于Linux的工具常常会遇到各种兼容性问题。Pixel Script Temple作为一款依赖特定Linux库…...
Phi-4-mini-reasoning完整教程:含端口映射、域名绑定、SSL证书配置
Phi-4-mini-reasoning完整教程:含端口映射、域名绑定、SSL证书配置 1. 平台介绍 Phi-4-mini-reasoning 是一个专注于推理任务的文本生成模型,特别适合处理数学题、逻辑题、多步分析和简洁结论输出。与通用聊天模型不同,它采用"题目输入…...
丹青识画系统与STM32嵌入式项目结合:智能相框原型开发
丹青识画系统与STM32嵌入式项目结合:智能相框原型开发 1. 项目缘起:当老相框遇上新AI 你有没有想过,家里墙上那个安安静静的相框,除了展示照片,还能做些什么? 我手头正好有几块闲置的STM32开发板和几块小…...
APK安全加固公司怎么选?2026年技术实力与选型决策指南
作为移动端安全负责人,当你面对市场上众多APK安全加固服务商时,最头疼的往往不是找不到公司,而是如何从技术方案、成功案例、价格体系等多维度中,筛选出真正能防住破解、保障上架、并且符合合规要求的那一家。选错公司的代价不仅是…...
D3KeyHelper:如何通过智能宏技术解决暗黑3玩家的操作疲劳难题
D3KeyHelper:如何通过智能宏技术解决暗黑3玩家的操作疲劳难题 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 暗黑破坏神3作为一款动作角…...
Phi-4-Reasoning-Vision实操手册:双卡4090下nvidia-smi实时监控与日志集成
Phi-4-Reasoning-Vision实操手册:双卡4090下nvidia-smi实时监控与日志集成 1. 项目概述 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具,专为双卡4090环境优化设计。这个专业级解决方案通过精心设计的系…...
如何快速上手 nvim-treesitter-textobjects:10个必备配置技巧
如何快速上手 nvim-treesitter-textobjects:10个必备配置技巧 【免费下载链接】nvim-treesitter-textobjects 项目地址: https://gitcode.com/gh_mirrors/nv/nvim-treesitter-textobjects nvim-treesitter-textobjects 是 Neovim 生态中一款强大的语法感知文…...
Flutter应用安全保护:代码混淆的重要性与Android/iOS混淆步骤详解
前言 本文将会和大家说下保护代码的重要性,和如何给程序加上混淆编译功能。 尽可能的不要在你的程序中写死各种服务秘钥,比如 oss 容易被盗用。 参考 https://docs.flutter.dev/deployment/obfuscatehttps://www.guardsquare.com/blog/obstacles-in-…...
达摩院春联AI实战落地:中小企业春节营销内容智能生产方案
达摩院春联AI实战落地:中小企业春节营销内容智能生产方案 1. 引言:当春节营销遇上AI 春节,是中国人最重要的节日,也是商家营销的黄金时段。对于中小企业来说,如何在这个节点高效、低成本地创作出有年味、有创意的营销…...
