husq
2023-09-27 2c2bc8614c8ea0ce386369eb4924da1e6aa052d1
src/store/index.ts
@@ -6,6 +6,9 @@
import { LayerType } from '/@/types/mapLayer'
import { WaylineFile } from '/@/types/wayline'
import { DevicesCmdExecuteInfo } from '/@/types/device-cmd'
import createPersistedState from 'vuex-persistedstate' // 导入库
import map from './map'
import common from './common'
const initStateFunc = () => ({
  Layers: [
@@ -65,15 +68,16 @@
      [sn: string]: DockOsd
    },
    currentSn: '',
    currentType: ''
    currentType: -1
  },
  osdVisible: {
  osdVisible: { // osd 显示设备相关信息
    sn: '',
    callsign: '',
    model: '',
    visible: false,
    gateway_sn: '',
    is_dock: false,
    payloads: null
  } as OSDVisible,
  waylineInfo: {
@@ -84,9 +88,12 @@
  hmsInfo: {} as {
    [sn: string]: DeviceHms[]
  },
  hmsInfoDetailSn: '' as string,
  // 机场指令执行状态信息
  devicesCmdExecuteInfo: {
  } as DevicesCmdExecuteInfo
  } as DevicesCmdExecuteInfo,
  mqttState: null as any, // mqtt 实例
  clientId: '', // mqtt 连接 唯一客户端id
})
export type RootStateType = ReturnType<typeof initStateFunc>
@@ -112,31 +119,25 @@
      return
    }
    if (!state.deviceState.dockInfo[info.sn]) {
      state.deviceState.dockInfo[info.sn] = info.host
      return
      state.deviceState.dockInfo[info.sn] = { } as DockOsd
    }
    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
    }
    if (info.host.sdr) {
      dock.sdr = info.host.sdr
      dock.media_file_detail = info.host.media_file_detail
      dock.wireless_link = info.host.wireless_link
      dock.link_osd = info.host
      return
    }
    if (info.host.job_number) {
      if (info.host.drone_battery_maintenance_info) {
        dock.drone_battery_maintenance_info = info.host.drone_battery_maintenance_info
      }
      return
    if (info.host.job_number !== undefined) {
      dock.work_osd = info.host
    }
    const sdr = dock.sdr
    const mediaFileDetail = dock.media_file_detail
    const wireless = dock.wireless_link
    state.deviceState.dockInfo[info.sn] = info.host
    state.deviceState.dockInfo[info.sn].sdr = sdr
    state.deviceState.dockInfo[info.sn].media_file_detail = mediaFileDetail
    state.deviceState.dockInfo[info.sn].wireless_link = wireless
  },
  SET_HMSInfo_DetailSn (state, data) {
    state.hmsInfoDetailSn = data
  },
  SET_DRAW_VISIBLE_INFO (state, bool) {
    state.drawVisible = bool
@@ -193,7 +194,13 @@
    } else {
      state.devicesCmdExecuteInfo[info.sn] = [info]
    }
  }
  },
  SET_MQTT_STATE (state, mqttState) {
    state.mqttState = mqttState
  },
  SET_CLIENT_ID (state, clientId) {
    state.clientId = clientId
  },
}
const actions: ActionTree<RootStateType, RootStateType> = {
@@ -229,7 +236,6 @@
      }
    })
    state.layerBaseInfo = obj
    console.log('state.layerBaseInfo', state.layerBaseInfo)
  },
  getLayerInfo ({ state }, id:string) {
    return state.layerBaseInfo[id]
@@ -240,7 +246,16 @@
  state: initStateFunc,
  getters,
  mutations,
  actions
  actions,
  modules: {
    map,
    common
  },
  plugins: [createPersistedState({
    storage: window.sessionStorage,
    key: 'drone-client',
    paths: ['map', 'common'],
  })]
}
const rootStore = createStore(storeOptions)