diff --git a/src/views/military/modules/earthMap/msMapLabel/components/MsMapLabelForm.vue b/src/views/military/modules/earthMap/msMapLabel/components/MsMapLabelForm.vue index 80832cd..ca67124 100644 --- a/src/views/military/modules/earthMap/msMapLabel/components/MsMapLabelForm.vue +++ b/src/views/military/modules/earthMap/msMapLabel/components/MsMapLabelForm.vue @@ -13,14 +13,14 @@ - - + +
+ - - + @@ -31,8 +31,9 @@ - - + + @@ -43,12 +44,33 @@ - + + + + + + + + + + + + + + + + @@ -61,7 +83,12 @@ import { getValueType } from '/@/utils'; import { saveOrUpdate } from '../MsMapLabel.api'; import { Form } from 'ant-design-vue'; - + import locationPng from '@/assets/images/getLocation.png'; + import EarthComp from '@/views/earthMap/edit/EarthComp.vue'; + + //缓存subObject数据,点击ok 则将执行checkPosition + let subObjectCache: any= ref({}); + const props = defineProps({ formDisabled: { type: Boolean, default: false }, formData: { type: Object, default: ()=>{} }, @@ -167,11 +194,67 @@ }); } + // 弹窗地图框属性 +const mapVisible = ref(false); +const mapShow = function () { + mapVisible.value = true; +}; +const earth = ref() +function destroyed() { + // console.log("earth", earth.value); + earth.value.destroy(); + nextTick(() => { + mapVisible.value = false + }) +} +// 关闭地图时设置,视角位置,视距信息 +const checkPosition = function (position, cameraPosition, rotation, fov) { + // console.log(position, cameraPosition, rotation, fov); + + formData.labelLon = window.Cesium.Math.toDegrees(position[0]); + formData.labelLat = window.Cesium.Math.toDegrees(position[1]); + formData.labelHeight = position[2]; + + // subObject.value.cameraLon = cameraPosition[0]; + // subObject.value.cameraLat = cameraPosition[1]; + // subObject.value.cameraAltitude = cameraPosition[2]; + + // subObject.value.rotationX = rotation[0]; + // subObject.value.rotationY = rotation[1]; + // subObject.value.rotationZ = rotation[2]; + + // subObject.value.viewDistance = fov; +}; + +function checkPositionCache(position, cameraPosition, rotation, fov){ + console.log("接收到了",position); + subObjectCache.value.position = position + subObjectCache.value.cameraPosition = cameraPosition; + subObjectCache.value.rotation = rotation; + subObjectCache.value.fov = fov; +} +function earthMapOk(){ + checkPosition( + subObjectCache.value.position, + subObjectCache.value.cameraPosition, + subObjectCache.value.rotation, + subObjectCache.value.fov + ) + destroyed() +} + + + defineExpose({ add, edit, submitForm, + mapVisible, + earth, + destroyed, + earthMapOk, + checkPosition }); @@ -181,4 +264,10 @@ overflow-y: auto; padding: 24px 24px 24px 24px; } + .dwImg { + width: 10%; + height: 10%; + margin-left: 3%; + cursor: pointer !important; +}