| | |
| | | <div class="project-app-wrapper"> |
| | | <div class="left"> |
| | | <Sidebar /> |
| | | <div class="main-content uranus-scrollbar dark"> |
| | | <div class="main-content uranus-scrollbar dark" v-if="!isHidden"> |
| | | <router-view /> |
| | | </div> |
| | | </div> |
| | | <div class="right"> |
| | | <div class="map-wrapper"> |
| | | <GMap /> |
| | | </div> |
| | | <div class="media-wrapper" v-if="root.$route.name === ERouterName.MEDIA"> |
| | | <MediaPanel /> |
| | | </div> |
| | | <div class="task-wrapper" v-if="root.$route.name === ERouterName.TASK"> |
| | | <TaskPanel /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import Sidebar from '/@/components/common/sidebar.vue' |
| | | import MediaPanel from '/@/components/MediaPanel.vue' |
| | | import TaskPanel from '/@/components/task/TaskPanel.vue' |
| | | import GMap from '/@/components/GMap.vue' |
| | | import { EBizCode, ERouterName } from '/@/types' |
| | | import { EBizCode, ELocalStorageKey, ERouterName } from '/@/types' |
| | | import { getRoot } from '/@/root' |
| | | import { useMyStore } from '/@/store' |
| | | import { useConnectWebSocket } from '/@/hooks/use-connect-websocket' |
| | | import { getWebsocketUrl } from '/@/websocket/util/config' |
| | | |
| | | import EventBus from '/@/event-bus' |
| | | |
| | | const root = getRoot() |
| | | const store = useMyStore() |
| | | |
| | | const workspace_id = computed(() => store.state.common.projectId || localStorage.getItem(ELocalStorageKey.WorkspaceId)) |
| | | const messageHandler = async (payload: any) => { |
| | | if (!payload) { |
| | | return |
| | |
| | | break |
| | | } |
| | | case EBizCode.DockOsd: { |
| | | // if (payload.data.sn === workspace_id.value) { |
| | | store.commit('SET_DOCK_INFO', payload.data) |
| | | // console.log(payload.data, 'data') |
| | | // } |
| | | break |
| | | } |
| | | case EBizCode.MapElementCreate: { |
| | |
| | | }) |
| | | break |
| | | } |
| | | case EBizCode.ControlSourceChange: |
| | | case EBizCode.FlyToPointProgress: |
| | | case EBizCode.TakeoffToPointProgress: |
| | | case EBizCode.JoystickInvalidNotify: |
| | | case EBizCode.DrcStatusNotify: |
| | | { |
| | | EventBus.emit('droneControlWs', payload) |
| | | break |
| | | } |
| | | default: |
| | | break |
| | | } |
| | | } |
| | | |
| | | const route = useRoute() |
| | | const isHidden = computed(() => { |
| | | const flag = !!route.meta?.hidden |
| | | return flag |
| | | }) |
| | | const webSorketUrl = getWebsocketUrl() + '&workspace-id=' + workspace_id.value |
| | | // 监听ws 消息 |
| | | useConnectWebSocket(messageHandler) |
| | | useConnectWebSocket(messageHandler, webSorketUrl) |
| | | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | |
| | | .left { |
| | | display: flex; |
| | | width: 335px; |
| | | flex: 0 0 335px; |
| | | // width: 335px; |
| | | flex: 1; |
| | | // flex: 0 0 335px; |
| | | background-color: #232323; |
| | | |
| | | .main-content { |
| | | flex: 1; |
| | | color: $text-white-basic; |
| | | color: $text-white-basic !important; |
| | | width: 285px; |
| | | } |
| | | } |
| | | |
| | |
| | | flex-grow: 1; |
| | | position: relative; |
| | | |
| | | .map-wrapper{ |
| | | .map-wrapper { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |