diff --git a/src/directive/resize/index.js b/src/directive/resize/index.js new file mode 100644 index 00000000..e9fba176 --- /dev/null +++ b/src/directive/resize/index.js @@ -0,0 +1,16 @@ +import resize from './resize' + +const install = function (Vue) { + // 绑定v-adaptive指令 + Vue.directive('resize', resize) +} + +// if (window.Vue) { +// window['adaptive'] = adaptive +// // eslint-disable-next-line no-undef +// Vue.use(install) +// } + +resize.install = install + +export default resize diff --git a/src/directive/resize/resize.js b/src/directive/resize/resize.js new file mode 100644 index 00000000..bfd081f5 --- /dev/null +++ b/src/directive/resize/resize.js @@ -0,0 +1,19 @@ +const map = new WeakMap() +const ob = new ResizeObserver(entries => { + for (const entry of entries) { + const handler = map.get(entry.target) + if (handler) { + const { inlineSize, blockSize } = entry.contentBoxSize[0] + handler({ width: inlineSize, height: blockSize }) + } + } +}) +export default { + bind(el, binding) { + map.set(el, binding.value) + ob.observe(el) + }, + unbind(el) { + ob.unobserve(el) + } +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index 4ca2d123..b19e486b 100644 --- a/src/main.js +++ b/src/main.js @@ -70,6 +70,9 @@ import FB from '@/components/feedBack/index' Vue.use(FB) import FBT from '@/components/feedBackTable/index' Vue.use(FBT) +import resize from '@/directive/resize/index' +// 表格自适应指令 +Vue.use(resize) import adaptive from '@/directive/adaptive/index' // 表格自适应指令 Vue.use(adaptive) diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue index e2b385f0..f6ee5e5a 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue @@ -309,7 +309,8 @@ + @renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" v-if="readingTool === 3" + v-resize="(e) => handleSizeChange(e, `viewport-${index}`)" /> + @renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" + v-resize="(e) => handleSizeChange(e, `viewport-MPR-${index}`)" />
{ - index = index || index === 0 ? index : this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].series.SliceIndex - const renderingEngine = getRenderingEngine(renderingEngineId) + index = index || index === 0 ? index : this.$refs[viewportId ? viewportId : `${this.viewportKey}-${this.activeViewportIndex}`][0].series.SliceIndex renderingEngine.resize(true, false) renderingEngine.render() - this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].setFullScreen(index) + this.$refs[viewportId ? viewportId : `${this.viewportKey}-${this.activeViewportIndex}`][0].setFullScreen(index) clearTimeout(this.timer) this.timer = null + if (this.readingTool === 3) { + DicomEvent.$emit('isloaded', { isChange: false }) + } }, 100) }, setDelay(time) { @@ -2857,9 +2873,9 @@ export default { this.resetRenderingEngine() this.isDelay = true this.setDelay(2000) - if (this.readingTool === 3) { - DicomEvent.$emit('isloaded', { isChange: false }) - } + // if (this.readingTool === 3) { + // DicomEvent.$emit('isloaded', { isChange: false }) + // } }) } diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue index 822566fa..08ce4f15 100644 --- a/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/Segmentations.vue @@ -26,7 +26,8 @@
+ :title="$t('trials:Segmentations:tools:Eraser')" + @click.prevent="setToolActive('CircularEraser')">