From b0ccd2d131b2e3df5d901385e38ed0077b8d0fbc Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Mon, 14 Apr 2025 12:31:31 +0800
Subject: [PATCH] feat:修改任务管理内容
---
src/views/SignMachineNest/SignMachineNest.vue | 96 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 93 insertions(+), 3 deletions(-)
diff --git a/src/views/SignMachineNest/SignMachineNest.vue b/src/views/SignMachineNest/SignMachineNest.vue
index 2ff56b8..c2d013d 100644
--- a/src/views/SignMachineNest/SignMachineNest.vue
+++ b/src/views/SignMachineNest/SignMachineNest.vue
@@ -4,6 +4,96 @@
</template>
<script setup>
-import MachineLeft from './components/MachineLeft/MachineLeft.vue'
-import MachineRight from './components/MachineRight/MachineRight.vue';
-</script>
\ No newline at end of file
+import MachineLeft from '@/views/SignMachineNest/MachineLeft/MachineLeft.vue'
+import MachineRight from '@/views/SignMachineNest/MachineRight/MachineRight.vue';
+import { useConnectWebSocket } from '../../utils/websocket/connect-websocket';
+import { getWebsocketUrl } from '@/websocket/util/config';
+import { EBizCode } from '@/utils/staticData/enums.js';
+import { EModeCode } from '@/utils/staticData/device.js';
+import { useStore } from 'vuex';
+import { getDeviceDetail, getFlightStatistics } from '@/api/home/machineNest';
+
+
+const store = useStore();
+let connectWs = ref(null);
+// 单个机巢信息
+const singleUavHome = computed(() => store.state.home.singleUavHome);
+
+let osdVisible = ref({});
+
+let workspaceId = ref('');
+// 进入单个机巢开始连接ws
+const createWsConntect = () => {
+ let webSorketUrl = getWebsocketUrl() + '&workspace-id=' + workspaceId.value;
+ // 监听ws 消息
+ connectWs.value = useConnectWebSocket(messageHandler, webSorketUrl);
+};
+
+const messageHandler = (result) => {
+ let payload = JSON.parse(result) // 为了兼容聊天消息
+ if (!payload) return
+ switch (payload.biz_code) {
+ case EBizCode.GatewayOsd: {
+ store.commit('setGatewayInfo', payload.data)
+ break
+ }
+ case EBizCode.DeviceOsd: {
+ store.commit('setDeviceInfo', payload)
+ store.commit('setWsMessage', payload)
+ break
+ }
+ case EBizCode.DockOsd: {
+ store.commit('setDockOnfo', payload.data)
+ break
+ }
+ default:
+ break
+ }
+};
+
+// 获取单个机巢信息
+const getSingleDetails = () => {
+ getDeviceDetail(singleUavHome.value.device_sn).then((res) => {
+ if (res.data.code !== 0) return;
+ const result = res.data.data;
+ const child = result.children;
+ // 对应store 里面数据结构
+ osdVisible.value.sn = child?.device_sn || ''
+ osdVisible.value.callsign = child?.nickname || '--'
+ osdVisible.value.model = EModeCode.Disconnected || ''
+ osdVisible.value.visible = true
+ osdVisible.value.gateway_sn = result?.device_sn || ''
+ osdVisible.value.is_dock = true
+ osdVisible.value.gateway_callsign = result?.callsign || '--'
+ osdVisible.value.payloads = child?.payloads_list || []
+ osdVisible.value.device_domain = child.domain || 0
+ osdVisible.value.device_sub_type = child.sub_type || 1
+ osdVisible.value.device_type = child.type || 0
+ // osdVisible.value.latest_wayline_job = result?.latest_wayline_job || {}
+ store.commit('setOsdVisibleInfo', osdVisible.value);
+ store.commit('setSelectedWorkSpaceId', result.workspace_id);
+ workspaceId.value = result.workspace_id;
+ createWsConntect();
+ });
+};
+
+// 获取机巢统计数据 提供给左右侧组件使用
+const getMachineData = () => {
+ getFlightStatistics(singleUavHome.value.device_sn).then(res => {
+ if (res.data.code !== 0) return;
+ const result = res.data.data;
+ console.log(result);
+ console.log(result);
+ store.commit('setSingleTotal', result);
+ })
+};
+
+onMounted(() => {
+ getSingleDetails();
+ getMachineData();
+});
+
+onUnmounted(() => {
+ connectWs?.value?.close();
+});
+</script>
--
Gitblit v1.9.3