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 Request from '/admin/support/request'
import { ref, watch } from 'vue' import { ref, watch } from 'vue'
import Message from '/admin/support/message'
const http = new Request()
export function useExcelDownload() { export function useExcelDownload() {
const http = new Request()
const isSuccess = ref(false) const isSuccess = ref(false)
const loading = ref<boolean>(false) const loading = ref<boolean>(false)
const afterDownload = ref() const afterDownload = ref()
@ -13,6 +14,17 @@ export function useExcelDownload() {
.init() .init()
.get(path + '/export', data) .get(path + '/export', data)
.then(r => { .then(r => {
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 downloadLink = document.createElement('a')
const blob = new Blob([r.data], { type: r.headers['content-type'] }) const blob = new Blob([r.data], { type: r.headers['content-type'] })
downloadLink.href = URL.createObjectURL(blob) downloadLink.href = URL.createObjectURL(blob)
@ -20,6 +32,7 @@ export function useExcelDownload() {
document.body.appendChild(downloadLink) document.body.appendChild(downloadLink)
downloadLink.click() downloadLink.click()
document.body.removeChild(downloadLink) document.body.removeChild(downloadLink)
}
}) })
.finally(() => { .finally(() => {
loading.value = false loading.value = false