多mb轨迹控制打开和显隐等

This commit is contained in:
严争鸣 2025-04-28 08:56:02 +08:00
parent 20f73b3364
commit 61acdaa593
6 changed files with 223 additions and 202 deletions

View File

@ -1,10 +1,11 @@
import { NIcon, NPopover } from 'naive-ui' import { NIcon, NPopover } from 'naive-ui'
import { useMultiMBTrajectory } from '@/views/Mubiao/components/MultiHisTrajectory/hooks/multiMbTraj' // import { useMultiMBTrajectory } from '@/views/Mubiao/components/MultiHisTrajectory/hooks/multiMbTraj'
import { useMultiTraj } from '@/views/MultiTrajPlayback/hooks/useMultiTraj'
export default defineComponent({ export default defineComponent({
setup() { setup() {
const { showMultiHisTrajCom, showOrHideMultiHisTraj } = const { createMultiTrajPlayback, createOrDestroyMultiTrajPlayback } =
useMultiMBTrajectory() useMultiTraj()
// const handleClick = () => { // const handleClick = () => {
// showMultiHisTrajCom.value = !showMultiHisTrajCom.value // showMultiHisTrajCom.value = !showMultiHisTrajCom.value
@ -19,9 +20,9 @@ export default defineComponent({
trigger: () => ( trigger: () => (
<div <div
class={`btn-class ${ class={`btn-class ${
showMultiHisTrajCom.value ? 'checked' : '' createMultiTrajPlayback.value ? 'checked' : ''
}`} }`}
onClick={showOrHideMultiHisTraj} onClick={createOrDestroyMultiTrajPlayback}
> >
<NIcon size="16"> <NIcon size="16">
<svg <svg

View File

@ -39,7 +39,8 @@ const { getTextConfigs, initWebSocket } = useTextReport()
const { showHisImageCom } = useHisImage() const { showHisImageCom } = useHisImage()
const { showHisTrajCom } = useMBTrajectory() const { showHisTrajCom } = useMBTrajectory()
const { showMultiHisTrajCom, showMultiHisTrajDrawer } = useMultiTraj() const { showMultiHisTrajCom, showMultiHisTrajDrawer, createMultiTrajPlayback } =
useMultiTraj()
const { showDdConfigCom } = useDaodan() const { showDdConfigCom } = useDaodan()
const getConfig = async () => { const getConfig = async () => {
const res = await getTextConfigs() const res = await getTextConfigs()
@ -242,6 +243,7 @@ const showOrHideTextReport = () => {
</div> </div>
<multi-traj-playback <multi-traj-playback
v-if="createMultiTrajPlayback"
class="btn-transform absolute left-0 top-0" class="btn-transform absolute left-0 top-0"
:class="showMultiHisTrajDrawer ? '' : 'btn-transform-pos'" :class="showMultiHisTrajDrawer ? '' : 'btn-transform-pos'"
/> />

View File

@ -1,14 +1,6 @@
import { ref } from 'vue' import { ref } from 'vue'
import { useSatellite } from '../../Satellite/hooks/satellite' import { useSatellite } from '../../Satellite/hooks/satellite'
export function useMultiSatTraj() { export function useMultiSatTraj() {
return {
addSatelliteTraj,
removeAllMultiSatelliteTraj,
satellitePayloadStatusMap,
changeSatellitePayloadStatus,
}
}
const multiSatTrajMap = new Map() const multiSatTrajMap = new Map()
const satellitePayloadStatusMap = ref(new Map()) const satellitePayloadStatusMap = ref(new Map())
const { addSatellite } = useSatellite() const { addSatellite } = useSatellite()
@ -40,3 +32,10 @@ function removeAllMultiSatelliteTraj() {
multiSatTrajMap.delete(key) multiSatTrajMap.delete(key)
} }
} }
return {
addSatelliteTraj,
removeAllMultiSatelliteTraj,
satellitePayloadStatusMap,
changeSatellitePayloadStatus,
}
}

View File

@ -5,7 +5,6 @@ import { useMultiZBTraj } from './useMultiZBTraj'
import { useMultiHJTraj } from './useMultiHJTraj' import { useMultiHJTraj } from './useMultiHJTraj'
import { useMultiDDTraj } from './useMultiDDTraj' import { useMultiDDTraj } from './useMultiDDTraj'
const timesMap = ref(new Map())
const times = ref([]) const times = ref([])
const customElapsedTime = ref(0) const customElapsedTime = ref(0)
@ -75,9 +74,21 @@ export function useMultiTraj() {
showOrHideMultiHisTrajDrawer, showOrHideMultiHisTrajDrawer,
allMultiPayloadStatusMap, allMultiPayloadStatusMap,
changeRadarStatus, changeRadarStatus,
createMultiTrajPlayback,
createOrDestroyMultiTrajPlayback,
} }
} }
function resetAllEffect() {
checkedAllKeys.value = {
zb: [],
dd: [],
satellite: [],
hj: [],
}
resetPlayEffect()
}
// 所有树勾选的ids // 所有树勾选的ids
const checkedAllKeys = ref({ const checkedAllKeys = ref({
zb: [], zb: [],
@ -86,6 +97,13 @@ const checkedAllKeys = ref({
hj: [], hj: [],
}) })
const createMultiTrajPlayback = ref(false)
function createOrDestroyMultiTrajPlayback() {
createMultiTrajPlayback.value = !createMultiTrajPlayback.value
!createMultiTrajPlayback.value &&
(resetAllEffect(), resetTime(), removeAllEntity())
}
const showMultiHisTrajDrawer = ref(false) const showMultiHisTrajDrawer = ref(false)
// 显示或隐藏多目标历史轨迹抽屉 // 显示或隐藏多目标历史轨迹抽屉
function showOrHideMultiHisTrajDrawer() { function showOrHideMultiHisTrajDrawer() {
@ -97,8 +115,16 @@ const showMultiHisTrajCom = ref(false)
// 显示或隐藏多目标历史轨迹组件 // 显示或隐藏多目标历史轨迹组件
function showOrHideMultiHisTraj() { function showOrHideMultiHisTraj() {
showMultiHisTrajCom.value = !showMultiHisTrajCom.value showMultiHisTrajCom.value = !showMultiHisTrajCom.value
!showMultiHisTrajCom.value &&
(resetPlayEffect(), resetTime(), removeAllEntity())
}
!showMultiHisTrajCom.value && (resetTime(), removeAllEntity()) function resetPlayEffect() {
times.value = []
customElapsedTime.value = 0
animationSpeed.value = 1
isAnimationRunning.value = false
isPaused.value = false
} }
const { getZBHisTraj, getSatelliteHisTraj, getDDHisTraj, getHJHisTraj } = const { getZBHisTraj, getSatelliteHisTraj, getDDHisTraj, getHJHisTraj } =
@ -106,8 +132,6 @@ const { getZBHisTraj, getSatelliteHisTraj, getDDHisTraj, getHJHisTraj } =
// 加载多目标历史轨迹 // 加载多目标历史轨迹
function loadMultiHisTraj(timeRange) { function loadMultiHisTraj(timeRange) {
console.log(timeRange)
const dictFunc = { const dictFunc = {
zb: getZBHisTraj, zb: getZBHisTraj,
dd: getDDHisTraj, dd: getDDHisTraj,
@ -174,10 +198,8 @@ const allMultiPayloadChangeFun = {
} }
function changeRadarStatus({ id, type }) { function changeRadarStatus({ id, type }) {
console.log(id, type)
const statusMap = allMultiPayloadStatusMap.value[type] const statusMap = allMultiPayloadStatusMap.value[type]
if (statusMap) { if (statusMap) {
console.log(statusMap)
if (statusMap.has(id)) { if (statusMap.has(id)) {
const status = !statusMap.get(id) const status = !statusMap.get(id)
statusMap.set(id, status) statusMap.set(id, status)

View File

@ -2,19 +2,8 @@ import { useEntity } from '@/hooks/entity'
import { getDirection } from '@/utils/pos' import { getDirection } from '@/utils/pos'
import { useDetectionLoad } from './useDetectionLoad' import { useDetectionLoad } from './useDetectionLoad'
export function useMultiZBTraj() { export function useMultiZBTraj() {
return {
multiZBTrajMap,
addMultiZBTraj,
removeAllMultiZBTraj,
ZBPayloadStatusMap,
changeZBPayloadStatus,
}
}
const multiZBTrajMap = new Map() const multiZBTrajMap = new Map()
const { getMBEntityOpt } = useEntity() const { getMBEntityOpt } = useEntity()
// 添加多目标目标和轨迹 // 添加多目标目标和轨迹
function addMultiZBTraj(zbList) { function addMultiZBTraj(zbList) {
removeAllMultiZBTraj() removeAllMultiZBTraj()
@ -167,3 +156,11 @@ function removeAllMultiZBTraj() {
payloadMap.delete(key) payloadMap.delete(key)
} }
} }
return {
multiZBTrajMap,
addMultiZBTraj,
removeAllMultiZBTraj,
ZBPayloadStatusMap,
changeZBPayloadStatus,
}
}

View File

@ -116,7 +116,7 @@ export default defineComponent({
</div> </div>
<NButton <NButton
disabled={!canPlay.value || showMultiHisTrajCom} disabled={!canPlay.value || showMultiHisTrajCom.value}
onClick={playMultiTraj} onClick={playMultiTraj}
> >
轨迹回放 轨迹回放