|
|
|
@ -241,15 +241,14 @@ |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 导弹发射参数弹窗(可拖动) --> |
|
|
|
<!-- 导弹发射参数弹窗(可拖动,由全局 dialogDrag 插件处理) --> |
|
|
|
<el-dialog |
|
|
|
ref="missileDialog" |
|
|
|
title="导弹发射参数" |
|
|
|
:visible.sync="missileDialogVisible" |
|
|
|
:modal="false" |
|
|
|
width="300px" |
|
|
|
custom-class="missile-params-dialog dialog-draggable" |
|
|
|
@open="onMissileDialogOpen" |
|
|
|
custom-class="missile-params-dialog" |
|
|
|
> |
|
|
|
<el-form :model="missileForm" label-width="80px" size="small"> |
|
|
|
<el-form-item label="角度(°)"> |
|
|
|
@ -621,9 +620,6 @@ export default { |
|
|
|
missileDialogVisible(val) { |
|
|
|
if (!val) { |
|
|
|
this.clearMissilePreview() |
|
|
|
if (this._missileDialogDragCleanup) { |
|
|
|
this._missileDialogDragCleanup() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
@ -3123,53 +3119,6 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
/** 导弹参数弹窗打开后绑定标题栏拖动 */ |
|
|
|
onMissileDialogOpen() { |
|
|
|
this.$nextTick(() => { |
|
|
|
const dialog = document.querySelector('.missile-params-dialog') |
|
|
|
const wrapper = dialog && dialog.closest('.el-dialog__wrapper') |
|
|
|
if (!wrapper || !dialog) return |
|
|
|
const header = wrapper.querySelector('.el-dialog__header') |
|
|
|
if (!header) return |
|
|
|
header.style.cursor = 'move' |
|
|
|
let startX, startY, startLeft, startTop |
|
|
|
const onMouseDown = (e) => { |
|
|
|
if (e.button !== 0) return |
|
|
|
startX = e.clientX |
|
|
|
startY = e.clientY |
|
|
|
const rect = wrapper.getBoundingClientRect() |
|
|
|
startLeft = rect.left |
|
|
|
startTop = rect.top |
|
|
|
wrapper.style.position = 'fixed' |
|
|
|
wrapper.style.left = startLeft + 'px' |
|
|
|
wrapper.style.top = startTop + 'px' |
|
|
|
wrapper.style.margin = '0' |
|
|
|
document.addEventListener('mousemove', onMouseMove) |
|
|
|
document.addEventListener('mouseup', onMouseUp) |
|
|
|
} |
|
|
|
const onMouseMove = (e) => { |
|
|
|
const dx = e.clientX - startX |
|
|
|
const dy = e.clientY - startY |
|
|
|
wrapper.style.left = (startLeft + dx) + 'px' |
|
|
|
wrapper.style.top = (startTop + dy) + 'px' |
|
|
|
startLeft += dx |
|
|
|
startTop += dy |
|
|
|
startX = e.clientX |
|
|
|
startY = e.clientY |
|
|
|
} |
|
|
|
const onMouseUp = () => { |
|
|
|
document.removeEventListener('mousemove', onMouseMove) |
|
|
|
document.removeEventListener('mouseup', onMouseUp) |
|
|
|
} |
|
|
|
header.addEventListener('mousedown', onMouseDown) |
|
|
|
this._missileDialogDragCleanup = () => { |
|
|
|
header.removeEventListener('mousedown', onMouseDown) |
|
|
|
header.style.cursor = '' |
|
|
|
delete this._missileDialogDragCleanup |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
/** 清除导弹预览(轨迹线 + 朝向图标) */ |
|
|
|
clearMissilePreview() { |
|
|
|
if (this.viewer && this.viewer.entities) { |
|
|
|
|