tools.ts
import type { AxiosResponse } from 'axios';
/**
* 公共的下载方法
* @param response 接口响应对象
*/
let tools = {
// 文件流处理
download(response: AxiosResponse) {
const blob: Blob = new Blob([response.data]);
let fileName = decodeURI(response.headers['content-disposition'].split(';')[1].split('filename=')[1]);
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.setAttribute('download', fileName);
document.body.appendChild(a);
a.click();
URL.revokeObjectURL(url);
document.body.removeChild(a);
}
}
export default tools
vue页面使用
<template>
<div>
</div>
</template>
<script lang="ts" setup>
import { getCurrentInstance } from 'vue';
const { proxy }= getCurrentInstance();
console.log(proxy.$TOOLS)
</script>
<style scoped></style>