diff --git a/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js b/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js index 02dff910..90ed9080 100644 --- a/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js +++ b/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js @@ -409,7 +409,7 @@ export class BrushIndicator { // this.show(e.e); this._mouseEnterHandler && this._mouseEnterHandler(e) } else { - // requestIdleCallback(() => { + // setTimeout(() => { // this.updatePosition(e.e); // }); diff --git a/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js b/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js index b8496609..b77da6d8 100644 --- a/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js +++ b/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js @@ -133,11 +133,12 @@ export class RedGreenModeManager { this.canvas.on("mouse:up", (event) => { // 可以在这里添加更多逻辑,比如生成图片或更新状态 nextTick(() => { - requestIdleCallback(async () => { + setTimeout(async () => { if (!this.isInitialized) { console.warn("红绿图模式未初始化,无法处理鼠标事件"); return; } + console.log("鼠标抬起事件触发", this.onImageGenerated); if (this.onImageGenerated) { const imageData = await this.canvasManager.exportImage({ restoreOpacityInRedGreen: true, // 恢复红绿图模式下的透明度 diff --git a/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js b/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js index 3c042817..6dd9667f 100644 --- a/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js +++ b/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js @@ -37,7 +37,6 @@ export class ThumbnailManager { // 延迟执行,避免阻塞UI fabricObjects.length > 0 && - requestIdleCallback(() => { setTimeout(async () => { const base64 = await this._generateLayerThumbnailNow(fabricObjects, layer); // this.layerThumbnails.set(layerId, base64); @@ -55,7 +54,6 @@ export class ThumbnailManager { console.error("生成图层缩略图时出错:", error); } }); - }); } /** @@ -65,7 +63,7 @@ export class ThumbnailManager { generateAllLayerThumbnails(layers) { if (!layers || !Array.isArray(layers)) return; - requestIdleCallback(() => { + setTimeout(() => { setTimeout(() => { layers.forEach((layer) => { if (layer && layer.id) { diff --git a/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js b/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js index 15e2f797..f4429bb4 100644 --- a/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js +++ b/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js @@ -155,7 +155,7 @@ export class LiquifyRealTimeUpdater { // 使用requestAnimationFrame进行批量渲染优化 // if (!this.renderingScheduled && !this.config.skipRenderDuringDrag) { // this.renderingScheduled = true; - // requestIdleCallback(() => { + // setTimeout(() => { // this.canvas.renderAll(); // this.renderingScheduled = false; // }); diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue index ad20795d..13f1f734 100644 --- a/src/component/Detail/model/modelPosition.vue +++ b/src/component/Detail/model/modelPosition.vue @@ -189,11 +189,11 @@ export default defineComponent({ } return { scaleX, scaleY, rotate }; } - const initMoveableForSelected = () => { + const initMoveableForSelected = async (isDestroy:boolean = false) => { // 销毁旧的实例 if(selectItem.imgDomIndex == -1)return - if (moveableInstance.value) { - moveableInstance.value.destroy(); + if (moveableInstance?.value?.destroy && !isDestroy) { + moveableInstance?.value?.destroy(); } const selectedEl = elementRefs.value[selectItem.imgDomIndex]; @@ -509,7 +509,7 @@ export default defineComponent({ watch(()=>detailData.frontBack.front.length,(newValue,oldValue)=>{ if(selectItem.selectDetail?.id)selectItem.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == selectItem.selectDetail?.id) setTimeout(()=>{ - initMoveableForSelected() + initMoveableForSelected(oldValue == 0) },100) }) const setRevocation = async ()=>{ diff --git a/src/tool/util.js b/src/tool/util.js index 1111bca4..0b82f3b9 100644 --- a/src/tool/util.js +++ b/src/tool/util.js @@ -684,28 +684,28 @@ function isValidUrl(string) { } export { - isEmail, - getUploadUrl, - getUniversalZoomLevel, - rgbaToHex, - getMinioUrl, - base64ToFile, - dataURLtoFile, - blobToFile, - base64toFile, - rgbToHsv, - formatTime, - dataURLtoBlob, - isMoible, - downloadIamge, - downloadVideoWithFetch, - getBrowserInfo, - setPubDate, - murmur, - setGradual, - calculateGradientCoordinate, - segmentImage, - UrlToFile, - sketchToMask, + isEmail, + getUploadUrl, + getUniversalZoomLevel, + rgbaToHex, + getMinioUrl, + base64ToFile, + dataURLtoFile, + blobToFile, + base64toFile, + rgbToHsv, + formatTime, + dataURLtoBlob, + isMoible, + downloadIamge, + downloadVideoWithFetch, + getBrowserInfo, + setPubDate, + murmur, + setGradual, + calculateGradientCoordinate, + segmentImage, + UrlToFile, + sketchToMask, isValidUrl } \ No newline at end of file