1.封装一个可以打开各种文件格式的js文件    getType.js


// 根据文件路径,返回bole>mime的对应类型// 如果不存在,则返回 undefinedexport function getMimeType(filePath){console.log(filePath)// 如果文件传入的参数为空,则直接返回 nullif(filePath == '' || filePath == null || filePath == undefined){return null;}// 获取文件类型的下标var index = filePath.lastIndexOf(".");// 获取后缀var ext = filePath.substr(index + 1);// mime类型对象var mimeTypeObj = {gif:'image/gif',jpeg:'image/jpeg',jpg:'image/jpeg',png:'image/png',bmp:'image/bmp',pdf:'application/pdf',txt:'text/plain',doc:'application/msword',docx:'application/msword',ppt:'application/vnd.ms-powerpoint',pptx:'application/vnd.openxmlformats-officedocument.presentationml.presentation',mp3:'audio/mpeg',xls:'application/vnd.ms-excel',xlsx:'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',xml:'text/xml'}var returnType = mimeTypeObj[ext];console.log(returnType)if(returnType){return returnType + ';charset=UTF-8';}return null;}

2.fileAbout.js  是对于所有下载接口封装并且在新窗口打开

//文件类型
import {getMimeType
} from '@/getType/getType'
//接口
import {downloadFile
} from '@/api/deviceManagement/deviceManagement'
//页面传参
export function fileDownload(filePath, annexName, that) {var getMimeTypes = getMimeType(filePath)return downloadFile({filepath: filePath,filename:annexName}).then((res) => {console.log(res)
//针对IE版本if (!!window.ActiveXObject || "ActiveXObject" in window) {const blob = new Blob([res], {type: getMimeTypes});const ie = navigator.userAgent.match(/MSIE\s([\d.]+)/),ie11 = navigator.userAgent.match(/Trident\/7.0/) && navigator.userAgent.match(/rv:11/),ieEDGE = navigator.userAgent.match(/Edge/g),ieVer = (ie ? ie[1] : (ie11 ? 11 : (ieEDGE ? 12 : -1)));if (ie && ieVer < 10) {this.message.error('No blobs on IE<10');return;}if (ieVer > -1) {window.navigator.msSaveBlob(blob, annexName)that.spinningLoading = false}} else {
//页面表格上的加载动画if (that.spinningLoading) {that.spinningLoading = false} else {that.loadingD = false}var blob = new Blob([res], {type: getMimeTypes})
//打开新的窗口var link = document.createElement('a')link.setAttribute('target', '_blank')// link.setAttribute('download', annexName)link.href = window.URL.createObjectURL(blob)link.click()}})
}

3.在vue 页面

 <a-row class="outBorder"><a-row class="outBorder1" style="text-align: left" id="xgfj"><a-col :span="24" class="inBorder"> 相关附件</a-col></a-row><s-table ref="tableTwo" size="default" :rowKey="(record) => record.id" :columns="columnsTwo" :data="loadDataTwo"><span slot="serial" slot-scope="text, record, index">{{ index + 1 }}</span><span slot="action" slot-scope="text, record"><span><a @click="download(record)">预览</a></span></span></s-table></a-row>

引用fileAbout.js  文件  用封装好的fileDownload

在方法里写入  就可以了

ant design vue之 下载相关推荐

  1. chrome插件开发(manifest_version版本V3 + Ant Design Vue)

    1.什么是 Chrome 插件 谷歌浏览器插件是一种小型的定制浏览器体验的程序,通过插件可以自定义浏览器的一些行为来适合个人的需求,例如上面的查看服务器状态插件. 在应用商店中下载下来的插件基本上都是 ...

  2. 【vue2中引入阿里第三方图标库使用自定义的Ant Design Vue组件a-cascader级联选择后缀图标】

    1,首先在vue2项目中安装ant design vue组件 npm install ant-design-vue@1.7.2 2,a-cascader组件在页面中的使用 <template&g ...

  3. 2019 Electron+Vue+Ant Design Vue仿网易云音乐windows客户端实战分享

    特点 拖拽播放 桌面歌词 mini模式 自定义托盘右键菜单 任务栏缩略图,歌曲操作 音频可视化 自动/手动检查更新 Nedb数据库持久化 自定义安装路径,安装界面美化 浏览器中启动客户端 Travis ...

  4. Ant Design Vue select下拉列表设置默认值

    在项目中需要为Ant Design Vue 的 select 组件设置一个默认值,如下图所示的状态下拉选择框,默认选择全部 代码如下: 1 <a-select v-model="que ...

  5. iviewui php,Vue UI框架对比:Element UI、Ant Design Vue、iView

    Element UI 文档:https://element.eleme.io/#/zh-CN/component/installation vue-element-admin预览:https://pa ...

  6. 解决ant design vue中的modal弹框样式修改无效问题 修改modal样式无效

    ant design vue中的modal弹框修改样式无效问题 ant中的弹框样式是修改不了的 原因在于弹框modal被挂载在最大的元素div外面了 所以需要将挂载在某个html元素上 在modal外 ...

  7. 【Ant Design Vue】之Grid栅格和Space间距

    文章目录 Grid 栅格 Space 间距 Grid 栅格 Ant Design Vue 将整个设计建议区域按照 24 等分的原则进行划分,划分之后的信息区块我们称之为『盒子』.建议横向排列的盒子数量 ...

  8. Vue笔记-Ant Design Vue构建前端连接后端WebSocket

    运行结果如下: 程序结构如下: 关键代码: App.vue <template><a-layout class="layout"><a-layout- ...

  9. vue将每个路由打包成html,Ant Design Vue pro 动态路由的实现和打包

    Ant Design Vue pro 动态路由的实现和打包 Ant Design Vue pro 动态路由的实现和打包 配置路由权限 在config文件夹下router.config.js中配置路由权 ...

最新文章

  1. SQL Server 数据岸问题
  2. html2个表单,单个html angular2中的多个表单
  3. 同事更新几个表_最近计划学习的几个网站资源
  4. ASP.NET (C#) 面试笔试题目收集
  5. 【Python】Python中的关键字
  6. 直接用自己服务器做图床可以吗_图床+typora+gitee,写文档再也不那么麻烦
  7. XmlSerializer对象
  8. I2C(smbus、pmbus)和SPI协议分析
  9. 《算法和数据结构》学习路线指引
  10. ansi编码_刨根究底字符编码之零——前言
  11. 股市实时行情分发工具-拿来就用
  12. 活动现场大屏幕互动系统(微信墙)修复版完美PHP源码,带完整素材包和详细使用文档
  13. M480 EMAC驱动01-EMAC底层接口
  14. golang 万年历的实现代码
  15. Matplotlib画各种论文图
  16. ubuntu 16.04 编译android 7.1,jack报错
  17. WordPress 主题模板QUX9.1.4开心版无授权限制 DUX二开增强主题
  18. iPhone4/4s 5.1.1版本越狱后无法连接iTunes,出现0xE8000012错误的解决方法
  19. idm一个网站不能下载两次?这几个办法彻底解决
  20. comet OJ 当我们同心在一起

热门文章

  1. 思路决定出路,格局决定结局
  2. 仿抖音短视频h5单页版htnl上传即可使用源码文件
  3. qt编译出现的异常(一)
  4. STM32F4 基于FPU使用FIR滤波
  5. 5行Python代码就能让你的电脑 “永不息屏”?
  6. 关于GreaterWMS我踩过的坑
  7. dependencyManagement和dependencies的区别
  8. PM1200手持无线电综合测试仪
  9. stm32与sim900之GPRS通信(电脑串口与SIM900通信)
  10. Linux运维工程师岗位要求,从业Linux运维工程师岗位有哪些要求?负责哪些工做?