最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE+ElementUI下載文件的幾種方式(小結(jié))

 更新時(shí)間:2023年01月13日 09:50:32   作者:白野澤  
本文主要介紹了VUE+ElementUI下載文件的幾種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.創(chuàng)建超鏈接,通過a標(biāo)簽的鏈接向后端服務(wù)發(fā)get請(qǐng)求,接收后端的文件流

<a :href='"/user/downloadExcel"' >下載模板</a>

2.創(chuàng)建iframe的方式

<el-button size="mini" type="text" icon="el-icon-download" @click="handleDownload(scope.row)">下載</el-button>
? ? /* 下載 */
? ? handleDownload(row) {
? ? ? this.loadingOverLay = this.$loading({
? ? ? ? lock: true,
? ? ? ? text: "文件生成中",
? ? ? ? spinner: "el-icon-loading",
? ? ? ? background: "rgba(0,0,0,0.7)",
? ? ? });
? ? ? var elemIF = document.createElement("iframe");
? ? ? elemIF.src = process.env.VUE_APP_BASE_API + "/transcode/download/" + row.id;
? ? ? elemIF.style.display = "none";
? ? ? document.body.appendChild(elemIF);
? ? ? this.loadingOverLay.close();
? ? },

3.對(duì)后端發(fā)的post請(qǐng)求,使用blob格式

<el-button ?size="mini" class="filter-item" type="primary" icon="el-icon-download" @click="handleExport(scope.row)">導(dǎo)出</el-button>
//method方法
handleExport(row){
const url="/user/downloadExcel"
const options = {snapshotTime:formatDate(new Date(row.snapshotTime), 'yyyy-MM-dd hh:mm')}
exportExcel(url,options)
}
/**
?* 封裝導(dǎo)出Excal文件請(qǐng)求
?* @param url
?* @param data
?* @returns {Promise}
?*/
//api.js
export function exportExcel(url, options = {}) {
? return new Promise((resolve, reject) => {
? ? console.log(`${url} 請(qǐng)求數(shù)據(jù),參數(shù)=>`, JSON.stringify(options))
? ? axios.defaults.headers['content-type'] = 'application/json;charset=UTF-8'
? ? axios({
? ? ? method: 'post',
? ? ? url: url, // 請(qǐng)求地址
? ? ? data: options, // 參數(shù)
? ? ? responseType: 'blob' // 表明返回服務(wù)器返回的數(shù)據(jù)類型
? ? }).then(
? ? ? response => {
? ? ? ? resolve(response.data)
? ? ? ? let blob = new Blob([response.data], {
? ? ? ? ? type: 'application/vnd.ms-excel'
? ? ? ? })
? ? ? ? console.log(blob)
? ? ? ? let fileName = Date.parse(new Date()) + '.xlsx'
? ? ? ? if (window.navigator.msSaveOrOpenBlob) {
? ? ? ? ? // console.log(2)
? ? ? ? ? navigator.msSaveBlob(blob, fileName)
? ? ? ? } else {
? ? ? ? ? // console.log(3)
? ? ? ? ? var link = document.createElement('a')
? ? ? ? ? link.href = window.URL.createObjectURL(blob)
? ? ? ? ? link.download = fileName
? ? ? ? ? link.click()
? ? ? ? ? //釋放內(nèi)存
? ? ? ? ? window.URL.revokeObjectURL(link.href)
? ? ? ? }
? ? ? },
? ? ? err => {
? ? ? ? reject(err)
? ? ? }
? ? )
? })
}

4.導(dǎo)出json文件

1.安裝:

npm install file-saver --save

2.引入:

import FileSaver from 'file-saver'
/**?
?* data: 封裝好的json數(shù)據(jù)?
?* JSON.stringify(data, null, 2): 格式化json數(shù)據(jù) 方便閱讀
?* new Blob(parame1, parame2): 轉(zhuǎn)為Blob文件流.
?* parame1 [] 數(shù)據(jù)源?
?* parame2 文件流類型
?*/
const blob = new Blob([JSON.stringify(data, null, 2)], {type: 'application/json'})
?
/**?
?* FileSaver.saveAs(parame1, parame2) ?瀏覽器保存文件
?* parame1: Blob文件流
?* parame2:文件名
?*/
FileSaver.saveAs(blob, '文件名.json')

到此這篇關(guān)于VUE+ElementUI下載文件的幾種方式(小結(jié))的文章就介紹到這了,更多相關(guān)VUE ElementUI下載文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中el-checkbox全選、反選、多選的實(shí)現(xiàn)

    vue中el-checkbox全選、反選、多選的實(shí)現(xiàn)

    這篇文章主要介紹了vue中el-checkbox全選、反選、多選的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題

    解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題

    今天小編就為大家分享一篇解決vue中post方式提交數(shù)據(jù)后臺(tái)無法接收的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼

    Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼

    這篇文章主要介紹了Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Vue源碼學(xué)習(xí)記錄之手寫vm.$mount方法

    Vue源碼學(xué)習(xí)記錄之手寫vm.$mount方法

    在我們開發(fā)中,經(jīng)常要用到Vue.extend創(chuàng)建出Vue的子類來構(gòu)造函數(shù),通過new 得到子類的實(shí)例,然后通過$mount掛載到節(jié)點(diǎn),今天通過本文給大家講解手寫vm.$mount方法 ,感興趣的朋友一起看看吧
    2022-11-11
  • vue手寫加載動(dòng)畫項(xiàng)目

    vue手寫加載動(dòng)畫項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了vue手寫加載動(dòng)畫項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Vuejs 用$emit與$on來進(jìn)行兄弟組件之間的數(shù)據(jù)傳輸通信

    Vuejs 用$emit與$on來進(jìn)行兄弟組件之間的數(shù)據(jù)傳輸通信

    本篇文章主要介紹了Vuejs 用$emit 與 $on 來進(jìn)行兄弟組件之間的數(shù)據(jù)傳輸示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-02-02
  • Vue2.X 通過AJAX動(dòng)態(tài)更新數(shù)據(jù)

    Vue2.X 通過AJAX動(dòng)態(tài)更新數(shù)據(jù)

    這篇文章主要介紹了Vue2.X 通過AJAX動(dòng)態(tài)更新數(shù)據(jù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Vue項(xiàng)目?jī)?yōu)化的一些實(shí)戰(zhàn)策略

    Vue項(xiàng)目?jī)?yōu)化的一些實(shí)戰(zhàn)策略

    代碼優(yōu)化不僅僅局限在業(yè)務(wù)邏輯這塊,像是代碼復(fù)用、效率等等都是我們可以加以改進(jìn)的地方,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目?jī)?yōu)化的一些實(shí)戰(zhàn)策略,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • vue-cli 3 全局過濾器的實(shí)例代碼詳解

    vue-cli 3 全局過濾器的實(shí)例代碼詳解

    這篇文章主要介紹了vue-cli 3 全局過濾器的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • electron-vue+electron-updater實(shí)現(xiàn)自動(dòng)更新(步驟源碼)

    electron-vue+electron-updater實(shí)現(xiàn)自動(dòng)更新(步驟源碼)

    這篇文章主要介紹了electron-vue+electron-updater實(shí)現(xiàn)自動(dòng)更新,步驟源碼包括autoUpdater.js操控更新js文件,main.js也就是package.json內(nèi)的main指向的js文件,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10

最新評(píng)論

博白县| 商水县| 嵩明县| 乌鲁木齐市| 丹阳市| 张掖市| 永善县| 洞头县| 建宁县| 郸城县| 张家港市| 孙吴县| 大名县| 安仁县| 柘荣县| 苏尼特右旗| 麻城市| 乌拉特前旗| 恩施市| 凤冈县| 营口市| 大悟县| 黄梅县| 德州市| 茶陵县| 曲靖市| 定陶县| 麻城市| 贵定县| 鄂托克前旗| 潼关县| 广河县| 翼城县| 基隆市| 定结县| 剑河县| 遂平县| 黄石市| 长顺县| 五河县| 会宁县|