diff --git a/src/utils/downloadUtils.js b/src/utils/downloadUtils.js new file mode 100644 index 0000000..9dcf126 --- /dev/null +++ b/src/utils/downloadUtils.js @@ -0,0 +1,22 @@ +// 下载文件的公共方法 +export function downloadFile(file, fileName) { + const blob = new Blob([file]) + // IE及IE内核浏览器,ie10+ + if (window.navigator.msSaveBlob) { + try { + window.navigator.msSaveBlob(blob, fileName) + } catch (e) { + console.log(e) + } + } else { // 其他浏览器 + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = fileName + '.xlsx' // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放blob对象 + } +} + diff --git a/src/utils/downloadUtils.js b/src/utils/downloadUtils.js new file mode 100644 index 0000000..9dcf126 --- /dev/null +++ b/src/utils/downloadUtils.js @@ -0,0 +1,22 @@ +// 下载文件的公共方法 +export function downloadFile(file, fileName) { + const blob = new Blob([file]) + // IE及IE内核浏览器,ie10+ + if (window.navigator.msSaveBlob) { + try { + window.navigator.msSaveBlob(blob, fileName) + } catch (e) { + console.log(e) + } + } else { // 其他浏览器 + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = fileName + '.xlsx' // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放blob对象 + } +} + diff --git a/src/views/accessPermission/listStaffPermission.vue b/src/views/accessPermission/listStaffPermission.vue index fcde41c..3cbdb6c 100644 --- a/src/views/accessPermission/listStaffPermission.vue +++ b/src/views/accessPermission/listStaffPermission.vue @@ -62,6 +62,8 @@ import DeptSelect from '../../components/DeptSelect/index' import AddStaffPerm from './addStaffPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListStaffPermission', components: { EditStrategy, AddStaffPerm, DeptSelect }, @@ -190,15 +192,7 @@ }) exportStaffPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁员工授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁员工授权列表') }).catch((res) => { loading.close() }) diff --git a/src/utils/downloadUtils.js b/src/utils/downloadUtils.js new file mode 100644 index 0000000..9dcf126 --- /dev/null +++ b/src/utils/downloadUtils.js @@ -0,0 +1,22 @@ +// 下载文件的公共方法 +export function downloadFile(file, fileName) { + const blob = new Blob([file]) + // IE及IE内核浏览器,ie10+ + if (window.navigator.msSaveBlob) { + try { + window.navigator.msSaveBlob(blob, fileName) + } catch (e) { + console.log(e) + } + } else { // 其他浏览器 + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = fileName + '.xlsx' // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放blob对象 + } +} + diff --git a/src/views/accessPermission/listStaffPermission.vue b/src/views/accessPermission/listStaffPermission.vue index fcde41c..3cbdb6c 100644 --- a/src/views/accessPermission/listStaffPermission.vue +++ b/src/views/accessPermission/listStaffPermission.vue @@ -62,6 +62,8 @@ import DeptSelect from '../../components/DeptSelect/index' import AddStaffPerm from './addStaffPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListStaffPermission', components: { EditStrategy, AddStaffPerm, DeptSelect }, @@ -190,15 +192,7 @@ }) exportStaffPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁员工授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁员工授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/accessPermission/listVisitorPermission.vue b/src/views/accessPermission/listVisitorPermission.vue index b844be8..2bf34e5 100644 --- a/src/views/accessPermission/listVisitorPermission.vue +++ b/src/views/accessPermission/listVisitorPermission.vue @@ -58,6 +58,8 @@ import { getVisitorPermissionByDoor, delPermission, exportVisitorPermission } from '@/api/access' import AddVisitorPerm from './addVisitorPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListVisitorPermission', components: { EditStrategy, AddVisitorPerm }, @@ -180,15 +182,7 @@ }) exportVisitorPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁访客授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁访客授权列表') }).catch((res) => { loading.close() }) diff --git a/src/utils/downloadUtils.js b/src/utils/downloadUtils.js new file mode 100644 index 0000000..9dcf126 --- /dev/null +++ b/src/utils/downloadUtils.js @@ -0,0 +1,22 @@ +// 下载文件的公共方法 +export function downloadFile(file, fileName) { + const blob = new Blob([file]) + // IE及IE内核浏览器,ie10+ + if (window.navigator.msSaveBlob) { + try { + window.navigator.msSaveBlob(blob, fileName) + } catch (e) { + console.log(e) + } + } else { // 其他浏览器 + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = fileName + '.xlsx' // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放blob对象 + } +} + diff --git a/src/views/accessPermission/listStaffPermission.vue b/src/views/accessPermission/listStaffPermission.vue index fcde41c..3cbdb6c 100644 --- a/src/views/accessPermission/listStaffPermission.vue +++ b/src/views/accessPermission/listStaffPermission.vue @@ -62,6 +62,8 @@ import DeptSelect from '../../components/DeptSelect/index' import AddStaffPerm from './addStaffPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListStaffPermission', components: { EditStrategy, AddStaffPerm, DeptSelect }, @@ -190,15 +192,7 @@ }) exportStaffPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁员工授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁员工授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/accessPermission/listVisitorPermission.vue b/src/views/accessPermission/listVisitorPermission.vue index b844be8..2bf34e5 100644 --- a/src/views/accessPermission/listVisitorPermission.vue +++ b/src/views/accessPermission/listVisitorPermission.vue @@ -58,6 +58,8 @@ import { getVisitorPermissionByDoor, delPermission, exportVisitorPermission } from '@/api/access' import AddVisitorPerm from './addVisitorPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListVisitorPermission', components: { EditStrategy, AddVisitorPerm }, @@ -180,15 +182,7 @@ }) exportVisitorPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁访客授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁访客授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/memberManage/listVisitor.vue b/src/views/memberManage/listVisitor.vue index a493bed..e6454a3 100644 --- a/src/views/memberManage/listVisitor.vue +++ b/src/views/memberManage/listVisitor.vue @@ -78,6 +78,7 @@ import { getToken } from '@/utils/auth' // getToken from cookie import { getProject } from '@/utils/baseConfig' import { isIE } from '@/utils/browser' +import { downloadFile } from '@/utils/downloadUtils' export default { name: 'ListVisitor', @@ -227,15 +228,7 @@ }) batchExportPerson(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = `访客列表.xlsx` // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, '访客列表') }).catch((res) => { loading.close() }) diff --git a/src/utils/downloadUtils.js b/src/utils/downloadUtils.js new file mode 100644 index 0000000..9dcf126 --- /dev/null +++ b/src/utils/downloadUtils.js @@ -0,0 +1,22 @@ +// 下载文件的公共方法 +export function downloadFile(file, fileName) { + const blob = new Blob([file]) + // IE及IE内核浏览器,ie10+ + if (window.navigator.msSaveBlob) { + try { + window.navigator.msSaveBlob(blob, fileName) + } catch (e) { + console.log(e) + } + } else { // 其他浏览器 + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = fileName + '.xlsx' // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放blob对象 + } +} + diff --git a/src/views/accessPermission/listStaffPermission.vue b/src/views/accessPermission/listStaffPermission.vue index fcde41c..3cbdb6c 100644 --- a/src/views/accessPermission/listStaffPermission.vue +++ b/src/views/accessPermission/listStaffPermission.vue @@ -62,6 +62,8 @@ import DeptSelect from '../../components/DeptSelect/index' import AddStaffPerm from './addStaffPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListStaffPermission', components: { EditStrategy, AddStaffPerm, DeptSelect }, @@ -190,15 +192,7 @@ }) exportStaffPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁员工授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁员工授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/accessPermission/listVisitorPermission.vue b/src/views/accessPermission/listVisitorPermission.vue index b844be8..2bf34e5 100644 --- a/src/views/accessPermission/listVisitorPermission.vue +++ b/src/views/accessPermission/listVisitorPermission.vue @@ -58,6 +58,8 @@ import { getVisitorPermissionByDoor, delPermission, exportVisitorPermission } from '@/api/access' import AddVisitorPerm from './addVisitorPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListVisitorPermission', components: { EditStrategy, AddVisitorPerm }, @@ -180,15 +182,7 @@ }) exportVisitorPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁访客授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁访客授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/memberManage/listVisitor.vue b/src/views/memberManage/listVisitor.vue index a493bed..e6454a3 100644 --- a/src/views/memberManage/listVisitor.vue +++ b/src/views/memberManage/listVisitor.vue @@ -78,6 +78,7 @@ import { getToken } from '@/utils/auth' // getToken from cookie import { getProject } from '@/utils/baseConfig' import { isIE } from '@/utils/browser' +import { downloadFile } from '@/utils/downloadUtils' export default { name: 'ListVisitor', @@ -227,15 +228,7 @@ }) batchExportPerson(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = `访客列表.xlsx` // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, '访客列表') }).catch((res) => { loading.close() }) diff --git a/src/views/query/queryStaff.vue b/src/views/query/queryStaff.vue index f24dccb..9e24ceb 100644 --- a/src/views/query/queryStaff.vue +++ b/src/views/query/queryStaff.vue @@ -85,6 +85,7 @@ import { getStaffList, getDoorSourceList, getDeviceSourceList, exportStaffRecords } from '@/api/query' import DownloadTemplate from '@/components/DownloadTemplate' import DeptSelect from '@/components/DeptSelect/index' +import { downloadFile } from '@/utils/downloadUtils' export default { name: 'QueryStaff', @@ -234,15 +235,7 @@ }) exportStaffRecords(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = '员工记录列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, '员工记录列表') }).catch((res) => { loading.close() }) diff --git a/src/utils/downloadUtils.js b/src/utils/downloadUtils.js new file mode 100644 index 0000000..9dcf126 --- /dev/null +++ b/src/utils/downloadUtils.js @@ -0,0 +1,22 @@ +// 下载文件的公共方法 +export function downloadFile(file, fileName) { + const blob = new Blob([file]) + // IE及IE内核浏览器,ie10+ + if (window.navigator.msSaveBlob) { + try { + window.navigator.msSaveBlob(blob, fileName) + } catch (e) { + console.log(e) + } + } else { // 其他浏览器 + const downloadElement = document.createElement('a') + const href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = fileName + '.xlsx' // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放blob对象 + } +} + diff --git a/src/views/accessPermission/listStaffPermission.vue b/src/views/accessPermission/listStaffPermission.vue index fcde41c..3cbdb6c 100644 --- a/src/views/accessPermission/listStaffPermission.vue +++ b/src/views/accessPermission/listStaffPermission.vue @@ -62,6 +62,8 @@ import DeptSelect from '../../components/DeptSelect/index' import AddStaffPerm from './addStaffPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListStaffPermission', components: { EditStrategy, AddStaffPerm, DeptSelect }, @@ -190,15 +192,7 @@ }) exportStaffPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁员工授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁员工授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/accessPermission/listVisitorPermission.vue b/src/views/accessPermission/listVisitorPermission.vue index b844be8..2bf34e5 100644 --- a/src/views/accessPermission/listVisitorPermission.vue +++ b/src/views/accessPermission/listVisitorPermission.vue @@ -58,6 +58,8 @@ import { getVisitorPermissionByDoor, delPermission, exportVisitorPermission } from '@/api/access' import AddVisitorPerm from './addVisitorPerm' import EditStrategy from '../accessStrategy/editStrategy' +import { downloadFile } from '@/utils/downloadUtils' + export default { name: 'ListVisitorPermission', components: { EditStrategy, AddVisitorPerm }, @@ -180,15 +182,7 @@ }) exportVisitorPermission(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = this.doorName + '门禁访客授权列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, this.doorName + '门禁访客授权列表') }).catch((res) => { loading.close() }) diff --git a/src/views/memberManage/listVisitor.vue b/src/views/memberManage/listVisitor.vue index a493bed..e6454a3 100644 --- a/src/views/memberManage/listVisitor.vue +++ b/src/views/memberManage/listVisitor.vue @@ -78,6 +78,7 @@ import { getToken } from '@/utils/auth' // getToken from cookie import { getProject } from '@/utils/baseConfig' import { isIE } from '@/utils/browser' +import { downloadFile } from '@/utils/downloadUtils' export default { name: 'ListVisitor', @@ -227,15 +228,7 @@ }) batchExportPerson(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = `访客列表.xlsx` // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, '访客列表') }).catch((res) => { loading.close() }) diff --git a/src/views/query/queryStaff.vue b/src/views/query/queryStaff.vue index f24dccb..9e24ceb 100644 --- a/src/views/query/queryStaff.vue +++ b/src/views/query/queryStaff.vue @@ -85,6 +85,7 @@ import { getStaffList, getDoorSourceList, getDeviceSourceList, exportStaffRecords } from '@/api/query' import DownloadTemplate from '@/components/DownloadTemplate' import DeptSelect from '@/components/DeptSelect/index' +import { downloadFile } from '@/utils/downloadUtils' export default { name: 'QueryStaff', @@ -234,15 +235,7 @@ }) exportStaffRecords(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = '员工记录列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, '员工记录列表') }).catch((res) => { loading.close() }) diff --git a/src/views/query/queryVisitor.vue b/src/views/query/queryVisitor.vue index a1d72b7..7964df1 100644 --- a/src/views/query/queryVisitor.vue +++ b/src/views/query/queryVisitor.vue @@ -82,6 +82,7 @@ import { getVisitorList, getDoorSourceList, getDeviceSourceList, exportVisitorRecords } from '@/api/query' import DownloadTemplate from '@/components/DownloadTemplate' import DeptSelect from '@/components/DeptSelect/index' +import { downloadFile } from '@/utils/downloadUtils' export default { name: 'QueryVisitor', @@ -223,15 +224,7 @@ }) exportVisitorRecords(this.listQuery).then(res => { loading.close() // 关闭加载动画 - const blob = new Blob([res.data]) - const downloadElement = document.createElement('a') - const href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = '访客记录列表.xlsx' // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放blob对象 + downloadFile(res.data, '访客记录列表') }).catch((res) => { loading.close() })