workspace.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <template>
  2. <div class="project-app-wrapper">
  3. <div class="left">
  4. <!-- <Sidebar /> -->
  5. <div class="main-content uranus-scrollbar dark">
  6. <Tsa />
  7. </div>
  8. </div>
  9. <div class="right">
  10. <div class="map-wrapper">
  11. <GMap />
  12. </div>
  13. <div class="media-wrapper" v-if="root.$route.name === ERouterName.MEDIA">
  14. <MediaPanel />
  15. </div>
  16. <div class="task-wrapper" v-if="root.$route.name === ERouterName.TASK">
  17. <TaskPanel />
  18. </div>
  19. </div>
  20. </div>
  21. </template>
  22. <script lang="ts" setup>
  23. import Sidebar from '/@/components/common/sidebar.vue'
  24. import Tsa from '/@/pages/page-web/projects/tsa.vue'
  25. import MediaPanel from '/@/components/MediaPanel.vue'
  26. import TaskPanel from '/@/components/task/TaskPanel.vue'
  27. import GMap from '/@/components/GMap.vue'
  28. import { EBizCode, ERouterName } from '/@/types'
  29. import { getRoot } from '/@/root'
  30. import { useMyStore } from '/@/store'
  31. import { useConnectWebSocket } from '/@/hooks/use-connect-websocket'
  32. import EventBus from '/@/event-bus'
  33. const root = getRoot()
  34. const store = useMyStore()
  35. const messageHandler = async (payload: any) => {
  36. if (!payload) {
  37. return
  38. }
  39. switch (payload.biz_code) {
  40. case EBizCode.GatewayOsd: {
  41. store.commit('SET_GATEWAY_INFO', payload.data)
  42. break
  43. }
  44. case EBizCode.DeviceOsd: {
  45. store.commit('SET_DEVICE_INFO', payload.data)
  46. break
  47. }
  48. case EBizCode.DockOsd: {
  49. store.commit('SET_DOCK_INFO', payload.data)
  50. break
  51. }
  52. case EBizCode.MapElementCreate: {
  53. store.commit('SET_MAP_ELEMENT_CREATE', payload.data)
  54. break
  55. }
  56. case EBizCode.MapElementUpdate: {
  57. store.commit('SET_MAP_ELEMENT_UPDATE', payload.data)
  58. break
  59. }
  60. case EBizCode.MapElementDelete: {
  61. store.commit('SET_MAP_ELEMENT_DELETE', payload.data)
  62. break
  63. }
  64. case EBizCode.DeviceOnline: {
  65. store.commit('SET_DEVICE_ONLINE', payload.data)
  66. break
  67. }
  68. case EBizCode.DeviceOffline: {
  69. store.commit('SET_DEVICE_OFFLINE', payload.data)
  70. break
  71. }
  72. case EBizCode.FlightTaskProgress:
  73. case EBizCode.FlightTaskMediaProgress:
  74. case EBizCode.FlightTaskMediaHighestPriority: {
  75. EventBus.emit('flightTaskWs', payload)
  76. break
  77. }
  78. case EBizCode.DeviceHms: {
  79. store.commit('SET_DEVICE_HMS_INFO', payload.data)
  80. break
  81. }
  82. case EBizCode.DeviceReboot:
  83. case EBizCode.DroneOpen:
  84. case EBizCode.DroneClose:
  85. case EBizCode.CoverOpen:
  86. case EBizCode.CoverClose:
  87. case EBizCode.PutterOpen:
  88. case EBizCode.PutterClose:
  89. case EBizCode.ChargeOpen:
  90. case EBizCode.ChargeClose:
  91. case EBizCode.DeviceFormat:
  92. case EBizCode.DroneFormat:
  93. {
  94. store.commit('SET_DEVICES_CMD_EXECUTE_INFO', {
  95. biz_code: payload.biz_code,
  96. timestamp: payload.timestamp,
  97. ...payload.data,
  98. })
  99. break
  100. }
  101. case EBizCode.ControlSourceChange:
  102. case EBizCode.FlyToPointProgress:
  103. case EBizCode.TakeoffToPointProgress:
  104. case EBizCode.JoystickInvalidNotify:
  105. case EBizCode.DrcStatusNotify:
  106. {
  107. EventBus.emit('droneControlWs', payload)
  108. break
  109. }
  110. case EBizCode.FlightAreasSyncProgress: {
  111. EventBus.emit('flightAreasSyncProgressWs', payload.data)
  112. break
  113. }
  114. case EBizCode.FlightAreasDroneLocation: {
  115. EventBus.emit('flightAreasDroneLocationWs', payload)
  116. break
  117. }
  118. case EBizCode.FlightAreasUpdate: {
  119. EventBus.emit('flightAreasUpdateWs', payload.data)
  120. break
  121. }
  122. default:
  123. break
  124. }
  125. }
  126. // 监听ws 消息
  127. useConnectWebSocket(messageHandler)
  128. </script>
  129. <style lang="scss" scoped>
  130. @import '/@/styles/index.scss';
  131. ::-webkit-scrollbar {
  132. width: 8px;
  133. height: 8px;
  134. background: transparent;
  135. }
  136. ::-webkit-scrollbar-thumb {
  137. border-radius: 4px;
  138. border: none;
  139. background: rgb(89, 89, 89);
  140. }
  141. .project-app-wrapper {
  142. display: flex;
  143. transition: width 0.2s ease;
  144. height: 100%;
  145. width: 100%;
  146. .left {
  147. display: flex;
  148. width: 335px;
  149. flex: 0 0 335px;
  150. background-color: #232323;
  151. .main-content {
  152. flex: 1;
  153. color: $text-white-basic;
  154. width: 285px;
  155. }
  156. }
  157. .right {
  158. flex-grow: 1;
  159. position: relative;
  160. .map-wrapper {
  161. width: 100%;
  162. height: 100%;
  163. }
  164. .media-wrapper,
  165. .task-wrapper {
  166. position: absolute;
  167. top: 0;
  168. bottom: 0;
  169. left: 0;
  170. right: 0;
  171. z-index: 100;
  172. background: #f6f8fa;
  173. }
  174. }
  175. }
  176. </style>