fix: excel download json response error

This commit is contained in:
JaguarJack 2023-07-10 18:32:20 +08:00
parent 4a09a203c4
commit 78c25497d6

View File

@ -1,8 +1,9 @@
import Request from '/admin/support/request'
import { ref, watch } from 'vue'
import Message from '/admin/support/message'
const http = new Request()
export function useExcelDownload() {
const http = new Request()
const isSuccess = ref(false)
const loading = ref<boolean>(false)
const afterDownload = ref()
@ -13,13 +14,25 @@ export function useExcelDownload() {
.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)
if (r.headers['content-type'] === 'application/json') {
const blob = new Blob([r.data], { type: r.headers['content-type'] })
const blobReader = new Response(blob).json()
blobReader.then(res => {
if (res.code === 1e4) {
Message.success(res.message)
} else {
Message.error(res.message)
}
})
} else {
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