feat:新增excel 下载 hook

This commit is contained in:
JaguarJack 2023-07-05 17:17:31 +08:00
parent bb4422e36b
commit 759aa3fcdf
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,37 @@
import Request from '/admin/support/request'
import { ref, watch } from 'vue'
const http = new Request()
export function useExcelDownload() {
const isSuccess = ref(false)
const loading = ref<boolean>(false)
const afterDownload = ref()
function download(path: string, data: object = {}) {
loading.value = true
http
.setResponseType('blob')
.init()
.get(path + '/export', data)
.then(r => {
const downloadLink = document.createElement('a')
const blob = new Blob([r.data], { type: r.headers['content-type'] })
downloadLink.href = URL.createObjectURL(blob)
downloadLink.download = r.headers.filename
document.body.appendChild(downloadLink)
downloadLink.click()
document.body.removeChild(downloadLink)
})
.finally(() => {
loading.value = false
})
}
const success = (func: Function) => {
watch(isSuccess, function () {
isSuccess.value = false
func()
})
}
return { download, success, loading, afterDownload }
}

View File