From aa6a226ce10987ab13ce9b60412bbdcdb7040115 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Tue, 28 Apr 2026 14:06:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/tools/FusionJumpToPointTool.js | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/tools/FusionJumpToPointTool.js b/src/views/trials/trials-panel/reading/dicoms3D/components/tools/FusionJumpToPointTool.js index 4c2ba603..84067023 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/tools/FusionJumpToPointTool.js +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/tools/FusionJumpToPointTool.js @@ -194,9 +194,7 @@ class FusionJumpToPointTool extends AnnotationDisplayTool { if (!viewport?.element) return false const annotations = getAnnotations(this.getToolName(), viewport.element) || [] - const crosshairAnnotation = annotations.find((item) => - item?.data?.type === 'fusion-jump-crosshair' && item?.data?.viewportId === viewport.id - ) + const crosshairAnnotation = this._findViewportCrosshairAnnotationFromList(annotations, viewport.id) if (!crosshairAnnotation) return false const worldPoint = crosshairAnnotation.data?.handles?.points?.[0] @@ -323,9 +321,20 @@ class FusionJumpToPointTool extends AnnotationDisplayTool { _getViewportCrosshairAnnotation(viewport) { if (!viewport?.element) return null const annotations = getAnnotations(this.getToolName(), viewport.element) || [] - return annotations.find((item) => - item?.data?.type === 'fusion-jump-crosshair' && item?.data?.viewportId === viewport.id - ) || null + return this._findViewportCrosshairAnnotationFromList(annotations, viewport.id) + } + + _findViewportCrosshairAnnotationFromList(annotations, viewportId) { + if (!Array.isArray(annotations) || !viewportId) return null + for (let i = 0; i < annotations.length; i++) { + const item = annotations[i] + const data = item && item.data + if (!data) continue + if (data.type === 'fusion-jump-crosshair' && data.viewportId === viewportId) { + return item + } + } + return null } _tryStartDrag(evt) { @@ -521,8 +530,13 @@ class FusionJumpToPointTool extends AnnotationDisplayTool { _getReferenceLineColor(viewportId, fallbackColor) { if (typeof this.configuration.getReferenceLineColor === 'function') { - const color = this.configuration.getReferenceLineColor(viewportId) - if (color) return color + try { + const safeViewportId = viewportId || '' + const color = this.configuration.getReferenceLineColor(safeViewportId) + if (color) return color + } catch (e) { + console.log(e) + } } return fallbackColor || '#6fb9ff' } @@ -538,7 +552,11 @@ class FusionJumpToPointTool extends AnnotationDisplayTool { const centerHoleSize = Number.isFinite(appearance.centerHoleSize) ? appearance.centerHoleSize : 8 let color = appearance.color if (!color && typeof this.configuration.getReferenceLineColor === 'function') { - color = this.configuration.getReferenceLineColor(sourceViewportId) + try { + color = this.configuration.getReferenceLineColor(sourceViewportId || '') + } catch (e) { + console.log(e) + } } return {