Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
commit
34ce5142f2
|
|
@ -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
|
||||||
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -70,6 +70,9 @@ import FB from '@/components/feedBack/index'
|
||||||
Vue.use(FB)
|
Vue.use(FB)
|
||||||
import FBT from '@/components/feedBackTable/index'
|
import FBT from '@/components/feedBackTable/index'
|
||||||
Vue.use(FBT)
|
Vue.use(FBT)
|
||||||
|
import resize from '@/directive/resize/index'
|
||||||
|
// 表格自适应指令
|
||||||
|
Vue.use(resize)
|
||||||
import adaptive from '@/directive/adaptive/index'
|
import adaptive from '@/directive/adaptive/index'
|
||||||
// 表格自适应指令
|
// 表格自适应指令
|
||||||
Vue.use(adaptive)
|
Vue.use(adaptive)
|
||||||
|
|
|
||||||
|
|
@ -309,7 +309,8 @@
|
||||||
<VolumeViewport :ref="`viewport-${index}`" :data-viewport-uid="`viewport-${index}`"
|
<VolumeViewport :ref="`viewport-${index}`" :data-viewport-uid="`viewport-${index}`"
|
||||||
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index"
|
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index"
|
||||||
@activeViewport="activeViewport" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
|
@activeViewport="activeViewport" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
|
||||||
@renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" v-if="readingTool === 3" />
|
@renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" v-if="readingTool === 3"
|
||||||
|
v-resize="(e) => handleSizeChange(e, `viewport-${index}`)" />
|
||||||
<Viewport :ref="`viewport-${index}`" :data-viewport-uid="`viewport-${index}`"
|
<Viewport :ref="`viewport-${index}`" :data-viewport-uid="`viewport-${index}`"
|
||||||
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index"
|
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-${index}`" :viewport-index="index"
|
||||||
@activeViewport="activeViewport" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
|
@activeViewport="activeViewport" @toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
|
||||||
|
|
@ -327,7 +328,8 @@
|
||||||
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-MPR-${index}`"
|
:rendering-engine-id="renderingEngineId" :viewport-id="`viewport-MPR-${index}`"
|
||||||
:viewport-index="index" :MPRInfo="MPRInfo" @activeViewport="activeViewport" @setMPRInfo="setMPRInfo"
|
:viewport-index="index" :MPRInfo="MPRInfo" @activeViewport="activeViewport" @setMPRInfo="setMPRInfo"
|
||||||
@toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
|
@toggleTaskByViewport="toggleTaskByViewport" @previewCD="previewCD"
|
||||||
@renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup" />
|
@renderAnnotations="renderAnnotations" @contentMouseup="contentMouseup"
|
||||||
|
v-resize="(e) => handleSizeChange(e, `viewport-MPR-${index}`)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="readingTool === 2"
|
<div v-if="readingTool === 2"
|
||||||
|
|
@ -904,6 +906,10 @@ export default {
|
||||||
this.getSystemInfoReading();
|
this.getSystemInfoReading();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleSizeChange(e, viewportId) {
|
||||||
|
// console.log('handleSizeChange', e)
|
||||||
|
this.resetRenderingEngine(viewportId)
|
||||||
|
},
|
||||||
resetQuestion() {
|
resetQuestion() {
|
||||||
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].getQuestions(false)
|
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].getQuestions(false)
|
||||||
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].initSegmentBinding()
|
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].initSegmentBinding()
|
||||||
|
|
@ -1570,6 +1576,10 @@ export default {
|
||||||
setNetWorkSpeedSizeAll(percentComplete, detail.total, imageId)
|
setNetWorkSpeedSizeAll(percentComplete, detail.total, imageId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (this.readingTool === 3) {
|
||||||
|
getNetWorkSpeed()
|
||||||
|
setNetWorkSpeedSizeAll(percentComplete, detail.total, imageId)
|
||||||
|
}
|
||||||
if (percentComplete === 100) {
|
if (percentComplete === 100) {
|
||||||
workSpeedclose()
|
workSpeedclose()
|
||||||
}
|
}
|
||||||
|
|
@ -2821,20 +2831,26 @@ export default {
|
||||||
this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].resize(forceFitToWindow)
|
this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].resize(forceFitToWindow)
|
||||||
},
|
},
|
||||||
// 重置视口
|
// 重置视口
|
||||||
resetRenderingEngine() {
|
resetRenderingEngine(viewportId = null) {
|
||||||
if (this.timer) {
|
if (this.timer) {
|
||||||
clearInterval(this.timer)
|
clearInterval(this.timer)
|
||||||
this.timer = null
|
this.timer = null
|
||||||
}
|
}
|
||||||
|
const renderingEngine = getRenderingEngine(renderingEngineId)
|
||||||
|
const viewport = renderingEngine.getViewport(viewportId)
|
||||||
|
if (!viewport) return false
|
||||||
|
if (viewport.volumeIds.size <= 0) return false
|
||||||
let index = null
|
let index = null
|
||||||
this.timer = setTimeout(() => {
|
this.timer = setTimeout(() => {
|
||||||
index = index || index === 0 ? index : this.$refs[`${this.viewportKey}-${this.activeViewportIndex}`][0].series.SliceIndex
|
index = index || index === 0 ? index : this.$refs[viewportId ? viewportId : `${this.viewportKey}-${this.activeViewportIndex}`][0].series.SliceIndex
|
||||||
const renderingEngine = getRenderingEngine(renderingEngineId)
|
|
||||||
renderingEngine.resize(true, false)
|
renderingEngine.resize(true, false)
|
||||||
renderingEngine.render()
|
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)
|
clearTimeout(this.timer)
|
||||||
this.timer = null
|
this.timer = null
|
||||||
|
if (this.readingTool === 3) {
|
||||||
|
DicomEvent.$emit('isloaded', { isChange: false })
|
||||||
|
}
|
||||||
}, 100)
|
}, 100)
|
||||||
},
|
},
|
||||||
setDelay(time) {
|
setDelay(time) {
|
||||||
|
|
@ -2857,9 +2873,9 @@ export default {
|
||||||
this.resetRenderingEngine()
|
this.resetRenderingEngine()
|
||||||
this.isDelay = true
|
this.isDelay = true
|
||||||
this.setDelay(2000)
|
this.setDelay(2000)
|
||||||
if (this.readingTool === 3) {
|
// if (this.readingTool === 3) {
|
||||||
DicomEvent.$emit('isloaded', { isChange: false })
|
// DicomEvent.$emit('isloaded', { isChange: false })
|
||||||
}
|
// }
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div :class="['tool-item', activeTool === 'CircularEraser' && segmentList.length > 0 ? 'tool-item-active' : '']"
|
<div :class="['tool-item', activeTool === 'CircularEraser' && segmentList.length > 0 ? 'tool-item-active' : '']"
|
||||||
:style="{ cursor: segmentList.length <= 0 || (curSegment && curSegment.lock) ? 'not-allowed' : 'pointer' }"
|
:style="{ cursor: segmentList.length <= 0 || (curSegment && curSegment.lock) ? 'not-allowed' : 'pointer' }"
|
||||||
:title="$t('trials:Segmentations:tools:Eraser')" @click.prevent="setToolActive('CircularEraser')">
|
:title="$t('trials:Segmentations:tools:Eraser')"
|
||||||
|
@click.prevent="setToolActive('CircularEraser')">
|
||||||
<svg-icon icon-class="clear" class="svg-icon" />
|
<svg-icon icon-class="clear" class="svg-icon" />
|
||||||
</div>
|
</div>
|
||||||
<!-- <div :class="['tool-item']">
|
<!-- <div :class="['tool-item']">
|
||||||
|
|
@ -870,7 +871,14 @@ export default {
|
||||||
if (passive) this.$emit('setToolsPassive')
|
if (passive) this.$emit('setToolsPassive')
|
||||||
},
|
},
|
||||||
async rename(key, item) {
|
async rename(key, item) {
|
||||||
let name = await this.customPrompt()
|
let value = null
|
||||||
|
if (key === 'segmentGroup') {
|
||||||
|
let group = this.segmentList.find(i => i.segmentationId === this.segmentationId)
|
||||||
|
value = group.name
|
||||||
|
} else {
|
||||||
|
value = item.SegmentLabel
|
||||||
|
}
|
||||||
|
let name = await this.customPrompt(value)
|
||||||
if (!name) return false
|
if (!name) return false
|
||||||
if (key === 'segmentGroup') {
|
if (key === 'segmentGroup') {
|
||||||
let group = this.segmentList.find(i => i.segmentationId === this.segmentationId)
|
let group = this.segmentList.find(i => i.segmentationId === this.segmentationId)
|
||||||
|
|
@ -881,7 +889,7 @@ export default {
|
||||||
this.addOrUpdateSegment({ name: item.SegmentLabel, color: item.color, segmentIndex: item.segmentIndex, segmentationId: item.segmentationId, segmentJson: JSON.stringify({ stats: item.stats, bidirectional: item.bidirectional }), id: item.id })
|
this.addOrUpdateSegment({ name: item.SegmentLabel, color: item.color, segmentIndex: item.segmentIndex, segmentationId: item.segmentationId, segmentJson: JSON.stringify({ stats: item.stats, bidirectional: item.bidirectional }), id: item.id })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async customPrompt() {
|
async customPrompt(name) {
|
||||||
try {
|
try {
|
||||||
const that = this
|
const that = this
|
||||||
// 请输入标记名称
|
// 请输入标记名称
|
||||||
|
|
@ -893,6 +901,7 @@ export default {
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
closeOnClickModal: false,
|
closeOnClickModal: false,
|
||||||
closeOnPressEscape: false,
|
closeOnPressEscape: false,
|
||||||
|
inputValue: name,
|
||||||
beforeClose: (action, instance, done) => {
|
beforeClose: (action, instance, done) => {
|
||||||
if (action === 'confirm') {
|
if (action === 'confirm') {
|
||||||
// const value = instance.inputValue
|
// const value = instance.inputValue
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue