From b449ebeb8dae19d6119835578d9f60c6a0711048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B0=8F?= <736883394@qq.com> Date: Fri, 6 Jun 2025 10:10:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BDbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/Produce/BatteryQRCode/index.vue | 44 +++++++++++++------ .../src/views/Produce/BikeQRCode/index.vue | 44 +++++++++++++------ .../src/views/Produce/HelmetQRCode/index.vue | 44 +++++++++++++------ 3 files changed, 90 insertions(+), 42 deletions(-) diff --git a/ebike-operate/src/views/Produce/BatteryQRCode/index.vue b/ebike-operate/src/views/Produce/BatteryQRCode/index.vue index 7b0c7c6..c5c1d00 100644 --- a/ebike-operate/src/views/Produce/BatteryQRCode/index.vue +++ b/ebike-operate/src/views/Produce/BatteryQRCode/index.vue @@ -361,20 +361,36 @@ const handleBind = (record) => { } const handleDown = async (record) => { - await nextTick(); - const rowElement = document.querySelector(`[data-row-key="${record.batteryCode}"]`); - var canvas = rowElement.querySelector('Canvas') - if (canvas) { - const url = canvas.toDataURL(); - const a = document.createElement('a'); - a.download = `${record.batteryCode}.png`; - a.href = url; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - } else { - console.error('Row element not found'); - } + const{base64QrCode,batteryCode}=record; + console.log(record) + const link = document.createElement('a') + link.href = base64QrCode + link.download = batteryCode + + // 兼容旧版浏览器 + if (document.createEvent) { + const event = new MouseEvent('click') + link.dispatchEvent(event) + } else { + link.click() + } + + // 清理临时元素 + document.body.removeChild(link) + // await nextTick(); + // const rowElement = document.querySelector(`[data-row-key="${record.batteryCode}"]`); + // var canvas = rowElement.querySelector('Canvas') + // if (canvas) { + // const url = canvas.toDataURL(); + // const a = document.createElement('a'); + // a.download = `${record.batteryCode}.png`; + // a.href = url; + // document.body.appendChild(a); + // a.click(); + // document.body.removeChild(a); + // } else { + // console.error('Row element not found'); + // } } const handleSelect = (record) => { diff --git a/ebike-operate/src/views/Produce/BikeQRCode/index.vue b/ebike-operate/src/views/Produce/BikeQRCode/index.vue index 6aa21fa..dfaa17c 100644 --- a/ebike-operate/src/views/Produce/BikeQRCode/index.vue +++ b/ebike-operate/src/views/Produce/BikeQRCode/index.vue @@ -365,20 +365,36 @@ const handleBind = (record) => { } const handleDown = async (record) => { - await nextTick(); - const rowElement = document.querySelector(`[data-row-key="${record.bikeCode}"]`); - var canvas = rowElement.querySelector('Canvas') - if (canvas) { - const url = canvas.toDataURL(); - const a = document.createElement('a'); - a.download = `${record.bikeCode}.png`; - a.href = url; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - } else { - console.error('Row element not found'); - } + const{base64QrCode,bikeCode}=record; + const link = document.createElement('a') + link.href = base64QrCode + link.download = bikeCode + + // 兼容旧版浏览器 + if (document.createEvent) { + const event = new MouseEvent('click') + link.dispatchEvent(event) + } else { + link.click() + } + + // 清理临时元素 + document.body.removeChild(link) + // await nextTick(); + // console.log("66666666666666666666666",record) + // const rowElement = document.querySelector(`[data-row-key="${record.bikeCode}"]`); + // var canvas = rowElement.querySelector('Canvas') + // if (canvas) { + // const url = canvas.toDataURL(); + // const a = document.createElement('a'); + // a.download = `${record.bikeCode}.png`; + // a.href = url; + // document.body.appendChild(a); + // a.click(); + // document.body.removeChild(a); + // } else { + // console.error('Row element not found'); + // } } const handleSelect = (record) => { diff --git a/ebike-operate/src/views/Produce/HelmetQRCode/index.vue b/ebike-operate/src/views/Produce/HelmetQRCode/index.vue index 2e9f889..44fd9e4 100644 --- a/ebike-operate/src/views/Produce/HelmetQRCode/index.vue +++ b/ebike-operate/src/views/Produce/HelmetQRCode/index.vue @@ -361,20 +361,36 @@ const handleBind = (record) => { } const handleDown = async (record) => { - await nextTick(); - const rowElement = document.querySelector(`[data-row-key="${record.helmetCode}"]`); - var canvas = rowElement.querySelector('Canvas') - if (canvas) { - const url = canvas.toDataURL(); - const a = document.createElement('a'); - a.download = `${record.helmetCode}.png`; - a.href = url; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - } else { - console.error('Row element not found'); - } + const{base64QrCode,helmetCode}=record; + console.log(record) + const link = document.createElement('a') + link.href = base64QrCode + link.download = helmetCode + + // 兼容旧版浏览器 + if (document.createEvent) { + const event = new MouseEvent('click') + link.dispatchEvent(event) + } else { + link.click() + } + + // 清理临时元素 + document.body.removeChild(link) + // await nextTick(); + // const rowElement = document.querySelector(`[data-row-key="${record.helmetCode}"]`); + // var canvas = rowElement.querySelector('Canvas') + // if (canvas) { + // const url = canvas.toDataURL(); + // const a = document.createElement('a'); + // a.download = `${record.helmetCode}.png`; + // a.href = url; + // document.body.appendChild(a); + // a.click(); + // document.body.removeChild(a); + // } else { + // console.error('Row element not found'); + // } } const handleSelect = (record) => {