From 3667807a7b7418efc090ee3fa6a6b734bc3080bf Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Wed, 13 Sep 2023 20:36:29 +0800
Subject: [PATCH] Merge branch 'develop' of http://s16s652780.51mypc.cn:49896/r/yskj/iot_drone_web into develop
---
src/pages/page-pilot/pilot-home.vue | 60 ++++++++++++++++++++++++++++++++----------------------------
1 files changed, 32 insertions(+), 28 deletions(-)
diff --git a/src/pages/page-pilot/pilot-home.vue b/src/pages/page-pilot/pilot-home.vue
index 42416fb..0b86139 100644
--- a/src/pages/page-pilot/pilot-home.vue
+++ b/src/pages/page-pilot/pilot-home.vue
@@ -67,7 +67,7 @@
<span style="color: #737373">{{ device.data.gateway_sn }}</span>
</a-col>
</a-row>
- <a-row style="border-bottom: 1px solid #f4f8f9; height: 45px;" align="middle" v-if="device.data.online_status">
+ <a-row style="border-bottom: 1px solid #f4f8f9; height: 45px;" align="middle" v-if="device.data.online_status && device.data.sn">
<a-col :span="1"></a-col>
<a-col :span="9">Aircraft Sn</a-col>
<a-col :span="13" class="flex-align-end flex-column" >
@@ -79,7 +79,7 @@
<span class="ml5" style="color: #939393;">Settings</span>
</div>
<div class="fz16" style="background-color: white; border-radius: 4px;">
- <a-row v-if="device.data.online_status" style="border-bottom: 1px solid #f4f8f9; height: 45px;" align="middle" @click="bindingDevice">
+ <a-row v-if="device.data.online_status && device.data.sn" style="border-bottom: 1px solid #f4f8f9; height: 45px;" align="middle" @click="bindingDevice">
<a-col :span="1"></a-col>
<a-col :span="11">
Device Binding
@@ -130,9 +130,8 @@
import cloudapi from '/@/assets/icons/cloudapi.png'
import { RightOutlined, CloudOutlined, CloudSyncOutlined, SyncOutlined } from '@ant-design/icons-vue'
import { useMyStore } from '/@/store'
-import ReconnectingWebSocket from 'reconnecting-websocket'
-import websocket from '/@/api/websocket'
import { DeviceStatus } from '/@/types/device'
+import { useConnectWebSocket } from '/@/hooks/use-connect-websocket'
const root = getRoot()
const gatewayState = ref<boolean>(localStorage.getItem(ELocalStorageKey.GatewayOnline) === 'true')
@@ -151,7 +150,7 @@
const components = apiPilot.init()
const exitVisible = ref(false)
const drawerVisible = ref(false)
-let minitor = -1
+let minitor: any
interface DeviceInfoData {
data: DeviceStatus
@@ -166,7 +165,7 @@
bound_status: false,
model: '',
gateway_sn: EStatusValue.DISCONNECT,
- domain: ''
+ domain: -1
}
})
const bindParam: BindBody = {
@@ -211,8 +210,10 @@
const store = useMyStore()
-const wsGetMsg = async (res: any) => {
- const payload = JSON.parse(res.data)
+const messageHandler = async (payload: any) => {
+ if (!payload) {
+ return
+ }
switch (payload.biz_code) {
case EBizCode.DeviceOnline: {
console.info('online: ', payload)
@@ -241,26 +242,34 @@
break
}
}
-let bindNum: number
-let socket: ReconnectingWebSocket
+
+// 监听ws 消息
+useConnectWebSocket(messageHandler)
+
+let bindNum: any
onMounted(() => {
apiPilot.onBackClickReg()
apiPilot.onStopPlatform()
+ const oldDevice = localStorage.getItem(ELocalStorageKey.Device)
+ if (oldDevice) {
+ device.data = JSON.parse(oldDevice)
+ }
+ window.connectCallback = (arg: any) => {
+ connectCallback(arg)
+ }
+ window.wsConnectCallback = (arg: any) => {
+ wsConnectCallback(arg)
+ }
device.data.gateway_sn = apiPilot.getRemoteControllerSN()
if (device.data.gateway_sn === EStatusValue.DISCONNECT.toString()) {
message.warn('Data is not available, please restart the remote control.')
return
}
- const oldDevice = localStorage.getItem(ELocalStorageKey.Device)
- if (oldDevice) {
- device.data = JSON.parse(oldDevice)
- }
+
device.data.sn = apiPilot.getAircraftSN()
getDeviceInfo()
-
- socket = websocket.init(wsGetMsg)
const isLoaded = apiPilot.isComponentLoaded(EComponentName.Thing)
if (isLoaded) {
@@ -283,7 +292,7 @@
// thing
const param: ThingParam = {
host: res.data.mqtt_addr,
- username: username.value,
+ username: res.data.mqtt_username,
password: res.data.mqtt_password,
connectCallback: 'connectCallback'
}
@@ -294,16 +303,6 @@
bindParam.user_id = res.data.user_id
bindParam.workspace_id = res.data.workspace_id
})
- window.connectCallback = arg => {
- connectCallback(arg)
- }
- window.wsConnectCallback = arg => {
- wsConnectCallback(arg)
- }
-})
-
-onUnmounted(() => {
- socket.close()
})
const connectCallback = async (arg: any) => {
@@ -333,6 +332,11 @@
apiPilot.loadComponent(EComponentName.Mission, {})
bindNum = setInterval(() => {
+ if (!bindParam.device_sn) {
+ device.data.gateway_sn = apiPilot.getRemoteControllerSN()
+ bindParam.device_sn = device.data.gateway_sn
+ return
+ }
bindDevice(bindParam).then(bindRes => {
if (bindRes.code !== 0) {
message.error(bindRes.message)
@@ -483,7 +487,7 @@
}
function getDeviceInfo () {
- if (device.data.sn === EStatusValue.DISCONNECT) {
+ if (!device.data.sn || device.data.sn === EStatusValue.DISCONNECT) {
return
}
getDeviceBySn(bindParam.workspace_id, device.data.sn).then(res => {
--
Gitblit v1.9.3