vue项目中附件下载方法封装,并提取成全局共用方法

如果项目中有多个页面用到附件下载的方法,那么可以将这个方法封装成一个全局方法,减少重复代码。

main.js同级目录下新建一个GLOBAL.vue文件,在里面可以声明很多全局共用方法。

>> GLOBAL.vue
<scirpt>
import { fileDownload } from '../HTTP/myApis'

const downloadAttachment = async (fileid, rename, type) => {
  await fileDownload({id: fileid, type: type}).then(res => {
    if(res.code == 0) {
      instance.$message.error('附件下载出错:' + res.msg)
    }else {
      let extentionType = rename.substring(rename.lastIndexOf('.')).toLowerCase();
      let fileType =  ''
      switch(extentionType) {
        case '.doc':
          fileType = 'application/msword'
          break
        case '.txt':
          fileType = 'text/plain'
          break
        case '.docx':
          fileType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
          break
        case '.xls':
          fileType = 'application/vnd.ms-excel'
          break
        case '.xlsx':
          fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
          break
        case '.jpg':
          fileType = 'image/jpeg'
          break
        case '.png':
          fileType = 'image/png'
          break
        case '.ppt':
          fileType = 'application/vnd.ms-powerpoint'
          break
        case '.pdf':
          fileType = 'application/pdf'
          break
        case '.zip':
          fileType = 'application/zip'
          break
        default:
          break
      }
      let blob = new Blob([res], {type: fileType});
      var link = document.createElement("a");
      link.href = window.URL.createObjectURL(blob);
      link.download = rename
      link.click();
    }
  })
}

export default ({
	downloadAttachment 
})
</scirpt>

使用方法:

>> main.js
import global_ from './Global.vue'
Vue.prototype.GLOBAL = global_

>> xx.vue
this.GLOBAL.downloadAttachment(a, b, c);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值