From 1025a0e26e386d62210891fec501024d16a48f00 Mon Sep 17 00:00:00 2001 From: 13121765685 Date: Sun, 28 Dec 2025 20:59:06 +0800 Subject: [PATCH] 222 --- .../src/components/common/CanvasEditor.vue | 19 ++++++++++++++++--- .../views/admin/AdminOrders/AdminOrders.vue | 2 +- apps/frontend/src/components/CanvasEditor.vue | 19 ++++++++++++++++--- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/apps/FrontendDesigner/src/components/common/CanvasEditor.vue b/apps/FrontendDesigner/src/components/common/CanvasEditor.vue index 8921c1a..567d75b 100644 --- a/apps/FrontendDesigner/src/components/common/CanvasEditor.vue +++ b/apps/FrontendDesigner/src/components/common/CanvasEditor.vue @@ -163,18 +163,19 @@ watch(dialogVisible, (val) => { const initCanvas = async () => { if (!canvas.value || !canvasWrapper.value) return - + console.log('记载'); imageLoading.value = true imageLoadError.value = false try { const img = new Image() img.crossOrigin = 'anonymous' + const objectURL = await fetchImage(props.imageUrl) await new Promise((resolve, reject) => { img.onload = () => resolve() img.onerror = () => reject(new Error('Failed to load image')) - img.src = props.imageUrl + img.src = objectURL }) const canvasEl = canvas.value @@ -294,7 +295,19 @@ const handleTouchStart = (e) => { lastY = coords.y isDrawing.value = true } - +async function fetchImage(url) { + const cacheBusterUrl = url + '?v=1.0.0'; + const response = await fetch(cacheBusterUrl, { + method: 'GET', + mode: 'cors', + credentials: 'omit', + cache: 'no-cache' + }); + const blob = await response.blob(); + const imgurl = URL.createObjectURL(blob); + console.log(imgurl,'imgurlimgurlimgurl'); + return imgurl; +} const handleTouchMove = (e) => { e.preventDefault() if (!isDrawing.value || !ctx.value) return diff --git a/apps/FrontendDesigner/src/views/admin/AdminOrders/AdminOrders.vue b/apps/FrontendDesigner/src/views/admin/AdminOrders/AdminOrders.vue index ec6e801..7e09376 100644 --- a/apps/FrontendDesigner/src/views/admin/AdminOrders/AdminOrders.vue +++ b/apps/FrontendDesigner/src/views/admin/AdminOrders/AdminOrders.vue @@ -463,7 +463,7 @@ { const initCanvas = async () => { if (!canvas.value || !canvasWrapper.value) return - + console.log('记载'); imageLoading.value = true imageLoadError.value = false try { const img = new Image() img.crossOrigin = 'anonymous' + const objectURL = await fetchImage(props.imageUrl) await new Promise((resolve, reject) => { img.onload = () => resolve() img.onerror = () => reject(new Error('Failed to load image')) - img.src = props.imageUrl + img.src = objectURL }) const canvasEl = canvas.value @@ -294,7 +295,19 @@ const handleTouchStart = (e) => { lastY = coords.y isDrawing.value = true } - +async function fetchImage(url) { + const cacheBusterUrl = url + '?v=1.0.0'; + const response = await fetch(cacheBusterUrl, { + method: 'GET', + mode: 'cors', + credentials: 'omit', + cache: 'no-cache' + }); + const blob = await response.blob(); + const imgurl = URL.createObjectURL(blob); + console.log(imgurl,'imgurlimgurlimgurl'); + return imgurl; +} const handleTouchMove = (e) => { e.preventDefault() if (!isDrawing.value || !ctx.value) return