#1项目首页-地图上未显示项目的点位

#5项目首页-项目设置,添加飞行器保存后再次打开设置页面不显示飞行器信息
main
zhufu 2 months ago
parent 873a036d4d
commit 9cb32672e7

@ -224,20 +224,20 @@ import cloneDeep from 'lodash/cloneDeep'
import { message } from "ant-design-vue";
import dayjs from "dayjs";
const props = defineProps(['addModal', 'modalType','map', 'updateProject'])
const props = defineProps(['addModal', 'modalType','map', 'updateProject', 'graphicLayer'])
const emits = defineEmits(['update:addModal', 'getProjectList'])
let graphicLayer
// let graphicLayer
let clickHandler
watch(() => props.map, (val) => {
if (val) {
initGraphicLayer(val)
}
}, { immediate: true })
function initGraphicLayer(map) {
graphicLayer = new mars3d.layer.GraphicLayer()
map.addLayer(graphicLayer)
}
// watch(() => props.map, (val) => {
// if (val) {
// initGraphicLayer(val)
// }
// }, { immediate: true })
// function initGraphicLayer(map) {
// graphicLayer = new mars3d.layer.GraphicLayer()
// map.addLayer(graphicLayer)
// }
watch(() => props.addModal, (newValue) => {
console.log('addModal',newValue,props.modalType,props.map)
@ -254,14 +254,14 @@ watch(() => props.addModal, (newValue) => {
}else if(newValue && props.modalType == 'update'){
let userId = props.updateProject.users.map(item => item.id)
let userlist = userList.value.filter(item => userId.includes(item.id))
let deviceId = props.updateProject.lasaDronePort.map(item => item.id)
let deviceArray = deviceList.value.filter(item => deviceId.includes(item.id))
// let deviceId = props.updateProject.lasaDronePort.map(item => item.id)
// let deviceArray = deviceList.value.filter(item => deviceId.includes(item.id))
project.value = {
...props.updateProject.workspace,
requestCodeCutOffTime: props.updateProject.workspace.requestCodeCutOffTime? dayjs(props.updateProject.workspace.requestCodeCutOffTime): '',
userIds: userlist,
lockfly: props.updateProject.lasaSpaceLockFlies,
deviceIds: deviceArray
deviceIds: props.updateProject.lasaDronePort
}
}
})
@ -344,8 +344,8 @@ onMounted(() => {
})
const closeAddModal = () => {
emits('update:addModal',false)
if(graphicLayer){
graphicLayer.clear()
if(props.graphicLayer){
props.graphicLayer.clear()
}
props.map.container.style.cursor = "default"
if (clickHandler) {
@ -425,8 +425,8 @@ const getLocationCenter = () => {
}
}
})
graphicLayer.clear()
graphicLayer.addGraphic(pointGraphic)
props.graphicLayer.clear()
props.graphicLayer.addGraphic(pointGraphic)
}
props.map.on('click', clickHandler)
}
@ -484,8 +484,8 @@ const saveProject = () => {
emits('getProjectList')
})
}
if(graphicLayer){
graphicLayer.clear()
if(props.graphicLayer){
props.graphicLayer.clear()
}
props.map.container.style.cursor = "default"
if (clickHandler) {

@ -26,7 +26,13 @@
</div>
</div>
<!-- 添加项目组件 -->
<AddProject v-model:addModal="addModal" :modalType="modalType" :map="props.map" :updateProject="updateProject" @getProjectList="getProjectList"/>
<AddProject
v-model:addModal="addModal"
:modalType="modalType"
:map="props.map"
:updateProject="updateProject"
:graphicLayer="graphicLayer"
@getProjectList="getProjectList"/>
</div>
</template>
@ -37,6 +43,8 @@ import { GetWorkspaceList, GetWorkSpaceById, DeleteWorkspace } from '@/api/demo/
import { message, Modal } from 'ant-design-vue'
import { ExclamationCircleOutlined } from '@ant-design/icons-vue'
import { getClient, createConnection, clientSubscribe, destroyConnection } from '@/utils/mqtt';
import * as mars3d from "mars3d";
import * as Cesium from "mars3d-cesium"
onMounted(() => {
getProjectList()
@ -50,16 +58,29 @@ const projectList = ref([])
const updateProject = ref({})
const lastSubscriptUrl = ref('')
const getList = ref(false)
const graphicLayer = ref()
const addProject = () => {
modalType.value = 'insert'
addModal.value = true
}
watch(() => [getList.value, props.connect], (value) => {
const check = value.every(item => item === true)
watch(() => [getList.value, props.connect, graphicLayer.value], (value) => {
const check = value.every(item => {
return item
})
console.log('check',check)
if(check){
selectProject(projectList.value[0])
}
})
watch(() => props.map, (val) => {
if (val) {
initGraphicLayer(val)
}
}, { immediate: true })
function initGraphicLayer(map) {
graphicLayer.value = new mars3d.layer.GraphicLayer()
map.addLayer(graphicLayer.value)
}
const selectProject = (item) => {
if(props.activeProject != item.Id){
props.airPort.latitude = null
@ -76,6 +97,30 @@ const selectProject = (item) => {
lastSubscriptUrl.value = topicUrl
clientSubscribe(topicUrl, { qos: 0 });
})
let { centerLat:lat, centerLng: lon } = res.workspace
const position:any = [lon, lat]
const pointGraphic = new mars3d.graphic.PointEntity({
position: position,
style: {
color: '#ff0000',
pixelSize: 10,
outlineColor: '#ffffff',
outlineWidth: 2,
clampToGround: true,
label: {
text: `${res.workspace.workspaceName}`,
font_size: 16,
color: '#000000',
outline: true,
outlineColor: '#ffffff',
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
pixelOffsetY: -20
}
}
})
graphicLayer.value.clear()
graphicLayer.value.addGraphic(pointGraphic)
})
}
const getProjectList = () => {

Loading…
Cancel
Save