Browse Source

Fix the issue that the data is not displayed when the map is not loaded.

v1.3.1
sean.zhou 2 years ago
parent
commit
b09ed762ed
  1. 27
      src/components/GMap.vue
  2. 8
      src/hooks/use-g-map-tsa.ts
  3. 2
      src/hooks/use-g-map.ts
  4. 2
      src/pages/page-web/projects/tsa.vue

27
src/components/GMap.vue

@ -474,7 +474,7 @@ export default defineComponent({
setup () { setup () {
const useMouseToolHook = useMouseTool() const useMouseToolHook = useMouseTool()
const useGMapManageHook = useGMapManage() const useGMapManageHook = useGMapManage()
const deviceTsaUpdateHook = ref() const deviceTsaUpdateHook = deviceTsaUpdate()
const root = getRoot() const root = getRoot()
const mouseMode = ref(false) const mouseMode = ref(false)
@ -532,16 +532,12 @@ export default defineComponent({
watch(() => store.state.deviceStatusEvent, watch(() => store.state.deviceStatusEvent,
data => { data => {
if (root.$map === undefined) {
return
}
deviceTsaUpdateHook.value = deviceTsaUpdate()
if (Object.keys(data.deviceOnline).length !== 0) { if (Object.keys(data.deviceOnline).length !== 0) {
deviceTsaUpdateHook.value.initMarker(data.deviceOnline.domain, data.deviceOnline.device_callsign, data.deviceOnline.sn) deviceTsaUpdateHook.initMarker(data.deviceOnline.domain, data.deviceOnline.device_callsign, data.deviceOnline.sn)
store.state.deviceStatusEvent.deviceOnline = {} as DeviceStatus store.state.deviceStatusEvent.deviceOnline = {} as DeviceStatus
} }
if (Object.keys(data.deviceOffline).length !== 0) { if (Object.keys(data.deviceOffline).length !== 0) {
deviceTsaUpdateHook.value.removeMarker(data.deviceOffline.sn) deviceTsaUpdateHook.removeMarker(data.deviceOffline.sn)
if ((data.deviceOffline.sn === osdVisible.value.sn) || (osdVisible.value.is_dock && data.deviceOffline.sn === osdVisible.value.gateway_sn)) { if ((data.deviceOffline.sn === osdVisible.value.sn) || (osdVisible.value.is_dock && data.deviceOffline.sn === osdVisible.value.gateway_sn)) {
osdVisible.value.visible = false osdVisible.value.visible = false
store.commit('SET_OSD_VISIBLE_INFO', osdVisible) store.commit('SET_OSD_VISIBLE_INFO', osdVisible)
@ -555,29 +551,23 @@ export default defineComponent({
) )
watch(() => store.state.deviceState, data => { watch(() => store.state.deviceState, data => {
if (root.$aMap === undefined) {
return
}
if (!deviceTsaUpdateHook.value) {
deviceTsaUpdateHook.value = deviceTsaUpdate()
}
if (data.currentType === EDeviceTypeName.Gateway && data.gatewayInfo[data.currentSn]) { if (data.currentType === EDeviceTypeName.Gateway && data.gatewayInfo[data.currentSn]) {
deviceTsaUpdateHook.value.moveTo(data.currentSn, data.gatewayInfo[data.currentSn].longitude, data.gatewayInfo[data.currentSn].latitude) deviceTsaUpdateHook.moveTo(data.currentSn, data.gatewayInfo[data.currentSn].longitude, data.gatewayInfo[data.currentSn].latitude)
if (osdVisible.value.visible && osdVisible.value.gateway_sn !== '') { if (osdVisible.value.visible && osdVisible.value.gateway_sn !== '') {
deviceInfo.gateway = data.gatewayInfo[osdVisible.value.gateway_sn] deviceInfo.gateway = data.gatewayInfo[osdVisible.value.gateway_sn]
} }
} }
if (data.currentType === EDeviceTypeName.Aircraft && data.deviceInfo[data.currentSn]) { if (data.currentType === EDeviceTypeName.Aircraft && data.deviceInfo[data.currentSn]) {
deviceTsaUpdateHook.value.moveTo(data.currentSn, data.deviceInfo[data.currentSn].longitude, data.deviceInfo[data.currentSn].latitude) deviceTsaUpdateHook.moveTo(data.currentSn, data.deviceInfo[data.currentSn].longitude, data.deviceInfo[data.currentSn].latitude)
if (osdVisible.value.visible && osdVisible.value.sn !== '') { if (osdVisible.value.visible && osdVisible.value.sn !== '') {
deviceInfo.device = data.deviceInfo[osdVisible.value.sn] deviceInfo.device = data.deviceInfo[osdVisible.value.sn]
} }
} }
if (data.currentType === EDeviceTypeName.Dock && data.dockInfo[data.currentSn]) { if (data.currentType === EDeviceTypeName.Dock && data.dockInfo[data.currentSn]) {
deviceTsaUpdateHook.value.initMarker(EDeviceTypeName.Dock, [EDeviceTypeName.Dock], data.currentSn, data.dockInfo[data.currentSn].basic_osd?.longitude, data.dockInfo[data.currentSn].basic_osd?.latitude) deviceTsaUpdateHook.initMarker(EDeviceTypeName.Dock, [EDeviceTypeName.Dock], data.currentSn, data.dockInfo[data.currentSn].basic_osd?.longitude, data.dockInfo[data.currentSn].basic_osd?.latitude)
if (osdVisible.value.visible && osdVisible.value.is_dock && osdVisible.value.gateway_sn !== '') { if (osdVisible.value.visible && osdVisible.value.is_dock && osdVisible.value.gateway_sn !== '') {
deviceInfo.dock = data.dockInfo[osdVisible.value.gateway_sn] deviceInfo.dock = data.dockInfo[osdVisible.value.gateway_sn]
deviceInfo.device = data.deviceInfo[deviceInfo.dock.basic_osd.sub_device?.device_sn ?? osdVisible.value.sn] deviceInfo.device = data.deviceInfo[deviceInfo.dock.basic_osd?.sub_device?.device_sn ?? osdVisible.value.sn]
} }
} }
}, { }, {
@ -655,6 +645,9 @@ export default defineComponent({
onMounted(() => { onMounted(() => {
const app = getApp() const app = getApp()
useGMapManageHook.globalPropertiesConfig(app) useGMapManageHook.globalPropertiesConfig(app)
setInterval(() => {
console.info(deviceInfo.dock)
}, 1000)
}) })
function getDrawCallback ({ obj }) { function getDrawCallback ({ obj }) {
switch (state.currentType) { switch (state.currentType) {

8
src/hooks/use-g-map-tsa.ts

@ -10,7 +10,7 @@ import { EDeviceTypeName } from '/@/types'
export function deviceTsaUpdate () { export function deviceTsaUpdate () {
const root = getRoot() const root = getRoot()
const AMap = root.$aMap let AMap = root.$aMap
const icons = new Map([ const icons = new Map([
[EDeviceTypeName.Aircraft, droneIcon], [EDeviceTypeName.Aircraft, droneIcon],
@ -43,8 +43,12 @@ export function deviceTsaUpdate () {
if (markers[sn]) { if (markers[sn]) {
return return
} }
if (root.$aMap === undefined) {
return
}
AMap = root.$aMap
markers[sn] = new AMap.Marker({ markers[sn] = new AMap.Marker({
position: new AMap.LngLat(lng || 113.935913, lat || 22.525335), position: new AMap.LngLat(lng || 113.943225499, lat || 22.577673716),
icon: initIcon(type), icon: initIcon(type),
title: name, title: name,
anchor: 'top-center', anchor: 'top-center',

2
src/hooks/use-g-map.ts

@ -15,7 +15,7 @@ export function useGMapManage () {
}).then((AMap) => { }).then((AMap) => {
state.aMap = AMap state.aMap = AMap
state.map = new AMap.Map(container, { state.map = new AMap.Map(container, {
center: [113.935913, 22.525335], center: [113.943225499, 22.577673716],
zoom: 15 zoom: 15
}) })
state.mouseTool = new AMap.MouseTool(state.map) state.mouseTool = new AMap.MouseTool(state.map)

2
src/pages/page-web/projects/tsa.vue

@ -259,7 +259,7 @@ onMounted(() => {
}, 3000) }, 3000)
const element = document.getElementsByClassName('scrollbar').item(0) as HTMLDivElement const element = document.getElementsByClassName('scrollbar').item(0) as HTMLDivElement
const parent = element?.parentNode as HTMLDivElement const parent = element?.parentNode as HTMLDivElement
scorllHeight.value = parent?.clientHeight - parent.firstElementChild!.clientHeight scorllHeight.value = parent?.clientHeight - parent?.firstElementChild?.clientHeight
}) })
function getOnlineTopo () { function getOnlineTopo () {

Loading…
Cancel
Save