From c80e7ca5a9cb0d164e0f1201ffee0a6067267fc5 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Mon, 29 Jun 2026 17:19:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=93=E6=B5=8F=E8=A7=88=E5=99=A8=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E5=A4=A7=E5=B0=8F=E6=9C=89=E6=94=B9=E5=8F=98?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E9=80=82=E5=BA=94=E7=AA=97=E5=8F=A3/1:1?= =?UTF-8?q?=E5=88=86=E8=BE=A8=E7=8E=87=E5=9B=BE=E5=83=8F=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms3D/components/Viewport.vue | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue index c84d2d5b..74b9adf3 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue @@ -151,7 +151,9 @@ export default { markers: { top: '', right: '', bottom: '', left: '' }, playClipState: false, wwwcIdx: 2, - loading: false + loading: false, + forceFitToWindow: false, + resizeObserver: null } }, mounted() { @@ -162,17 +164,26 @@ export default { this.initViewport() }) }, + beforeDestroy() { + if (this.resizeObserver && this.element) { + this.resizeObserver.unobserve(this.element) + this.resizeObserver.disconnect() + } + }, methods: { initViewport() { this.element = this.$refs['viewport'] - const resizeObserver = new ResizeObserver(() => { + this.resizeObserver = new ResizeObserver(() => { const renderingEngine = getRenderingEngine(this.renderingEngineId) if (renderingEngine) { - renderingEngine.resize(true, false) + renderingEngine.resize(true, true) + if (this.forceFitToWindow) { + this.resize(true) + } } }) this.element.oncontextmenu = (e) => e.preventDefault() - resizeObserver.observe(this.element) + this.resizeObserver.observe(this.element) this.element.addEventListener('CORNERSTONE_STACK_NEW_IMAGE', this.stackNewImage) // this.element.addEventListener('CORNERSTONE_VOI_MODIFIED', this.voiModified) // this.element.addEventListener('CORNERSTONE_CAMERA_MODIFIED', this.cameraModified) @@ -343,6 +354,7 @@ export default { viewport.render() }, resize(forceFitToWindow) { + this.forceFitToWindow = !!forceFitToWindow const renderingEngine = getRenderingEngine(this.renderingEngineId) const viewport = renderingEngine.getViewport(this.viewportId) if (!viewport) return