From fb336f319c71291fa09de3e7f67f1ccfab3cb7c8 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 23 Sep 2023 15:58:40 +0800
Subject: [PATCH] 媒体搜索框
---
src/pages/page-web/projects/tsa.vue | 90 ++++++++++++++++++++++++++++++++++++---------
1 files changed, 72 insertions(+), 18 deletions(-)
diff --git a/src/pages/page-web/projects/tsa.vue b/src/pages/page-web/projects/tsa.vue
index 9a630cb..15740ef 100644
--- a/src/pages/page-web/projects/tsa.vue
+++ b/src/pages/page-web/projects/tsa.vue
@@ -1,5 +1,5 @@
<template>
- <div class="project-tsa-wrapper ">
+ <div class="project-tsa-wrapper">
<div>
<a-row>
<a-col :span="1"></a-col>
@@ -243,21 +243,21 @@
<script lang="ts" setup>
import { computed, onMounted, reactive, ref, watch, WritableComputedRef } from 'vue'
import { EDeviceTypeName, ELocalStorageKey } from '/@/types'
-import JessibucaVideo from '/@/components/Jessibuca/Jessibuca.vue'
import noData from '/@/assets/icons/no-data.png'
import rc from '/@/assets/icons/rc.png'
import { OnlineDevice, EModeCode, OSDVisible, EDockModeCode, DeviceOsd, EDockModeText, EModeText } from '/@/types/device'
import { useMyStore } from '/@/store'
-import { getDeviceTopo, getUnreadDeviceHms, updateDeviceHms } from '/@/api/manage'
+import { getDeviceTopo, getUnreadDeviceHms, updateDeviceHms, testBind } from '/@/api/manage'
import { RocketOutlined, EyeInvisibleOutlined, EyeOutlined, RobotOutlined, DoubleRightOutlined } from '@ant-design/icons-vue'
import { EHmsLevel } from '/@/types/enums'
+import { cesiumOperation } from '/@/hooks/use-cesium-tsa'
const { appContext } = getCurrentInstance()
const global = appContext.config.globalProperties
const route = useRoute()
// const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE
const store = useMyStore()
const username = ref(localStorage.getItem(ELocalStorageKey.Username))
-const workspaceId = ref(localStorage.getItem(ELocalStorageKey.WorkspaceId)!)
+// const workSpaceId = ref(localStorage.getItem(ELocalStorageKey.workSpaceId)!)
const osdVisible = ref({} as OSDVisible)
const hmsVisible = new Map<string, boolean>()
const scorllHeight = ref()
@@ -271,13 +271,69 @@
const deviceInfo = computed(() => store.state.deviceState.deviceInfo)
const dockInfo = computed(() => store.state.deviceState.dockInfo)
+const workSpaceId = computed(() => store.state.common.projectId)
const hmsInfo = computed({
get: () => store.state.hmsInfo,
set: (val) => {
return val
}
})
-
+const getResource = (name: string) => {
+ return new URL(`/src/assets/icons/${name}`, import.meta.url).href
+}
+// 获取ws连接过来的sn设备号
+const snCode = ref<string[]>([])
+// 添加机场标注
+watch(() => store.state.deviceState, data => {
+ const cesium = cesiumOperation(global.$viewer)
+ if (snCode.value.includes(data.currentSn)) return
+ snCode.value.push(data.currentSn)
+ // cesium.removeAllPoint()
+ if (data.currentType === EDeviceTypeName.Aircraft && data.deviceInfo[data.currentSn]) {
+ // 无人机图标
+ const setting = {
+ longitude: data.deviceInfo[data.currentSn].longitude,
+ latitude: data.deviceInfo[data.currentSn].latitude,
+ billboard: {
+ image: getResource('drone.png'),
+ outlineWidth: 0,
+ width: 36,
+ height: 36,
+ scale: 1.0,
+ }
+ }
+ cesium.addPoint(setting)
+ // if (osdVisible.value.visible && osdVisible.value.sn !== '') {
+ // deviceInfo.value.device = data.deviceInfo[osdVisible.value.sn]
+ // }
+ }
+ if (data.currentType === EDeviceTypeName.Dock && data.dockInfo[data.currentSn]) {
+ // 机场图标位置
+ const setting = {
+ longitude: data.dockInfo[data.currentSn].basic_osd?.longitude,
+ latitude: data.dockInfo[data.currentSn].basic_osd?.latitude,
+ billboard: {
+ image: getResource('dock.png'),
+ outlineWidth: 0,
+ width: 36,
+ height: 36,
+ scale: 1.0,
+ }
+ }
+ cesium.addPoint(setting)
+ // cesium.flyTo(setting)
+ }
+}, {
+ deep: true,
+})
+const bind = async (sn: string) => {
+ const res = await testBind(sn)
+ if (res.code === 0) {
+ Promise.resolve(true)
+ } else {
+ Promise.resolve(false)
+ }
+}
onMounted(() => {
getOnlineTopo()
setTimeout(() => {
@@ -298,18 +354,13 @@
const parent = element?.parentNode as HTMLDivElement
scorllHeight.value = parent?.clientHeight - parent?.firstElementChild?.clientHeight
})
-const messageHandler = async (payload: any) => {
- console.log(payload, 'payload')
- // if (payload.type === 'hms') {
- // const { data
-}
-// 监听ws 消息
-// useConnectWebSocket(messageHandler)
+
function getOnlineTopo () {
- getDeviceTopo(workspaceId.value).then((res) => {
+ getDeviceTopo(workSpaceId.value).then((res) => {
if (res.code !== 0) {
return
}
+ const snList: any[] = []
onlineDevices.data = []
onlineDocks.data = []
res.data.forEach((gateway: any) => {
@@ -345,7 +396,10 @@
if (gateway.status && EDeviceTypeName.Gateway === gateway.domain) {
onlineDevices.data.push(device)
}
+ snList.push(gateway.device_sn)
+ bind(gateway.device_sn)
})
+ store.commit('SET_SN_LIST', snList)
})
}
@@ -367,17 +421,17 @@
osdVisible.value.gateway_callsign = device.gateway.callsign
osdVisible.value.payloads = device.payload
}
- store.commit('SET_OSD_VISIBLE_INFO', osdVisible)
+ console.log(osdVisible.value, 'value')
+ store.commit('SET_OSD_VISIBLE_INFO', osdVisible.value)
store.commit('SET_HMSInfo_DetailSn', sn)
}
function getUnreadHms (sn: string) {
- getUnreadDeviceHms(workspaceId.value, sn).then(res => {
+ getUnreadDeviceHms(workSpaceId.value, sn).then(res => {
if (res.data.length !== 0) {
hmsInfo.value[sn] = res.data
}
})
- console.info(hmsInfo.value)
}
function getOnlineDeviceHms () {
@@ -399,7 +453,7 @@
function readHms (visiable: boolean, sn: string) {
if (!visiable) {
- updateDeviceHms(workspaceId.value, sn).then(res => {
+ updateDeviceHms(workSpaceId.value, sn).then(res => {
if (res.code === 0) {
delete hmsInfo.value[sn]
}
@@ -429,7 +483,7 @@
}
.ant-collapse>.ant-collapse-item>.ant-collapse-header {
- color: white;
+ color: white !important;
border: 0;
padding-left: 14px;
}
--
Gitblit v1.9.3