diff --git a/src/views/deviceManagement/videoDeviceMgmt/index.vue b/src/views/deviceManagement/videoDeviceMgmt/index.vue index ceea23d6..f76b9150 100644 --- a/src/views/deviceManagement/videoDeviceMgmt/index.vue +++ b/src/views/deviceManagement/videoDeviceMgmt/index.vue @@ -208,6 +208,7 @@ import { getVideoDeviceDetail, qrCodeDownZip, } from '@/api/deviceManagement' +import { downloadFile } from '@/utils/download' export default { components: { @@ -339,41 +340,14 @@ export default { async handleQrCode() { console.log('下载二维码') const params = { ...this.queryParams } - // const url = '/smart-site/video_equipment/downZip?pageNum' - // const url = 'http://192.168.0.58:38080/smart-site/video_equipment/downZip?pageNum' + this.queryParams.pageNum + '&pageSize=' + this.queryParams.pageSize - // const fileName = `二维码_${new Date().getTime()}.zip` - // this.downLoadFile(url, fileName, null) - // const res = await qrCodeDownZip(params) - // console.log('🚀 ~ 下载二维码 ~ res:', res) try { - const response = await qrCodeDownZip(params) - console.log('🚀 ~ handleQrCode ~ response:', response) - // const blob = new Blob([response], { type: 'application/octet-stream' }) - // const url = window.URL.createObjectURL(blob) - // const link = document.createElement('a') - // link.href = url - // link.setAttribute('download', `二维码_${new Date().getTime()}.zip`) - // document.body.appendChild(link) - // link.click() - // link.remove() - // window.URL.revokeObjectURL(url) - // 检查响应类型,确保是 Blob 或 ArrayBuffer - const blob = new Blob([response.data], { type: 'application/octet-stream' }) - console.log('🚀 ~ handleQrCode ~ blob:', blob) - // 创建下载链接 - const url = window.URL.createObjectURL(blob) - // 创建一个隐藏的 标签进行下载 - const a = document.createElement('a') - a.href = url - a.download = `二维码_${new Date().getTime()}.zip` // 设置下载的文件名 - document.body.appendChild(a) - - // 触发点击事件下载文件 - a.click() - - // 释放 URL 对象,防止内存泄漏 - window.URL.revokeObjectURL(url) - document.body.removeChild(a) + const res = await qrCodeDownZip(params) + console.log('🚀 ~ handleQrCode ~ res:', res) + downloadFile({ + fileName: `二维码_${new Date().getTime()}.zip`, + fileData: res, + fileType: 'application/zip;charset=utf-8', + }) } catch (error) { console.error('下载二维码失败:', error) }