刘妍 2 months ago
commit aea2fa0d32

@ -119,6 +119,9 @@ const clientPublish = (topic: string, querys: any) => {
// createConnection();
// }
getClient().publish(topic, JSON.stringify(querys), { qos: 0 }, (err) => {
// if(err == undefined){
// createMessage.error('指令执行失败,请检查设备连接状态');
// }
if (err) {
console.error('Publish error:', err);
}

@ -71,7 +71,7 @@
</div>
</template>
<script setup lang="ts">
import { onMounted, ref, onBeforeUnmount, reactive } from 'vue';
import { onMounted, ref, onBeforeUnmount, reactive, watch } from 'vue';
import {
SelectComponent,
AirportInformation,
@ -116,13 +116,23 @@
longitude: null,
});
const uavTrack = ref({});
const connected = ref(false)
const connectCallback = () => {
connected.value = true
}
onMounted(() => {
destroyConnection();
createConnection();
setTimeout(() => {
changeSelect();
}, 1000);
createConnection(connectCallback);
// setTimeout(() => {
// changeSelect();
// }, 1000);
});
watch(() => connected.value, (value) => {
if(value){
console.log('start')
changeSelect()
}
})
onBeforeUnmount(() => {
destroyConnection();
});

@ -206,7 +206,7 @@
</template>
<script setup lang="ts">
import { ref, defineProps, defineEmits, onMounted, watch } from "vue"
import { ref, defineProps, defineEmits, onMounted, watch, onBeforeUnmount } from "vue"
import { CaretDownOutlined } from '@ant-design/icons-vue'
import { getAccountList } from '@/api/demo/system';
import { AddWorkspace, EditWorkspace } from '@/api/demo/projecthome'
@ -228,6 +228,7 @@ const props = defineProps(['addModal', 'modalType','map', 'updateProject'])
const emits = defineEmits(['update:addModal', 'getProjectList'])
let graphicLayer
let clickHandler
watch(() => props.map, (val) => {
if (val) {
initGraphicLayer(val)
@ -341,9 +342,16 @@ onMounted(() => {
deviceList.value = res
})
})
const closeAddModal = () => {
emits('update:addModal',false)
if(graphicLayer){
graphicLayer.clear()
}
props.map.container.style.cursor = "default"
if (clickHandler) {
props.map.off('click', clickHandler)
clickHandler = null
}
}
const closeChildSetting = () => {
childSetting.value.open = false
@ -388,7 +396,7 @@ const openChildSetting = (type) => {
const getLocationCenter = () => {
const container = props.map.container
container.style.cursor = "crosshair"
props.map.on('click', (event) => {
clickHandler = (event) => {
const cartesian = event.cartesian
if (!cartesian) return
const cartographic = Cesium.Cartographic.fromCartesian(cartesian)
@ -419,7 +427,8 @@ const getLocationCenter = () => {
})
graphicLayer.clear()
graphicLayer.addGraphic(pointGraphic)
})
}
props.map.on('click', clickHandler)
}
const searchUser = (key: string) => {
getAccountList({page:1,limit:999,key,}).then(res => {
@ -475,6 +484,14 @@ const saveProject = () => {
emits('getProjectList')
})
}
if(graphicLayer){
graphicLayer.clear()
}
props.map.container.style.cursor = "default"
if (clickHandler) {
props.map.off('click', clickHandler)
clickHandler = null
}
}
</script>

@ -1,7 +1,7 @@
<template>
<div class="home-page">
<div style="width: 100%;height: calc(100vh - 80px);">
<Map :airRoute="airRoute" @mapOnLoad="mapOnLoad" :airPort="airPort" @clickAirPort="clickAirPort"/>
<Map :airRoute="airRoute" @mapOnLoad="mapOnLoad" :homeAirport="airPort" @clickAirPort="clickAirPort"/>
</div>
<div ref="leftComponentRef" style="position: absolute;top: 0px;left: 0px;">
<!-- 项目列表 -->

@ -52,6 +52,7 @@
'workPlanFormShow',
'airPort',
'uavTrack',
'homeAirport'
]);
watch(
() => props.uavTrack,
@ -67,6 +68,13 @@
},
{ deep: true },
);
watch(
() => props.homeAirport,
(val) => {
homeSetAirportPosition();
},
{ deep: true },
);
watch(
() => props.workPlanFormShow,
(newVal, oldVal) => {
@ -199,8 +207,8 @@ const generatePreviewPoint = (placemark)=>{
// 线
let lineGroundPointLayer: mars3d.layer.GraphicLayer;
//
let startGraphic;
//
let homeStartGraphic;
let graphic = null;
@ -1557,8 +1565,7 @@ const loadChangGuangLayer = ()=>{
// //
let position = [props.airPort.longitude, props.airPort.latitude, 70];
//
if (startGraphic) {
startGraphic.position = position
if (point) {
// point.setOptions({
// id: 'set-airport',
// name: '',
@ -1581,7 +1588,7 @@ const loadChangGuangLayer = ()=>{
// },
// });
} else {
startGraphic = new mars3d.graphic.BillboardEntity({
let startGraphic = new mars3d.graphic.BillboardEntity({
id: 'set-airport',
position: position,
style: {
@ -1601,13 +1608,47 @@ const loadChangGuangLayer = ()=>{
},
},
});
startGraphic.on(mars3d.EventType.click, function (event) {
emits('clickAirPort')
});
graphicLayer.addGraphic(startGraphic);
}
}
};
//
const homeSetAirportPosition = () => {
if(!graphicLayer){
return
}
// //
let position = [props.homeAirport.longitude, props.homeAirport.latitude, 70];
//
if (homeStartGraphic) {
homeStartGraphic.position = position
} else {
homeStartGraphic = new mars3d.graphic.BillboardEntity({
id: 'set-home-airport',
position: position,
style: {
image: '/projecthome/airport.png',
width: 35,
height: 59,
scale: 1,
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
label: {
text: '机场',
font_size: 14,
color: '#ffffff',
outline: true,
outlineColor: '#000000',
pixelOffsetY: -70,
},
},
});
homeStartGraphic.on(mars3d.EventType.click, function (event) {
emits('clickAirPort')
});
graphicLayer.addGraphic(homeStartGraphic);
}
}
//
const setUAVPosition = () => {
let point = graphicLayer.getGraphicById('set-uav');

@ -0,0 +1,69 @@
// vite.config.ts
import { defineApplicationConfig } from "file:///E:/%E4%BD%8E%E7%A9%BA%E6%80%81%E5%8A%BF%E6%84%9F%E7%9F%A5/DiKongGanZhiPingTai/internal/vite-config/dist/index.mjs";
import { mars3dPlugin } from "file:///E:/%E4%BD%8E%E7%A9%BA%E6%80%81%E5%8A%BF%E6%84%9F%E7%9F%A5/DiKongGanZhiPingTai/node_modules/.pnpm/vite-plugin-mars3d@3.1.3_rollup@2.79.2/node_modules/vite-plugin-mars3d/dist/index.js";
var vite_config_default = defineApplicationConfig({
overrides: {
optimizeDeps: {
include: [
"echarts/core",
"echarts/charts",
"echarts/components",
"echarts/renderers",
"qrcode",
"@iconify/iconify",
"ant-design-vue/es/locale/zh_CN",
"ant-design-vue/es/locale/en_US",
"@/../lib/vform/designer.umd.js"
]
},
build: {
/* 其他build生产打包配置省略 */
//...
target: "esnext",
commonjsOptions: {
include: /node_modules|lib/
//这里记得把lib目录加进来否则生产打包会报错
}
},
server: {
proxy: {
"/basic-api": {
target: "http://localhost:3000",
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^/basic-api`), "")
// only https
// secure: false
},
"/upload": {
target: "http://localhost:3300/upload",
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^/upload`), "")
}
},
warmup: {
clientFiles: ["./index.html", "./src/{views,components}/*"]
}
},
define: {
"process.env": {
BASE_URL: "/"
}
},
css: {
preprocessorOptions: {
less: {
javascriptEnabled: true
}
}
},
plugins: [
mars3dPlugin()
]
}
});
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxcdTRGNEVcdTdBN0FcdTYwMDFcdTUyQkZcdTYxMUZcdTc3RTVcXFxcRGlLb25nR2FuWmhpUGluZ1RhaVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcXHU0RjRFXHU3QTdBXHU2MDAxXHU1MkJGXHU2MTFGXHU3N0U1XFxcXERpS29uZ0dhblpoaVBpbmdUYWlcXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6LyVFNCVCRCU4RSVFNyVBOSVCQSVFNiU4MCU4MSVFNSU4QSVCRiVFNiU4NCU5RiVFNyU5RiVBNS9EaUtvbmdHYW5aaGlQaW5nVGFpL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQXBwbGljYXRpb25Db25maWcgfSBmcm9tICdAdmJlbi92aXRlLWNvbmZpZyc7XG5pbXBvcnQgeyBtYXJzM2RQbHVnaW4gfSBmcm9tIFwidml0ZS1wbHVnaW4tbWFyczNkXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQXBwbGljYXRpb25Db25maWcoe1xuICBvdmVycmlkZXM6IHtcbiAgICBvcHRpbWl6ZURlcHM6IHtcbiAgICAgIGluY2x1ZGU6IFtcbiAgICAgICAgJ2VjaGFydHMvY29yZScsXG4gICAgICAgICdlY2hhcnRzL2NoYXJ0cycsXG4gICAgICAgICdlY2hhcnRzL2NvbXBvbmVudHMnLFxuICAgICAgICAnZWNoYXJ0cy9yZW5kZXJlcnMnLFxuICAgICAgICAncXJjb2RlJyxcbiAgICAgICAgJ0BpY29uaWZ5L2ljb25pZnknLFxuICAgICAgICAnYW50LWRlc2lnbi12dWUvZXMvbG9jYWxlL3poX0NOJyxcbiAgICAgICAgJ2FudC1kZXNpZ24tdnVlL2VzL2xvY2FsZS9lbl9VUycsXG4gICAgICAgICdALy4uL2xpYi92Zm9ybS9kZXNpZ25lci51bWQuanMnLFxuICAgICAgXSxcbiAgICB9LFxuICAgIGJ1aWxkOiB7XG4gICAgICAvKiBcdTUxNzZcdTRFRDZidWlsZFx1NzUxRlx1NEVBN1x1NjI1M1x1NTMwNVx1OTE0RFx1N0Y2RVx1NzcwMVx1NzU2NSAqL1xuICAgICAgLy8uLi5cbiAgICAgIHRhcmdldDogJ2VzbmV4dCcsXG4gICAgICBjb21tb25qc09wdGlvbnM6IHtcbiAgICAgICAgaW5jbHVkZTogL25vZGVfbW9kdWxlc3xsaWIvLCAvL1x1OEZEOVx1OTFDQ1x1OEJCMFx1NUY5N1x1NjI4QWxpYlx1NzZFRVx1NUY1NVx1NTJBMFx1OEZEQlx1Njc2NVx1RkYwQ1x1NTQyNlx1NTIxOVx1NzUxRlx1NEVBN1x1NjI1M1x1NTMwNVx1NEYxQVx1NjJBNVx1OTUxOVx1RkYwMVx1RkYwMVxuICAgICAgfSxcbiAgICB9LFxuICAgIHNlcnZlcjoge1xuICAgICAgcHJveHk6IHtcbiAgICAgICAgJy9iYXNpYy1hcGknOiB7XG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgd3M6IHRydWUsXG4gICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeL2Jhc2ljLWFwaWApLCAnJyksXG4gICAgICAgICAgLy8gb25seSBodHRwc1xuICAgICAgICAgIC8vIHNlY3VyZTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgJy91cGxvYWQnOiB7XG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovL2xvY2FsaG9zdDozMzAwL3VwbG9hZCcsXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAgIHdzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgXi91cGxvYWRgKSwgJycpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHdhcm11cDoge1xuICAgICAgICBjbGllbnRGaWxlczogWycuL2luZGV4Lmh0bWwnLCAnLi9zcmMve3ZpZXdzLGNvbXBvbmVudHN9LyonXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZpbmU6IHtcbiAgICAgICdwcm9jZXNzLmVudic6IHtcbiAgICAgICAgQkFTRV9VUkw6ICcvJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjc3M6IHtcbiAgICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgICAgbGVzczoge1xuICAgICAgICAgIGphdmFzY3JpcHRFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIG1hcnMzZFBsdWdpbigpXG4gICAgXSxcbiAgfSxcbn0pO1xuXG5cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBK1QsU0FBUywrQkFBK0I7QUFDdlcsU0FBUyxvQkFBb0I7QUFFN0IsSUFBTyxzQkFBUSx3QkFBd0I7QUFBQSxFQUNyQyxXQUFXO0FBQUEsSUFDVCxjQUFjO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLE9BQU87QUFBQTtBQUFBO0FBQUEsTUFHTCxRQUFRO0FBQUEsTUFDUixpQkFBaUI7QUFBQSxRQUNmLFNBQVM7QUFBQTtBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTixPQUFPO0FBQUEsUUFDTCxjQUFjO0FBQUEsVUFDWixRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxJQUFJO0FBQUEsVUFDSixTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxPQUFPLGFBQWEsR0FBRyxFQUFFO0FBQUE7QUFBQTtBQUFBLFFBRy9EO0FBQUEsUUFDQSxXQUFXO0FBQUEsVUFDVCxRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxJQUFJO0FBQUEsVUFDSixTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxPQUFPLFVBQVUsR0FBRyxFQUFFO0FBQUEsUUFDNUQ7QUFBQSxNQUNGO0FBQUEsTUFDQSxRQUFRO0FBQUEsUUFDTixhQUFhLENBQUMsZ0JBQWdCLDRCQUE0QjtBQUFBLE1BQzVEO0FBQUEsSUFDRjtBQUFBLElBQ0EsUUFBUTtBQUFBLE1BQ04sZUFBZTtBQUFBLFFBQ2IsVUFBVTtBQUFBLE1BQ1o7QUFBQSxJQUNGO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxxQkFBcUI7QUFBQSxRQUNuQixNQUFNO0FBQUEsVUFDSixtQkFBbUI7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFDUCxhQUFhO0FBQUEsSUFDZjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=
Loading…
Cancel
Save