Browse Source

修复遥控器网络请求

李富豪 1 year ago
parent
commit
0c8bedd547

+ 2 - 2
Web/src/pages/page-pilot/pilot-index.vue

@@ -60,7 +60,7 @@ onMounted(async () => {
     await refreshToken({})
       .then(res => {
         apiPilot.setComponentParam(EComponentName.Api, {
-          host: import.meta.env.VITE_API_URL,
+          host: import.meta.env.VITE_API_URL + '/',
           token: res.data.access_token
         })
         const jsres = apiPilot.loadComponent(EComponentName.Api, apiPilot.getComponentParam(EComponentName.Api))
@@ -87,7 +87,7 @@ const onSubmit = async (e: any) => {
       console.log('login res:', res)
       if (res.code === 0) {
         apiPilot.setComponentParam(EComponentName.Api, {
-          host: import.meta.env.VITE_API_URL,
+          host: import.meta.env.VITE_API_URL + '/',
           token: res.data.access_token
         })
         const jsres = apiPilot.loadComponent(

+ 0 - 4
Web/src/pages/page-web/projects/task/index.vue

@@ -34,10 +34,6 @@ const messageHandler = async (payload: any) => {
     return
   }
   switch (payload.biz_code) {
-    case EBizCode.ControlSourceChange: {// 设备原因
-      store.commit('SET_DEVICE_REASON', payload.data)
-      break
-    }
     case EBizCode.GatewayOsd: {
       store.commit('SET_GATEWAY_INFO', payload.data)
       break

+ 68 - 50
Web/src/pages/page-web/projects/task/taskList/index.vue

@@ -1,24 +1,27 @@
 <template>
   <div class="taskList">
-    <div class="taskList-left" v-if="state.collapsed">
-      <div class="taskList-left-title">
-        <div>
-          当前机场
+    <a-spin :spinning="state.onlineDockListLoading" v-if="state.collapsed">
+      <div class="taskList-left">
+        <div class="taskList-left-title">
+          <div>
+            当前机场
+          </div>
+          <a-checkbox v-model:checked="checkState.checkAll" :indeterminate="checkState.indeterminate"
+            @change="onCheckAllChange">
+            全选
+          </a-checkbox>
         </div>
-        <a-checkbox v-model:checked="checkState.checkAll" :indeterminate="checkState.indeterminate"
-          @change="onCheckAllChange">
-          全选
-        </a-checkbox>
-      </div>
-      <div v-for="(dock, index) in state.onlineDockList" :key="dock.sn">
-        <div :class="[
-          'taskList-left-item',
-          checkState.checkSnList.includes(dock.sn) ? 'taskList-left-item-selected' : ''
-        ]" @click="onClickCheckItem(dock.sn)">
-          <Airport :dock="dock" :look-info="false" />
+        <div v-for="(dock, index) in state.onlineDockList" :key="dock.sn">
+          <div :class="[
+            'taskList-left-item',
+            checkState.checkSnList.includes(dock.sn) ? 'taskList-left-item-selected' : ''
+          ]" @click="onClickCheckItem(dock.sn)">
+            <Airport :dock="dock" :look-info="false" />
+          </div>
         </div>
+        <div class="taskList-left-fill"></div>
       </div>
-    </div>
+    </a-spin>
     <div :style="{ width: state.collapsed ? 'calc(100% - 250px)' : '100%' }">
       <Search :onClickCollapsed="() => { state.collapsed = !state.collapsed }" :onClickCreateTask="() => { }"
         :onClickSearch="onClickSearch" :onClickReset="onClickReset" />
@@ -111,6 +114,7 @@ import { EDeviceTypeName } from '/@/types'
 
 interface State {
   collapsed: boolean,
+  onlineDockListLoading: boolean,
   onlineDockList: OnlineDevice[],
   query: any,
   listLoading: boolean,
@@ -119,6 +123,7 @@ interface State {
 
 const state: State = reactive({
   collapsed: true,
+  onlineDockListLoading: false,
   onlineDockList: [],
   query: undefined,
   listLoading: false,
@@ -149,43 +154,50 @@ const hmsInfo = computed({
 })
 
 const fetchOnlineDock = async () => {
-  const res = await getDeviceTopo(getWorkspaceId());
-  if (res.code !== 0) {
-    return;
-  }
-  const list = state.onlineDockList;
-  res.data.forEach((gateway: any) => {
-    const child = gateway.children
-    const device: OnlineDevice = {
-      model: child?.device_name,
-      callsign: child?.nickname,
-      sn: child?.device_sn,
-      mode: EModeCode.Disconnected,
-      gateway: {
-        model: gateway?.device_name,
-        callsign: gateway?.nickname,
-        sn: gateway?.device_sn,
-        domain: gateway?.domain
-      },
-      payload: []
+  state.onlineDockListLoading = true;
+  try {
+    const res = await getDeviceTopo(getWorkspaceId());
+    if (res.code !== 0) {
+      return;
     }
-    child?.payloads_list.forEach((payload: any) => {
-      device.payload.push({
-        index: payload.index,
-        model: payload.model,
-        payload_name: payload.payload_name,
-        payload_sn: payload.payload_sn,
-        control_source: payload.control_source,
-        payload_index: payload.payload_index
+    const list = state.onlineDockList;
+    res.data.forEach((gateway: any) => {
+      const child = gateway.children
+      const device: OnlineDevice = {
+        model: child?.device_name,
+        callsign: child?.nickname,
+        sn: child?.device_sn,
+        mode: EModeCode.Disconnected,
+        gateway: {
+          model: gateway?.device_name,
+          callsign: gateway?.nickname,
+          sn: gateway?.device_sn,
+          domain: gateway?.domain
+        },
+        payload: []
+      }
+      child?.payloads_list.forEach((payload: any) => {
+        device.payload.push({
+          index: payload.index,
+          model: payload.model,
+          payload_name: payload.payload_name,
+          payload_sn: payload.payload_sn,
+          control_source: payload.control_source,
+          payload_index: payload.payload_index
+        })
       })
+      if (EDeviceTypeName.Dock === gateway.domain) {
+        list.push(device)
+      }
     })
-    if (EDeviceTypeName.Dock === gateway.domain) {
-      list.push(device)
-    }
-  })
-  state.onlineDockList = list;
-  checkState.checkAll = true;
-  checkState.checkSnList = list.map(item => item.sn);
+    state.onlineDockList = list;
+    checkState.checkAll = true;
+    checkState.checkSnList = list.map(item => item.sn);
+  } catch (error) {
+    console.error(error);
+  } finally {
+    state.onlineDockListLoading = false;
+  }
 }
 
 const fetchList = async () => {
@@ -407,6 +419,7 @@ const onClickDelete = (id: string, name: string) => {
     height: calc(100vh - 146px);
     padding: 10px 8px 0;
     background-color: #232323;
+    overflow-y: auto;
     margin-right: 20px;
 
     &-title {
@@ -430,6 +443,11 @@ const onClickDelete = (id: string, name: string) => {
         border-color: #1fa3f6;
       }
     }
+
+    &-fill {
+      width: 100%;
+      height: 20px;
+    }
   }
 }