无人机管理后台前端(已迁走)
rain
2025-04-18 9c873fee1a2d339319c3c4de68efdd7c3832cb68
src/store/modules/device.js
@@ -1,4 +1,4 @@
import { EDeviceTypeName } from '@/types';
import { EDeviceTypeName } from '@/types'
const initStateFunc = () => ({
  Layers: [
@@ -46,6 +46,7 @@
    currentSn: '',
    currentType: -1,
  },
  videoSurveillance: {}, // 视频监控相关信息
  osdVisible: {
    // osd 显示设备相关信息
    sn: '',
@@ -74,143 +75,148 @@
    selectedAction: undefined,
    kmzPath: '',
  },
});
})
const mutations = {
  SET_LAYER_INFO(state, info) {
    state.Layers = info;
  // 获取视频相关信息
  SAVE_VIDEO_SURVEILLANCE_INFO (state, info) {
    console.log('videoSurveillanceInfo', info)
    state.videoSurveillance = info
  },
  SET_DEVICE_INFO(state, info) {
    state.deviceState.deviceInfo[info.sn] = info.host;
    state.deviceState.currentSn = info.sn;
    state.deviceState.currentType = EDeviceTypeName.Aircraft;
  SET_LAYER_INFO (state, info) {
    state.Layers = info
  },
  SET_GATEWAY_INFO(state, info) {
    state.deviceState.gatewayInfo[info.sn] = info.host;
    state.deviceState.currentSn = info.sn;
    state.deviceState.currentType = EDeviceTypeName.Gateway;
  SET_DEVICE_INFO (state, info) {
    state.deviceState.deviceInfo[info.sn] = info.host
    state.deviceState.currentSn = info.sn
    state.deviceState.currentType = EDeviceTypeName.Aircraft
  },
  SET_DOCK_INFO(state, info) {
  SET_GATEWAY_INFO (state, info) {
    state.deviceState.gatewayInfo[info.sn] = info.host
    state.deviceState.currentSn = info.sn
    state.deviceState.currentType = EDeviceTypeName.Gateway
  },
  SET_DOCK_INFO (state, info) {
    if (Object.keys(info.host).length === 0) {
      return;
      return
    }
    if (!state.deviceState.dockInfo[info.sn]) {
      state.deviceState.dockInfo[info.sn] = {};
      state.deviceState.dockInfo[info.sn] = {}
    }
    state.deviceState.currentSn = info.sn;
    state.deviceState.currentType = EDeviceTypeName.Dock;
    const dock = state.deviceState.dockInfo[info.sn];
    state.deviceState.currentSn = info.sn
    state.deviceState.currentType = EDeviceTypeName.Dock
    const dock = state.deviceState.dockInfo[info.sn]
    if (info.host.mode_code !== undefined) {
      dock.basic_osd = info.host;
      return;
      dock.basic_osd = info.host
      return
    }
    if (info.host.sdr) {
      dock.link_osd = info.host;
      return;
      dock.link_osd = info.host
      return
    }
    if (info.host.job_number !== undefined) {
      dock.work_osd = info.host;
      dock.work_osd = info.host
    }
  },
  SET_HMSInfo_DetailSn(state, data) {
    state.hmsInfoDetailSn = data;
  SET_HMSInfo_DetailSn (state, data) {
    state.hmsInfoDetailSn = data
  },
  SET_DRAW_VISIBLE_INFO(state, bool) {
    state.drawVisible = bool;
  SET_DRAW_VISIBLE_INFO (state, bool) {
    state.drawVisible = bool
  },
  SET_MAP_ELEMENT_CREATE(state, info) {
    state.wsEvent.mapElementCreat = info;
  SET_MAP_ELEMENT_CREATE (state, info) {
    state.wsEvent.mapElementCreat = info
  },
  SET_MAP_ELEMENT_UPDATE(state, info) {
    state.wsEvent.mapElementUpdate = info;
  SET_MAP_ELEMENT_UPDATE (state, info) {
    state.wsEvent.mapElementUpdate = info
  },
  SET_MAP_ELEMENT_DELETE(state, info) {
    state.wsEvent.mapElementDelete = info;
  SET_MAP_ELEMENT_DELETE (state, info) {
    state.wsEvent.mapElementDelete = info
  },
  SET_DEVICE_ONLINE(state, info) {
    state.deviceStatusEvent.deviceOnline = info;
  SET_DEVICE_ONLINE (state, info) {
    state.deviceStatusEvent.deviceOnline = info
  },
  SET_DEVICE_OFFLINE(state, info) {
    state.deviceStatusEvent.deviceOffline = info;
    delete state.deviceState.gatewayInfo[info.sn];
    delete state.deviceState.deviceInfo[info.sn];
    delete state.deviceState.dockInfo[info.sn];
    delete state.hmsInfo[info.sn];
  SET_DEVICE_OFFLINE (state, info) {
    state.deviceStatusEvent.deviceOffline = info
    delete state.deviceState.gatewayInfo[info.sn]
    delete state.deviceState.deviceInfo[info.sn]
    delete state.deviceState.dockInfo[info.sn]
    delete state.hmsInfo[info.sn]
    // delete state.markerInfo.coverMap[info.sn]
    // delete state.markerInfo.pathMap[info.sn]
  },
  SET_OSD_VISIBLE_INFO(state, info) {
    state.osdVisible = info;
  SET_OSD_VISIBLE_INFO (state, info) {
    state.osdVisible = info
  },
  SET_SELECT_WAYLINE_INFO(state, info) {
    state.waylineInfo = info;
  SET_SELECT_WAYLINE_INFO (state, info) {
    state.waylineInfo = info
  },
  SET_SELECT_DOCK_INFO(state, info) {
    state.dockInfo = info;
  SET_SELECT_DOCK_INFO (state, info) {
    state.dockInfo = info
  },
  SET_DEVICE_HMS_INFO(state, info) {
    const hmsList = state.hmsInfo[info.sn];
    state.hmsInfo[info.sn] = info.host.concat(hmsList ?? []);
  SET_DEVICE_HMS_INFO (state, info) {
    const hmsList = state.hmsInfo[info.sn]
    state.hmsInfo[info.sn] = info.host.concat(hmsList ?? [])
  },
  SET_DEVICES_CMD_EXECUTE_INFO(state, info) {
  SET_DEVICES_CMD_EXECUTE_INFO (state, info) {
    // 保存设备指令ws消息推送
    if (!info.sn) {
      return;
      return
    }
    if (state.devicesCmdExecuteInfo[info.sn]) {
      const index = state.devicesCmdExecuteInfo[info.sn].findIndex(
        cmdExecuteInfo => cmdExecuteInfo.biz_code === info.biz_code
      );
      )
      if (index >= 0) {
        // 丢弃前面的消息
        if (state.devicesCmdExecuteInfo[info.sn][index].timestamp > info.timestamp) {
          return;
          return
        }
        state.devicesCmdExecuteInfo[info.sn][index] = info;
        state.devicesCmdExecuteInfo[info.sn][index] = info
      } else {
        state.devicesCmdExecuteInfo[info.sn].push(info);
        state.devicesCmdExecuteInfo[info.sn].push(info)
      }
    } else {
      state.devicesCmdExecuteInfo[info.sn] = [info];
      state.devicesCmdExecuteInfo[info.sn] = [info]
    }
  },
  SET_MQTT_STATE(state, mqttState) {
    state.mqttState = mqttState;
  SET_MQTT_STATE (state, mqttState) {
    state.mqttState = mqttState
  },
  SET_CLIENT_ID(state, clientId) {
    state.clientId = clientId;
  SET_CLIENT_ID (state, clientId) {
    state.clientId = clientId
  },
  // 设置wayline中的信息
  SET_WAYLINE_INFO(state, { isShow, selectedPoint, selectedAction }) {
    isShow !== undefined && (state.waylineTool.isShow = isShow);
    state.waylineTool.selectedPoint = selectedPoint;
    selectedAction !== undefined && (state.waylineTool.selectedAction = selectedAction);
  SET_WAYLINE_INFO (state, { isShow, selectedPoint, selectedAction }) {
    isShow !== undefined && (state.waylineTool.isShow = isShow)
    state.waylineTool.selectedPoint = selectedPoint
    selectedAction !== undefined && (state.waylineTool.selectedAction = selectedAction)
  },
  SET_WAYLINE_KMZPATH(state, kmzPath) {
    state.waylineTool.kmzPath = kmzPath;
  SET_WAYLINE_KMZPATH (state, kmzPath) {
    state.waylineTool.kmzPath = kmzPath
  },
};
}
const actions = {
  updateElement({ state }, content) {
    const key = content.id.replaceAll('resource__', '');
    const type = content.type;
    const layers = state.Layers;
    const layer = layers.find(item => item.id === key);
  updateElement ({ state }, content) {
    const key = content.id.replaceAll('resource__', '')
    const type = content.type
    const layers = state.Layers
    const layer = layers.find(item => item.id === key)
    if (layer) {
      layer[type] = content.bool;
      layer[type] = content.bool
    }
  },
  getLayerInfo({ state }, id) {
    return state.layerBaseInfo[id];
  getLayerInfo ({ state }, id) {
    return state.layerBaseInfo[id]
  },
};
}
const device = {
  state: initStateFunc,
  mutations,
  actions,
};
}
export default device;
export default device