From 1dcfc2a4c1d1fc317ee4f1313a32751c348ba77d Mon Sep 17 00:00:00 2001 From: admin <572701190@qq.com> Date: Sun, 24 May 2026 17:42:48 +0800 Subject: [PATCH] =?UTF-8?q?2026-05-24-17-29-17=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9E=84=E4=BB=B6=E5=8A=A0=E8=BD=BD=E8=BF=9B=E5=BA=A6=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=BB=9A=E8=BD=AE=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docker部署/README.md | 5 + WebSite/src/components/ProjectLibrary.tsx | 58 +++++---- WebSite/src/components/ReverseWorkspace.tsx | 133 +++++++++++++++----- 工程分析/实现方案-2026-05-24-17-29-17.md | 53 ++++++++ 工程分析/测试方案-2026-05-24-17-29-17.md | 46 +++++++ 工程分析/经验记录.md | 18 +++ 工程分析/需求分析-2026-05-24-17-29-17.md | 44 +++++++ 7 files changed, 299 insertions(+), 58 deletions(-) create mode 100644 工程分析/实现方案-2026-05-24-17-29-17.md create mode 100644 工程分析/测试方案-2026-05-24-17-29-17.md create mode 100644 工程分析/需求分析-2026-05-24-17-29-17.md diff --git a/Docker部署/README.md b/Docker部署/README.md index 1bf77aa..7211238 100644 --- a/Docker部署/README.md +++ b/Docker部署/README.md @@ -140,3 +140,8 @@ cd WebSite npm run build npm run serve -- --host 0.0.0.0 --port 4000 ``` + +## 六、2026-05-24 交互修正 + +- 逆向工作区切换构件层级时,可见 STL 构件会显示加载进度,避免高精度预览加载期间误判为构件不显示。 +- DICOM 与逆向分割映射画布的滚轮缩放使用非被动 wheel 监听,修正浏览器控制台 `Unable to preventDefault inside passive event listener invocation` 警告。 diff --git a/WebSite/src/components/ProjectLibrary.tsx b/WebSite/src/components/ProjectLibrary.tsx index 41ef090..92caee6 100644 --- a/WebSite/src/components/ProjectLibrary.tsx +++ b/WebSite/src/components/ProjectLibrary.tsx @@ -359,6 +359,7 @@ function getDicomDisplaySliceNumber(sliceIndex: number, totalSlices: number) { } function DicomCanvas({ preview, rotation, resetSignal }: { preview: DicomPreview; rotation: number; resetSignal: number }) { + const viewportRef = useRef(null); const canvasRef = useRef(null); const [viewport, setViewport] = useState({ scale: 1, offsetX: 0, offsetY: 0 }); const [isPanning, setIsPanning] = useState(false); @@ -383,14 +384,27 @@ function DicomCanvas({ preview, rotation, resetSignal }: { preview: DicomPreview setViewport({ scale: 1, offsetX: 0, offsetY: 0 }); }, [resetSignal]); - const handleWheel = (event: React.WheelEvent) => { - event.preventDefault(); - const scaleFactor = event.deltaY > 0 ? 0.9 : 1.1; - setViewport((current) => ({ - ...current, - scale: Math.max(0.35, Math.min(6, current.scale * scaleFactor)), - })); - }; + useEffect(() => { + const element = viewportRef.current; + if (!element) { + return; + } + + const handleWheel = (event: WheelEvent) => { + event.preventDefault(); + const scaleFactor = event.deltaY > 0 ? 0.9 : 1.1; + setViewport((current) => ({ + ...current, + scale: Math.max(0.35, Math.min(6, current.scale * scaleFactor)), + })); + }; + + element.addEventListener('wheel', handleWheel, { passive: false }); + return () => { + element.removeEventListener('wheel', handleWheel); + }; + }, []); + const handlePointerDown = (event: React.PointerEvent) => { if (event.button !== 0) { return; @@ -431,8 +445,8 @@ function DicomCanvas({ preview, rotation, resetSignal }: { preview: DicomPreview return (