workspace.vue 4.2 KB

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