前端項目下載發票pdf文件要求改文件名筆記

1、a鏈接(修改失敗,存在跨域)

<el-table-columnalign='right'label="下載地址"width="200"><template slot-scope="{row}"><a :href="row.dataUrl" download="文件名">下載</a></template></el-table-column>

2、后端返回二進制文件前端下載

<el-table-columnalign='right'label="操作"width=""><template slot-scope="{row}"><el-button size="mini" type="primary" @click="downLoadInvoice(row)">下載</el-button></template></el-table-column>
  import download from "@/api/download";async downLoadInvoice(row){download.exportPDF('/api/charge-settlement/download-invoice', {businessCode:row.businessCode,dataUrl:row.dataUrl,name:row.downloadInvoiceName}, `${row.downloadInvoiceName}.pdf`);
}

?

    exportPDF(url, data, fileName) {axios({method: "post",baseURL: ROOT,withCredentials: true,responseType: "blob",timeout: 500000,url: url,headers: {'Access-Control-Allow-Origin': '*','Content-Type': 'application/json',token: store.getters.token ? getToken() : null,},data: data}).then(response => {const blob = new Blob([response.data], { type: "application/vnd.ms-excel" });let file_name = fileName || this.getDateTime() + ".pdf";const linkNode = document.createElement('a');//ie瀏覽器下載if (!!window.ActiveXObject || "ActiveXObject" in window || navigator.userAgent.indexOf("Edge") > -1) {navigator.msSaveBlob(blob, fileName);} else {linkNode.download = file_name; //a標簽的download屬性規定下載文件的名稱linkNode.style.display = 'none';linkNode.href = URL.createObjectURL(blob); //生成一個Blob URLdocument.body.appendChild(linkNode);linkNode.click(); //模擬在按鈕上的一次鼠標單擊URL.revokeObjectURL(linkNode.href); // 釋放URL 對象document.body.removeChild(linkNode);}}).catch(function(error) {console.log(error);});},

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90721.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kotlin 數據容器 - List(List 概述、創建 List、List 核心特性、List 元素訪問、List 遍歷)

一、List 概述List 是一個不可變的有序集合&#xff0c;一旦創建就不能修改其內容&#xff0c;即不能添加、刪除、更改元素List 提供了豐富的操作函數來處理數據二、創建 List 1、基礎創建 通過 listOf 函數創建&#xff08;推薦&#xff09; // 創建一個 List&#xff0c;包含…

HarmonyOS NEXT 系列之規范開發三方共享包

規范開發三方共享包〇、前言一、了解評分規則二、規范開發共享包1、規范開源協議名稱寫法2、將 oh-package.json5 文件補充完整3、補充 example 目錄4、基本的 README 和 CHANGELOG三、ohpm 包的源碼隔離特性〇、前言 對于開發者來說&#xff0c;對外發布代碼制品&#xff0c;…

[電網備考]計算機組成與原理

計算機系統概述 計算機發展歷程 從數據表示: 計算機可以分為數字計算機與模擬計算機 1946 第一臺電子數字計算機 ENIAC 在賓夕法尼亞大學誕生,標志進入電子計算機時代時間計算機發展階段1946-1958電子管計算機時代1958-1964晶體管計算機時代1964-1971集成電路計算機時代1971-至…

8.c語言指針

內存管理C語言中&#xff0c;棧內存&#xff08;局部變量&#xff09;自動分配/釋放&#xff0c;靜態區&#xff08;全局、靜態變量&#xff09;編譯時分配&#xff1b;堆內存需手動分配/釋放&#xff0c;核心函數有3個&#xff1a;malloc函數原型&#xff1a;void* malloc(siz…

使用GPU訓練模型

本文代碼詳解參考&#xff1a; 模型訓練基礎流程-CSDN博客 目錄 為什么要用GPU訓練模型 什么是CUDA 利用GPU訓練—方式一(.cuda()) 利用GPU訓練—方式二 (.to()) Google Colaboratory 為什么要用GPU訓練模型 用 GPU 訓練模型的核心原因是GPU 的硬件架構和計算特性&#…

Matlab學習筆記:自定義函數

MATLAB 學習筆記&#xff1a;自定義函數自定義函數是MATLAB編程的基礎&#xff0c;它允許你將重復代碼封裝成可重用的模塊&#xff0c;提高代碼的可讀性和效率。本筆記將覆蓋所有重點知識點&#xff0c;包括語法細節、輸入輸出處理、函數文件管理、錯誤處理等。我會用自然易懂的…

【數學建模 | Matlab】二維繪圖 和 三維繪圖

- 第 115 篇 - Date: 2025 - 07 - 23 Author: 鄭龍浩&#xff08;仟墨&#xff09; 續寫上一篇&#xff0c;如下文章&#xff1a; 【數學建模|Matlab】Matlab「基礎知識」和「基礎操作」 五 二維繪圖 1 舉例 % 二維平面繪圖&#xff08;擴展至 -2π 到 2π&#xff09; x …

MCP (Model Context Protocol) 與 HTTP API:大模型時代的通信新范式

MCP (Model Context Protocol) 與 HTTP API&#xff1a;大模型時代的通信新范式在數字世界的兩端&#xff0c;API 扮演著不可或缺的橋梁角色。我們熟知的 HTTP API 是 Web 互聯互通的基石&#xff0c;驅動著無數應用程序的交互。然而&#xff0c;隨著大型語言模型&#xff08;L…

CentOS 搭建 Docker 私有鏡像倉庫

CentOS 搭建 Docker 私有鏡像倉庫 搭建 Docker 私有鏡像倉庫能為團隊提供高效、安全的鏡像管理方案。下面將詳細介紹每個步驟的操作細節&#xff0c;其中命令部分均用代碼塊展示。 一、環境準備 要搭建 Docker 私有鏡像倉庫&#xff0c;首先得確保服務器環境符合要求&#xff0…

Zookeeper的簡單了解

Zookeeper的簡單了解 Zookeeper是一個為分布式應用程序提供協調服務的中間件。 主要作用有三點&#xff1a;分布式鎖、注冊中心、配置管理、。 特點有讀寫速度快&#xff08;內存存儲&#xff09;、有監聽機制&#xff08;用于發布訂閱&#xff09;、保證了順序一致性&#xff…

Android Fragment 全解析

在 Android 開發中&#xff0c;Fragment 是構建靈活界面的核心組件 —— 它既能像 “迷你 Activity” 一樣包含布局和邏輯&#xff0c;又能靈活地嵌入到不同 Activity 中復用。無論是平板的多面板布局&#xff0c;還是手機的單頁切換&#xff0c;Fragment 都能讓界面適配更高效…

0-1BFS(雙端隊列,洛谷P4667 [BalticOI 2011] Switch the Lamp On 電路維修 (Day1)題解)

對于權重為0或1的路徑搜索中&#xff0c;使用雙端隊列可以對最短路問題進行時間復雜度的優化&#xff0c;由于優先隊列的O(longn)級別的插入時間&#xff0c;對于雙端隊列O(1)插入可以將時間復雜度減少至O(M); https://www.luogu.com.cn/problem/P4667 #include<bits/stdc…

基于LNMP架構的分布式個人博客搭建

1.運行環境主機主機名系統服務192.168.75.154Server-WebLinuxWeb192.168.75.155Server-NFS-DNSLinuxNFS/DNS2.基礎配置配置主機名&#xff0c;靜態IP地址開啟防火墻并配置部分開啟SElinux并配置服務器之間使用同ntp.aliyun.com進行時間同步服務器之間使用用ntp.aliyun.com進行時…

基于開源AI智能名片鏈動2+1模式S2B2C商城小程序的人格品牌化實現路徑研究

摘要&#xff1a;在數字化消費時代&#xff0c;人格品牌化已成為企業突破同質化競爭的核心策略。本文以開源AI智能名片、鏈動21模式與S2B2C商城小程序的融合為切入點&#xff0c;構建“技術賦能-關系重構-價值共生”的人格品牌化理論框架。通過分析用戶觸達、信任裂變與價值沉淀…

設計模式十一:享元模式(Flyweight Pattern)

享元模式是一種結構型設計模式&#xff0c;它通過共享對象來最小化內存使用或計算開銷。這種模式適用于大量相似對象的情況&#xff0c;通過共享這些對象的公共部分來減少資源消耗。基本概念享元模式的核心思想是將對象的內在狀態&#xff08;不變的部分&#xff09;和外在狀態…

Webpack/Vite 終極指南:前端開發的“渦輪增壓引擎“

開篇:當你的項目變成"俄羅斯套娃" "我的index.js怎么引入了87個文件?!" —— 這是每個前端開發者第一次面對復雜項目依賴時的真實反應。別擔心,今天我要帶你認識兩位"打包俠":老牌勁旅Webpack和新銳黑馬Vite 一、構建工具:前端世界的&qu…

Windows 下配置 GPU 用于深度學習(PyTorch)的完整流程

1. 安裝 NVIDIA 顯卡驅動 前往 NVIDIA官網 下載并安裝適合你顯卡型號&#xff08;如 5070Ti&#xff09;的最新版驅動。下載 NVIDIA 官方驅動 | NVIDIA安裝完成后建議重啟電腦。 2. 安裝 CUDA Toolkit 前往 CUDA Toolkit 下載頁。 選擇 Windows、x86_64、你的系統版本&#…

詳解力扣高頻SQL50題之180. 連續出現的數字【困難】

傳送門&#xff1a;180. 連續出現的數字 題目 表&#xff1a;Logs -------------------- | Column Name | Type | -------------------- | id | int | | num | varchar | -------------------- 在 SQL 中&#xff0c;id 是該表的主鍵。 id 是一個自增列。 找出所有至少連續…

VSCode 報錯 Error: listen EACCES: permission denied 0.0.0.0:2288

使用 npm run dev 啟動項目時報錯&#xff1a;error when starting dev server: Error: listen EACCES: permission denied 0.0.0.0:2288at Server.setupListenHandle [as _listen2] (node:net:1881:21)at listenInCluster (node:net:1946:12)at Server.listen (node:net:2044:…

[2025CVPR-圖象超分辨方向]DORNet:面向退化的正則化網絡,用于盲深度超分辨率

1. ?問題背景與挑戰? 盲深度超分辨率&#xff08;Blind Depth Super-Resolution, DSR&#xff09;的目標是從低分辨率&#xff08;LR&#xff09;深度圖中恢復高分辨率&#xff08;HR&#xff09;深度圖&#xff0c;但現有方法在真實場景下面臨顯著挑戰&#xff1a; ?已知…