提交 d73184ca authored 作者: 周文艺's avatar 周文艺

2026/1/8

上级 271bec23
......@@ -509,7 +509,26 @@ function initChart() {
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}]
},
],
tooltip: {
trigger: 'axis',
// 确保tooltip显示在最上层
extraCssText: 'z-index: 999999 !important;',
backgroundColor: 'rgba(50,50,50,0.8)',
borderColor: '#333',
borderWidth: 1,
padding: 10,
textStyle: {
color: '#fff',
fontSize: 12
},
// 固定tooltip位置在顶部
position: function (pos, params, dom, rect, size) {
return ['5%', pos[1]];
}
}
};
myChart.setOption(option);
......
......@@ -168,7 +168,9 @@ watch(useAppStoreInstance, () => {
document.getElementById('footer-content-up').style.bottom = '0px'
document.getElementById('all_footer').style.width = `calc(100% - ${asideWidth.value} - ${asideWidth.value})`
// document.getElementById('all_footer').style.bottom = '10px'
document.getElementById('control_panel1').style.right = '335px'
if (document.getElementById('control_panel1')) {
document.getElementById('control_panel1').style.right = '335px'
}
// document.getElementById('search_panel').style.left = '395px'
document.getElementById('two_footer').style.bottom = '100px'
......
......@@ -46,7 +46,7 @@
<img v-if="isPlaying" src="@/assets/images/footers/videoPlay.png" alt="" style="width: 8px; height: 10px;" />
</el-icon>
</el-button>
<el-button size="mini" @click="jumpToSpecificTime(new Date('2025-11-03 00:00:00'))">时间</el-button>
<el-button size="mini" @click="jumpToSpecificTime(new Date('2025-11-03 00:00:00'),true)">时间</el-button>
<!-- <el-button circle class="right_block_conter_btn" @click="playForward">
<el-icon>
<img src="@/assets/images/footers/videoPlay_right.png" alt="" style="width: 8px; height: 10px;" />
......@@ -122,11 +122,11 @@ import { VideoPlay, VideoPause, CaretLeft, CaretRight } from '@element-plus/icon
import { ElLoading, ElMessage } from 'element-plus'
import Loading from '@/pages/all/components/loadingComponent/index.js'
import { ref, onMounted, onUnmounted, computed, watch, nextTick } from 'vue';
import { ref, onMounted, onUnmounted, computed, watch, nextTick, onDeactivated } from 'vue';
import wss from '@/utils/requestSocekt.js'
import useAppStore from '@/store/module/app'
import { fa } from 'element-plus/es/locales.mjs';
import { set } from 'nprogress';
import { time } from 'echarts';
// import { loading } from 'vxe-pc-ui';
const useAppStoreInstance = useAppStore();
......@@ -135,6 +135,9 @@ const flagIsPlaying = ref(false)
// 跳转到指定时间点
const jumpToSpecificTime = (targetTime,PerformDrag=false) => {
// console.log('跳转到指定时间点:', targetTime);
isChange_flag_firstBackDate.value = false;
hasPlayed.value = false;
try {
if (!startDateTime.value || !endDateTime.value) {
console.error("时间轴起始时间或结束时间未定义");
......@@ -144,6 +147,7 @@ const jumpToSpecificTime = (targetTime,PerformDrag=false) => {
// 停止当前自动播放
if (isPlaying.value) {
console.log("我走了这里3")
stopAutoPlay();
}
......@@ -203,6 +207,7 @@ const jumpToSpecificTime = (targetTime,PerformDrag=false) => {
playForward();
if(PerformDrag) {
endDrag();
// moveEndHandle();
}
return true;
......@@ -256,12 +261,16 @@ const preTimeAllDate = ref(null);
// stopAutoPlay();
// }
// }, { deep: true, immediate: true });
const onMessageIndex = ref(0);
const hasPlayed = ref(false);//只是个标志
const wssMessageHandle = () => {
// let WwflagToNext = 0
wss.onmessage = (event) => {
const data = JSON.parse(event.data);
// 回复已收到数据的确认
wssOpenHandle({
if (!(data.type === 'control')) {
wssOpenHandle({
type: "confirm",
taskCode: String(taskCode_everyChange.value),
......@@ -270,12 +279,12 @@ const wssMessageHandle = () => {
})
// setTimeout(() => {
// wssOpenHandle({
// type: "confirm",
// taskCode: String(taskCode_everyChange.value),
// clientType: "ue"
// })
// }, 2000);
// type: "confirm",
// taskCode: String(taskCode_everyChange.value),
// clientType: "ue"
// })
// }, 2000);
}
// console.log('setTimeout:', (1000*60)/playbackSpeed.value,playbackSpeed.value);
......@@ -301,6 +310,7 @@ const wssMessageHandle = () => {
})
// console.log("获取的wssResponeFlag_isSuccess信息1:", wssResponeFlag_isSuccess.value);
useAppStoreInstance.setglobalStartWss(false)
console.log("我走了这里4")
stopAutoPlay();
isChange_flag_firstBackDate.value = false;
// 处理任务数据
......@@ -309,26 +319,30 @@ const wssMessageHandle = () => {
// 处理日志数据
// console.log("endDateTime.value === selectedEndTime.value:", endDateTime.value , selectedEndTime.value.toISOString(),endDateTime.value === selectedEndTime.value);
useAppStoreInstance.setglobalStartWss(true)
preTimeWindowEnd.value = data.timeWindowEnd;
preTimeAllDate.value = data;
// clearTimeout(WwflagToNext);
if (flagToNext !== 0) {
clearTimeout(flagToNext);
}
isChange_flag_firstBackDate.value = true;
// playForward();
console.log("再次获取数据",endDateTime.value === selectedEndTime.value.toISOString());
// console.log("跳转再次获取数据1",(Date.now(formatDateTime(selectedStartTime.value)+1000*onMessageIndex.value)));
// 只进行时间上的跳转,不执行拖动的逻辑
// jumpToSpecificTime(data.time,false)
// jumpToSpecificTime((Date.now(formatDateTime(selectedStartTime.value)+1000*onMessageIndex.value)) ,false)
onMessageIndex.value += 1
if (endDateTime.value === selectedEndTime.value.toISOString()) {
console.log("我走了这里1",endDateTime.value === selectedEndTime.value.toISOString(),endDateTime.value,selectedEndTime.value.toISOString());
stopAutoPlay();
}else{
playForward();
if (!hasPlayed.value) {
playForward();
hasPlayed.value = true;
}
// startAutoPlay()
}
// startAutoPlay();
// toggleAutoPlay();
console.log("这里是startAutoPlay()");
......@@ -345,17 +359,18 @@ const wssMessageHandle = () => {
// console.log('我是history的数据:', data);
console.log("compareTime*******",compareTime( formatDateTime(selectedEndTime.value),data.timeWindowEnd));
// preTimeWindowEnd.value = new Date(formatDateTime(selectedStartTime.value))
if (data.timeWindowEnd ) {
preTimeWindowEnd.value = data.timeWindowEnd;
}
if (compareTime( formatDateTime(selectedEndTime.value),preTimeWindowEnd.value)) {
stopAutoPlay();
}
// if (data.timeWindowEnd ) {
// }
// if (compareTime( formatDateTime(selectedEndTime.value),preTimeWindowEnd.value)) {
// stopAutoPlay();
// }
}
if (data.type === 'EndProcess') {
useAppStoreInstance.setglobalStartWss(false)
// useAppStoreInstance.setglobalStartWss(false)
isChange_flag_firstBackDate.value = false;
console.log("我走了这里5")
stopAutoPlay();
// console.log('我是left,type == time获取的wssRespone:', JSONdata, typeof JSONdata.time);
// console.log('我是left,type == time获取的wssRespone:', JSONdata.time, typeof JSONdata.time);
......@@ -365,6 +380,7 @@ const wssMessageHandle = () => {
// 处理服务器返回的数据,减去1000毫秒延迟,防止setTimeout和返回数据重叠在一个时间点上
// flagToNext = setTimeout(() => {
// stopAutoPlay();
// hasPlayed.value = false;
// }, ((1000*60)/playbackSpeed.value)-1000);
};
// WwflagToNext = setTimeout(() => {
......@@ -375,7 +391,7 @@ const wssMessageHandle = () => {
// 日期时间状态 (精确到秒)
const endDateTime = ref(new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString()); // 当前时间作为结束时间
const startDateTime = ref(new Date(Date.now() - 4 *24 * 60 * 60 * 1000).toISOString()); // 三天前作为开始时间
const startDateTime = ref(new Date(Date.now() - 3 *24 * 60 * 60 * 1000).toISOString()); // 三天前作为开始时间
const dateRange = ref([]);
// 滑块位置(百分比)
......@@ -483,11 +499,15 @@ const toNumber = (value) => {
// 点击确认后,处理日期范围变化
const handleDateRangeChange = async (val) => {
jiangerTime.value = 0;
isChange_flag_firstBackDate.value = false;
hasPlayed.value = false;
taskCode_everyChange.value = String(Date.now());
useAppStoreInstance.setglobalSubsystemTaskCode(toNumber(Date.now()));
useAppStoreInstance.setFooterTimeHasedSelectTimeToSub(true);
if (val && val.length > 0) {
if(isChange_flag_select_date.value) {
if(isChange_flag_select_date.value || useAppStoreInstance.globalisFromTosub) {
wssResponeFlag_isSuccess.value = true;
isPlaying.value = false;
// element plus组件显示加载中
......@@ -498,8 +518,9 @@ const handleDateRangeChange = async (val) => {
// })
Loading.show()
if (val && val.length === 2) {
// console.log("cao cao",val[0].toISOString(),new Date((new Date(val[0])).setSeconds(56)).toISOString());
startDateTime.value = val[0].toISOString();
startDateTime.value = new Date((new Date(val[0])).setSeconds(56)).toISOString();
endDateTime.value = val[1].toISOString();
// console.log("//////////////////",val[0],"4444444444--",pick_select_date.value[0]);
......@@ -524,19 +545,19 @@ const handleDateRangeChange = async (val) => {
updateSelectedTimes();
});
}
console.log("*************",pick_select_date.value,"---------",formatDateTime(pick_select_date.value[0]));
// console.log("*************",pick_select_date.value,"---------",formatDateTime(pick_select_date.value[0]));
if(window.ue5) {
wssOpenHandle({
isRealtime: is_flag_isRealtime.value? true: false,
startTime: formatDateTime(pick_select_date.value[0]),
endTime: formatDateTime(pick_select_date.value[1]),
startTime: formatDateTime(val[0]),
endTime: formatDateTime(val[1]),
taskCode: String(taskCode_everyChange.value),
})
window.ue5("callBackTimeFn", String(JSON.stringify({
isRealtime: is_flag_isRealtime.value? true: false,
startTime: formatDateTime(pick_select_date.value[0]),
endTime: formatDateTime(pick_select_date.value[1]),
startTime: formatDateTime(val[0]),
endTime: formatDateTime(val[1]),
taskCode: String(taskCode_everyChange.value),
//时间参数
......@@ -573,11 +594,19 @@ const handleDateRangeChange = async (val) => {
type: 'warning',
message: `时间范围为空,自动执行最近24小时`,
})
useAppStoreInstance.setGlobalisFromTosub(false);
useAppStoreInstance.setFooterTimeHasedSelectTimeToSub(false);
isDateRangeNotEmpty.value = true;
isConfirmedWithRange.value = false; // 重置标记
is_flag_isRealtime.value = true;
isChange_flag_select_date.value = false;//表示已经选过时间段了
playbackSpeed.value = 1;
// 切换实时模式的时候,之前的播放任务停止
wssOpenHandle({
isRealtime: is_flag_isRealtime.value? true: false,
status: "stop",
taskCode: String(taskCode_everyChange.value),
})
// 标志实时模式
// if(window.ue5) {
// window.ue5("callBackTimeFn", String(JSON.stringify({
......@@ -609,7 +638,7 @@ watch(() => wssResponeFlag_isSuccess.value, (newVal) => {
}
else {
console.log("我是watch(())stopAutoPlay()");
console.log("我走了这里6")
stopAutoPlay();
// wss.close()
}
......@@ -817,30 +846,57 @@ const toggleAutoPlay = () => {
if (isPlaying.value) {
status = 'stop';
console.log("我是切换自动播放状态stopAutoPlay()",isPlaying.value);
console.log("我走了这里7")
stopAutoPlay();
if(window.ue5) {
window.ue5("callBackSpeedFn", String(JSON.stringify({
isRealtime: is_flag_isRealtime.value? true: false,
status: "stop",
step: playbackSpeed.value,
taskCode: String(taskCode_everyChange.value),
})));
// window.ue5("callBackTimeFn", String(JSON.stringify({
// isRealtime: is_flag_isRealtime.value? true: false,
// status: "stop",
// taskCode: String(taskCode_everyChange.value),
// })));
wssOpenHandle({
isRealtime: is_flag_isRealtime.value? true: false,
status: "stop",
taskCode: String(taskCode_everyChange.value),
})
}
} else {
status = 'continue';
isConfirmedWithRange.value = false; // 开始播放时重置标记
playForward();
// 强制更新视图
nextTick(() => {
updateSelectedTimes();
});
}
if(window.ue5) {
window.ue5("callBackTimeFn", String(JSON.stringify({
if(window.ue5) {
window.ue5("callBackSpeedFn", String(JSON.stringify({
isRealtime: is_flag_isRealtime.value? true: false,
status: status,
status: 'continue',
step: playbackSpeed.value,
taskCode: String(taskCode_everyChange.value),
})));
// window.ue5("callBackTimeFn", String(JSON.stringify({
// isRealtime: is_flag_isRealtime.value? true: false,
// status: 'continue',
// taskCode: String(taskCode_everyChange.value),
// })));
wssOpenHandle({
isRealtime: is_flag_isRealtime.value? true: false,
status: status,
taskCode: String(taskCode_everyChange.value),
})
}
// 强制更新视图
nextTick(() => {
updateSelectedTimes();
});
}
}
};
......@@ -911,17 +967,34 @@ const playForward = async () => {
// is_flag_playBackwarding.value = false;
// };
// 开始自动播放
// 开始自动播放 第一版
// const startAutoPlay = () => {
// // 清除之前的定时器
// if (playbackInterval.value) {
// clearInterval(playbackInterval.value);
// }
// // 设置新的定时器,每秒更新一次
// playbackInterval.value = setInterval(() => {
// moveEndHandle();
// }, 1000 ); // 根据播放速度调整间隔
// };
// 第二版
const startAutoPlay = () => {
// 清除之前的定时器
if (playbackInterval.value) {
clearInterval(playbackInterval.value);
}
// 设置新的定时器,每秒更新一次
playbackInterval.value = setInterval(() => {
let expectedTime = Date.now() + (1000 );
const update = () => {
const drift = Date.now() - expectedTime;
moveEndHandle();
}, 1000 ); // 根据播放速度调整间隔
expectedTime += (1000 );
playbackInterval.value = setTimeout(update, Math.max(0, (1000 ) - drift));
};
playbackInterval.value = setTimeout(update, 1000 );
};
// 停止自动播放
......@@ -932,7 +1005,8 @@ const stopAutoPlay = () => {
clearInterval(playbackInterval.value);
playbackInterval.value = null;
}
// 强制更新视图
nextTick(() => {
......@@ -962,6 +1036,7 @@ const moveEndHandle = () => {
endHandlePercent.value = 100;
useAppStoreInstance.setglobalStartWss(false)
console.log("我是移动结束滑块stopAutoPlay()",isPlaying.value);
console.log("我走了这里8")
stopAutoPlay();
}
// else if (endHandlePercent.value <= 0 && playbackDirection.value < 0) {
......@@ -982,17 +1057,18 @@ const changeSpeed = () => {
const speeds = [1, 2, 4, 8, 10];
const currentIndex = speeds.indexOf(playbackSpeed.value);
const nextIndex = (currentIndex + 1) % speeds.length;
hasPlayed.value = false;
playbackSpeed.value = speeds[nextIndex];
if (window.ue5) {
window.ue5("callBackTimeFn", String(JSON.stringify({
window.ue5("callBackSpeedFn", String(JSON.stringify({
isRealtime: is_flag_isRealtime.value? true: false,
isFastForward: true,
isFastForward: playbackSpeed.value === 1 || playbackSpeed.value === '1'?false:true,
step: playbackSpeed.value,
taskCode: String(taskCode_everyChange.value),
})))
wssOpenHandle({
isRealtime: is_flag_isRealtime.value? true: false,
isFastForward: true,
isFastForward: playbackSpeed.value === 1 || playbackSpeed.value === '1'?false:true,
step: playbackSpeed.value,
taskCode: String(taskCode_everyChange.value),
})
......@@ -1018,6 +1094,7 @@ const startDrag = (handle, e) => {
// 手动拖动时停止自动播放
if (isPlaying.value) {
console.log("我是拖动开始stopAutoPlay()",isPlaying.value);
console.log("我走了这里9")
stopAutoPlay();
}
......@@ -1033,6 +1110,7 @@ const handleDrag = (e) => {
// 手动拖动时停止自动播放
if (isPlaying.value) {
console.log("我是处理拖动stopAutoPlay()",isPlaying.value);
console.log("我走了这里10")
stopAutoPlay();
}
......@@ -1058,10 +1136,11 @@ const endDrag = () => {
isDragging.value = false;
currentDragHandle.value = null;
hasPlayed.value = false;
// 调用UE5回调函数
if (window.ue5) {
if (isDraged.value) {
console.log("开始isDraged.value发送1111");
// if (!isPlaying.value) {
console.log("开始isPlaying.value发送1111");
window.ue5("callBackTimeFn", String(JSON.stringify({
......@@ -1074,6 +1153,19 @@ const endDrag = () => {
replayTime: formatDateTime(selectedEndTime.value),
taskCode: String(taskCode_everyChange.value),
})
// 发送时轴de 当前时间给ue
window.ue5("callTimeLineCurrentTimeFn", String(JSON.stringify({
year: selectedEndTime.value.getFullYear(),
month: selectedEndTime.value.getMonth() + 1,
day: selectedEndTime.value.getDate(),
hour: selectedEndTime.value.getHours(),
minute: selectedEndTime.value.getMinutes(),
second: selectedEndTime.value.getSeconds(),
})));
// }
} else {
// window.ue5("callBackTimeFn", String(JSON.stringify({})));
......@@ -1101,11 +1193,11 @@ const updateTimeline = () => {
};
onMounted(() => {
// if (isFromTosub) {
// handleDateRangeChange(useAppStoreInstance.globalSubsystemSelectedStartTime);
if (useAppStoreInstance.globalisFromTosub) {
handleDateRangeChange(useAppStoreInstance.globalSubsystemSelectedStartTime);
// jumpToSpecificTime(new Date(useAppStoreInstance.globalTimeLineEndSelectTime),true)
// endDrag()
// }
}else {
updateTimeline();
// 初始化时,默认实时传输
......@@ -1124,55 +1216,90 @@ onMounted(() => {
// isRealtime: is_flag_isRealtime.value? true: false,
// })
}
}
});
// 定义定时器引用
const intervalTimer = ref(null);
const isChange_flag_firstBackDate = ref(false)
// 监听 selectedEndTime 的变化
const intervalTimer = ref(null);
// 监听 selectedEndTime 的变化,二无停,时间是2025-11-02 16:01:00
// 检测时间间隔
const jiangerTime = ref(0)
watch(
() => selectedEndTime.value,
(val) => {
// 检查是否满足条件
if ( isChange_flag_firstBackDate.value) {
console.log("每隔开始进来");
// 如果条件满足且定时器未启动,则启动定时器
if (!intervalTimer.value) {
intervalTimer.value = setInterval(() => {
// console.log("每隔一秒执行一次逻辑",compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value));
// 在这里执行你需要的逻辑
if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
console.log("我走了",compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value),formatDateTime(selectedEndTime.value),preTimeWindowEnd.value,300%7.8947 ===0.0014);
// 间隔5分钟即300秒,发送时轴de 当前时间给ue
const adjustedStep = Math.ceil(300 / playbackSpeed.value);
if (jiangerTime.value % adjustedStep === 0) {
if (window.ue5) {
window.ue5("callTimeLineCurrentTimeFn", String(JSON.stringify({
year: selectedEndTime.value.getFullYear(),
month: selectedEndTime.value.getMonth() + 1,
day: selectedEndTime.value.getDate(),
hour: selectedEndTime.value.getHours(),
minute: selectedEndTime.value.getMinutes(),
second: selectedEndTime.value.getSeconds(),
})));
}
}
jiangerTime.value += 1;
if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
console.log("我走了这里2")
if(isPlaying.value){
stopAutoPlay();
clearInterval(intervalTimer.value);
intervalTimer.value = null;
hasPlayed.value = false;
isChange_flag_firstBackDate.value = false;
}
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
}
// if (!intervalTimer.value) {
// intervalTimer.value = setInterval(() => {
// console.log("每隔一秒执行一次逻辑",compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value));
// // 在这里执行你需要的逻辑
// if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
// stopAutoPlay();
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
// hasPlayed.value = false;
// isChange_flag_firstBackDate.value = false;
// }
}, 1000*10);
}
} else {
// 如果条件不满足,清除定时器
if (intervalTimer.value) {
console.log("清理定时器");
// }, 1000*10);
// }
}
// else {
// // 如果条件不满足,清除定时器
// if (intervalTimer.value) {
// console.log("清理定时器");
clearInterval(intervalTimer.value);
intervalTimer.value = null;
}
}
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
// }
// }
},
{ deep: true, immediate: true }
);
// 组件卸载时清除定时器
onUnmounted(() => {
if (intervalTimer.value) {
console.log("清理定时器");
clearInterval(intervalTimer.value);
intervalTimer.value = null;
}
stopAutoPlay();
window.removeEventListener('mousemove', handleDrag);
window.removeEventListener('mouseup', endDrag);
console.log("jieshuli 1");
});
onUnmounted(() => {
onDeactivated(() => {
stopAutoPlay();
window.removeEventListener('mousemove', handleDrag);
window.removeEventListener('mouseup', endDrag);
console.log("jieshuli 2");
});
</script>
......
......@@ -137,11 +137,14 @@ import useAppStore from '@/store/module/app'
import { Hide, View } from '@element-plus/icons-vue'
import { useRoute } from 'vue-router';
import { el, tr } from 'element-plus/es/locales.mjs';
// 跳转到指定时间点
const jumpToSpecificTime = (targetTime) => {
isChange_flag_firstBackDate.value = false;
hasPlayed.value = false;
try {
if (!startDateTime.value || !endDateTime.value) {
console.error("时间轴起始时间或结束时间未定义");
......@@ -199,7 +202,7 @@ const jumpToSpecificTime = (targetTime) => {
isFastForward: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
speed: useAppStoreInstance.globalSubsystemSpeed,
replayTime: formatDateTime(selectedEndTime.value),
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
// });
......@@ -237,6 +240,8 @@ const wssOpenHandle = (data) => {
}
};
const wssResponeFlag_isSuccess = ref(true);
const hasPlayed = ref(false);
const loading = ref('');
const wssMessageHandle = () => {
useAppStoreInstance.subsystemSocket.onmessage = (event) => {
......@@ -247,9 +252,13 @@ const loading = ref('');
// clientType: "web"
// })
let flagToNext = 0
if (Jsondata.type === 'status') {
Jsondata.status === 'STOP' ? stopAutoPlay() : startAutoPlay();
isChange_flag_firstBackDate.value = false;
}
// console.log("222222222FOOT2---------",Jsondata);
if (Jsondata.type === 'no_data') {
isChange_flag_firstBackDate.value = false;
// wssResponeFlag_isSuccess.value = false;
// 关闭eleplate loading
// (loading.value).close()
......@@ -262,6 +271,7 @@ const loading = ref('');
// console.log("获取的wssResponeFlag_isSuccess信息2:", wssResponeFlag_isSuccess.value);
}else if (Jsondata.type === 'data_end') {
isChange_flag_firstBackDate.value = false;
Loading.hide()
ElMessage({
type: 'error',
......@@ -269,7 +279,7 @@ const loading = ref('');
})
stopAutoPlay();
}else {
isChange_flag_firstBackDate.value = true;
useAppStoreInstance.setSubsystemSocketContent(Jsondata)
// if(loading.value){
// (loading.value).close()
......@@ -282,7 +292,10 @@ const loading = ref('');
if (endDateTime.value === selectedEndTime.value.toISOString()) {
stopAutoPlay();
}else{
playForward();
if (!hasPlayed.value) {
playForward();
hasPlayed.value = true;
}
}
}
......@@ -330,9 +343,9 @@ const loading = ref('');
// }
// 处理服务器返回的数据后续处理是否暂停处理
flagToNext = setTimeout(() => {
stopAutoPlay();
}, (1000*60)/playbackSpeed.value);
// flagToNext = setTimeout(() => {
// stopAutoPlay();
// }, (1000*60)/playbackSpeed.value);
};
}
......@@ -362,7 +375,7 @@ const sliderTrack = ref(null);
// 选中的时间
const selectedStartTime = ref(new Date(startDateTime.value));
const selectedEndTime = ref(new Date(endDateTime.value));
const selectedEndTime = ref(new Date(startDateTime.value));
// 自动播放相关状态
const isPlaying = ref(false);
......@@ -445,7 +458,9 @@ const toNumber = (value) => {
const handleDateRangeChange = async (val) => {
// taskCode_everyChange.value = String(Date.now());
// console.log("/****/*/*/*/*",val);
jiangerTime.value = 0;
isChange_flag_firstBackDate.value = false;
hasPlayed.value = false;
useAppStoreInstance.setglobalSubsystemTaskCode(taskCode_everyChange.value);
if (val && val.length > 0) {
// if(isChange_flag_select_date.value) {
......@@ -789,7 +804,7 @@ const toggleAutoPlay = () => {
// isRealtime: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
status: 'continue',
speed: useAppStoreInstance.globalSubsystemSpeed,
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
// 强制更新视图
......@@ -903,11 +918,10 @@ const startAutoPlay = () => {
const stopAutoPlay = () => {
isPlaying.value = false;
console.log("停止自动播放", playbackInterval.value);
wssOpenHandle({
wssOpenHandle({
// isRealtime: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
status: 'stop',
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
if (playbackInterval.value) {
......@@ -974,17 +988,17 @@ const changeSpeed = () => {
playbackSpeed.value = speeds[nextIndex];
useAppStoreInstance.setglobalSubsystemSpeed(playbackSpeed.value)
if (window.ue5) {
// window.ue5("callBackTimeFn", String(JSON.stringify({
// isRealtime: is_flag_isRealtime.value? true: false,
// isFastForward: true,
// step: playbackSpeed.value,
// taskCode: String(taskCode_everyChange.value),
// })))
window.ue5("callBackSpeedFn", String(JSON.stringify({
isFastForward: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
speed: useAppStoreInstance.globalSubsystemSpeed,
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})))
wssOpenHandle({
// isRealtime: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
isFastForward: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
speed: useAppStoreInstance.globalSubsystemSpeed,
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
}
......@@ -1046,6 +1060,7 @@ const handleDrag = (e) => {
// 结束拖动
const endDrag = () => {
hasPlayed.value = false;
isDragging.value = false;
currentDragHandle.value = null;
wssOpenHandle({
......@@ -1053,7 +1068,7 @@ const endDrag = () => {
isFastForward: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
speed: useAppStoreInstance.globalSubsystemSpeed,
replayTime: formatDateTime(selectedEndTime.value),
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
// 移除全局事件监听器
......@@ -1074,7 +1089,7 @@ const updateTimeline = () => {
// 重置滑块位置
startHandlePercent.value = 0;
endHandlePercent.value = isConfirmedWithRange.value ? 0 : 100;
endHandlePercent.value = 0;
};
......@@ -1085,6 +1100,26 @@ const stratEndTimeTransformTime = (time) => {
};
onMounted(() => {
// 添加实时模式的时间出路逻辑
if(!useAppStoreInstance.footerTimeHasedSelectTimeToSub) {
updateTimeline();
useAppStoreInstance.setglobalSubsystemTaskCode(Date.now())
// 这里修改发送实时模式的数据内容
// wssOpenHandle({
// // isRealtime: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
// isFastForward: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
// speed: useAppStoreInstance.globalSubsystemSpeed,
// startTime: dataPickStartTime.value,
// endTime: dataPickEndTime.value,
// // startTime: formatDateTime(new Date(new Date(Date.now() - 3*24 * 60 * 60 * 1000).toISOString())),
// // endTime: formatDateTime(new Date(new Date(Date.now() ).toISOString())),
// taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
// satelliteId: useAppStoreInstance.globalSatelliteSearchID,
// })
// Loading.show();
}else {
updateTimeline();
console.log("我是初始",useAppStoreInstance.globalSubsystemSelectedStartTime);
dataPickFalg.value = route.query.disabled || false;
......@@ -1092,9 +1127,6 @@ onMounted(() => {
dataPickStartTime.value = formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[0]);
dataPickEndTime.value = formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[1]);
handleDateRangeChange(useAppStoreInstance.globalSubsystemSelectedStartTime);
wssOpenHandle({
// isRealtime: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
isFastForward: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
......@@ -1104,7 +1136,7 @@ onMounted(() => {
// startTime: formatDateTime(new Date(new Date(Date.now() - 3*24 * 60 * 60 * 1000).toISOString())),
// endTime: formatDateTime(new Date(new Date(Date.now() ).toISOString())),
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
// 初始化时,默认实时传输
......@@ -1122,7 +1154,7 @@ onMounted(() => {
// startTime: formatDateTime(new Date(new Date(Date.now() - 3*24 * 60 * 60 * 1000).toISOString())),
// endTime: formatDateTime(new Date(new Date(Date.now() ).toISOString())),
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
}
......@@ -1131,14 +1163,98 @@ onMounted(() => {
// isRealtime: useAppStoreInstance.globalSubsystemIsFastForward? true: false,
status: 'continue',
speed: useAppStoreInstance.globalSubsystemSpeed,
taskCode: toNumber(useAppStoreInstance.globalSubsystemTaskCode),
taskCode: String(useAppStoreInstance.globalSubsystemTaskCode),
satelliteId: useAppStoreInstance.globalSatelliteSearchID,
})
}
});
}
});
const compareTime = (time1, time2) => {
// console.log('每隔开始compareTime----------', time1, time2);
// 将时间字符串转换为 Date 对象
const date1 = new Date(time1);
const date2 = new Date(time2);
// 检查时间是否有效
if (isNaN(date1.getTime()) || isNaN(date2.getTime())) {
throw new Error("无效的时间格式");
}
// 比较时间戳
if (date1 >= date2) {
return true;
}else {
return false;
}
};
const isChange_flag_firstBackDate = ref(false)
const preTimeWindowEnd = ref(null);
// 监听 selectedEndTime 的变化,二无停,时间是2025-11-02 16:01:00
// 检测时间间隔
const jiangerTime = ref(0)
watch(
() => selectedEndTime.value,
(val) => {
// 检查是否满足条件
if ( isChange_flag_firstBackDate.value) {
console.log("每隔开始进来");
console.log("我走了",compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value),formatDateTime(selectedEndTime.value),preTimeWindowEnd.value,300%7.8947 ===0.0014);
// 间隔5分钟即300秒,发送时轴de 当前时间给ue
const adjustedStep = Math.ceil(300 / playbackSpeed.value);
if (jiangerTime.value % adjustedStep === 0) {
if (window.ue5) {
window.ue5("callTimeLineCurrentTimeFn", String(JSON.stringify({
year: selectedEndTime.value.getFullYear(),
month: selectedEndTime.value.getMonth() + 1,
day: selectedEndTime.value.getDate(),
hour: selectedEndTime.value.getHours(),
minute: selectedEndTime.value.getMinutes(),
second: selectedEndTime.value.getSeconds(),
})));
}
}
jiangerTime.value += 1;
if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
console.log("我走了这里2,因为返回的数据不包含preTimeWindowEnd.value,所以会自动停止")
if(isPlaying.value){
stopAutoPlay();
hasPlayed.value = false;
isChange_flag_firstBackDate.value = false;
}
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
}
// if (!intervalTimer.value) {
// intervalTimer.value = setInterval(() => {
// console.log("每隔一秒执行一次逻辑",compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value));
// // 在这里执行你需要的逻辑
// if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
// stopAutoPlay();
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
// }
// }, 1000*10);
// }
}
// else {
// // 如果条件不满足,清除定时器
// if (intervalTimer.value) {
// console.log("清理定时器");
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
// }
// }
},
{ deep: true, immediate: true }
);
onUnmounted(() => {
stopAutoPlay();
window.removeEventListener('mousemove', handleDrag);
......
......@@ -375,10 +375,7 @@ onUnmounted(() => {
// 清理定时器
clearInterval(updateTimer);
});
onDeactivated(() => {
// 组件被停用时,清除定时器
clearInterval(updateTimer);
});
......
......@@ -3,7 +3,7 @@
<!-- 顶部标题栏 -->
<div class="header">
<div class="header_title">
<h2>上海站</h2>
<h2>{{props.satlTitle}}</h2>
</div>
<div class="close-btn" @click="closePanel">×</div>
</div>
......@@ -19,7 +19,7 @@
<!-- 设备列表内容区 -->
<div class="content" v-if="activeTab === 'devices'">
<!-- 设备列表头部 -->
<div class="table-header">
<div class="table-header" v-if="devices.length > 0">
<div class="col device-name">设备名称</div>
<div class="col status">状态</div>
</div>
......@@ -27,6 +27,7 @@
<!-- 设备列表 -->
<div class="device-list">
<!-- 普通设备项 -->
<div v-if="devices.length > 0">
<div
class="device-item"
v-for="(device, index) in devices"
......@@ -65,33 +66,56 @@
</div>
</div>
</div>
</div>
<div v-else>
<div
class="no-data"
>
<p>暂无数据</p></div>
</div>
</div>
</div>
<div class="content content_info" v-else>
<!-- 设备列表 -->
<div class="device-list1">
<!-- 普通设备项 -->
<div v-if="deviceStatusMap.length > 0">
<div
class="device-item"
v-for="(items, index) in deviceStatusMap"
:key="index"
>
<!-- 主设备行 -->
<div class="device-row" >
<div class="device-row"
v-for="(item, index) in items"
:key="index"
>
<div class="col device-name">
{{ items.label }}<span :class="items.status === 'error' ? 'has-error1' : 'notHas-error1'">(工作)</span>
{{ item.label }}
<!-- <span :class="items.status === 'error' ? 'has-error1' : 'notHas-error1'">(工作)</span> -->
</div>
<div class="col status">
<span class="status-text">
{{ items.value }}
{{ item.value }}
</span>
</div>
</div>
</div>
</div>
<div
v-else
>
<div
class="no-data"
>
<p>暂无数据</p></div>
</div>
</div>
<!-- 设备列表头部 -->
......@@ -147,9 +171,9 @@
</template>
<script setup>
import { onMounted, ref, watch } from 'vue';
import { onActivated, onMounted, ref, watch } from 'vue';
const props = defineProps(['errorDeviceList',"baseDeviceList"])
const props = defineProps(['satlTitle','errorDeviceList',"baseDeviceList"])
const emits = defineEmits(['errorDialoghandleClose'])
// 状态管理
......@@ -203,13 +227,39 @@ watch(() => props.errorDeviceList, (newVal) => {
}, { immediate: true })
watch(() => props.baseDeviceList, (newVal) => {
// console.log("11111111111",newVal.antennaEirp,typeof newVal)
deviceStatusMap.value = [
{label: '天线发射频率',value: newVal.antennaTransmitPower ,status: 1 ? 'normal' : 'error',},
{label: '天线发射EIRP',value: newVal.antennaEip ,status: 0? 'normal' : 'error',},
{label: '天线方位角',value: newVal.antennaAzimuth ,status: 1 ? 'normal' : 'error',},
{label: '天线俯仰角',value: newVal.antennaElevation ,status: 1 ? 'normal' : 'error',}
]
deviceStatusMap.value = []
newVal.forEach(item => {
deviceStatusMap.value.push([{
label: `天线${item.number }发射频率 `,
value: item.power || '0',
status: item.power !==0 ? 'normal' : 'error',
},
{
label: `天线${item.number }发射EIRP `,
value: item.eip || '-',
status: item.power !==0 ? 'normal' : 'error',
},
{
label: `天线${item.number }方位角 `,
value: item.azimuth || '-',
status: item.power !==0 ? 'normal' : 'error',
},
{
label: `天线${item.number }俯仰角 `,
value: item.elevation || '-',
status: item.power !==0 ? 'normal' : 'error',
},
])
})
console.log("11111EIRP111111baseDeviceList",newVal,deviceStatusMap.value)
// deviceStatusMap.value = [
// {label: '天线发射频率',value: newVal.antennaTransmitPower ,status: 1 ? 'normal' : 'error',},
// {label: '天线发射EIRP',value: newVal.antennaEip ,status: 0? 'normal' : 'error',},
// {label: '天线方位角',value: newVal.antennaAzimuth ,status: 1 ? 'normal' : 'error',},
// {label: '天线俯仰角',value: newVal.antennaElevation ,status: 1 ? 'normal' : 'error',}
// ]
}, { immediate: true })
......@@ -224,6 +274,11 @@ const toggleExpand = (device) => {
const closePanel = () => {
emits('errorDialoghandleClose')
};
onActivated(() => {
activeTab.value = 'devices';
console.log("展示了");
})
</script>
<style scoped>
......@@ -571,7 +626,12 @@ const closePanel = () => {
.content::-webkit-scrollbar-thumb:hover {
background: #555570;
} */
.no-data {
text-align: center;
padding: 20px;
font-size: 14px;
color: #888888;
}
::-webkit-scrollbar {
width: 6px;
}
......
......@@ -213,24 +213,24 @@
<el-table-column prop="station" label="地面站名称" row-class-name="hover-row" width="95"></el-table-column>
<el-table-column label="KU天线" width="62" align="center">
<template #default="scope">
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.ku != '-' }">{{ scope.row.ku }}</div>
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.ku != '-' }">{{ scope.row.ku === 0 ? '-' : scope.row.ku }}</div>
</template>
</el-table-column>
<el-table-column prop="qv" label="QV天线" width="62" align="center">
<el-table-column prop="qv" label="QV天线" width="60" align="center">
<template #default="scope">
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.qv != '-' }">{{ scope.row.qv }}</div>
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.qv != '-' }">{{ scope.row.qv === 0 ? '-' : scope.row.qv }}</div>
</template>
</el-table-column>
<el-table-column prop="monitor" label="测控基带" width="62" align="center">
<el-table-column prop="monitor" label="测控基带" width="60" align="center">
<template #default="scope">
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.monitor != '-' }">{{ scope.row.monitor
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.monitor != '-' }">{{ scope.row.monitor === 0 ? '-' : scope.row.monitor
}}</div>
</template>
</el-table-column>
<el-table-column prop="baseband" label="基站" width="45" align="center">
<el-table-column prop="baseband" label="基站" width="40" align="center">
<template #default="scope">
<div :class="{ 'errorRed': activeTab != 'equipment' && scope.row.baseband != '-' }">{{
scope.row.baseband }}</div>
scope.row.baseband === 0 ? '-' : scope.row.baseband }}</div>
</template>
</el-table-column>
<!-- <el-table-column prop="core" label="核心网" width="52" v-if="activeTab === 'equipment'" align="center"></el-table-column> -->
......@@ -249,9 +249,9 @@
</div>
<el-dialog v-model="errorDialogVisible" :show-close="false" width="280" :modal='false' class="custom-error-dialog"
<el-dialog v-model="errorDialogVisible" :show-close="false" width="280" :modal='false' class="custom-error-dialog" :destroy-on-close="true"
style="margin: 0;padding: 0;background-color: rgba(0, 0, 0, 0);">
<errorDialog :errorDeviceList="errorDeviceList" :baseDeviceList="baseDeviceList" @errorDialoghandleClose="errorDialoghandleClose"></errorDialog>
<errorDialog :errorDeviceList="errorDeviceList" :satlTitle="satlTitle" :baseDeviceList="baseDeviceList" @errorDialoghandleClose="errorDialoghandleClose"></errorDialog>
</el-dialog>
</div>
......@@ -328,7 +328,8 @@ const activeTabHandleClickTab = (value) => {
}).then(res => {
console.log( res.data,"s---------a");
primitiveFaultData.value = transformgroudSatelliteData(res.data)
console.log("11111EIRP111111*****",primitiveFaultData.value);
faultData.value = primitiveFaultData.value
searchEquipmentList()
})
......@@ -432,18 +433,17 @@ const primitiveFaultData = ref([
const faultData = ref(primitiveFaultData.value);
const baseDeviceList = ref({})
const satlTitle = ref('')
function tableHandleRowClickFn(row, column, event) {
if (activeTab.value === 'fault') {
errorDialogVisible.value = true
errorDeviceList.value = row.originErrorList
baseDeviceList.value = {
antennaAzimuth: row.antennaAzimuth,
antennaEip: row.antennaEip ,
antennaElevation: row.antennaElevation ,
antennaTransmitPower: row.antennaTransmitPower ,
}
console.log('点击的行数据:', row);
console.log("11111EIRP111111row",row);
satlTitle.value = row.station ? row.station : '未知名称'
baseDeviceList.value = equipmentData.value.filter(item => item.siteId === row.siteId)[0]?.originCrossDeviceExtractResponseList || []
console.log('点击的行数据:', equipmentData.value.filter(item => item.siteId === row.siteId)[0]?.originCrossDeviceExtractResponseList);
// row: 点击行的数据
// column: 点击的列信息
// event: 原生事件对象
......@@ -515,7 +515,8 @@ const wssTransformSatelliteData = (data) => {
station: data.siteName === null ? '-' : data.siteName ,
manufacturer: data.manufacturer || '',
status: data.satelliteStatus || '正常',
statusClass: satelliteStatusMap[data.satelliteStatus] || 'normal'
statusClass: satelliteStatusMap[data.satelliteStatus] || 'normal',
allData: data
}];
} else if (Array.isArray(data)) {
// 如果意外传入了数组,仍然处理数组
......@@ -524,7 +525,8 @@ const wssTransformSatelliteData = (data) => {
station: item.siteName === null ? '-' : item.siteName ,
manufacturer: item.manufacturer || '',
status: item.satelliteStatus || '正常',
statusClass: satelliteStatusMap[item.satelliteStatus] || 'normal'
statusClass: satelliteStatusMap[item.satelliteStatus] || 'normal',
allData: item
}));
}
......@@ -554,7 +556,7 @@ const transformgroudSatelliteDafultData = (data) => {
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
allData: data
}];
} else if (Array.isArray(data)) {
// 如果是数组,遍历每个元素并转换
......@@ -571,6 +573,7 @@ const transformgroudSatelliteDafultData = (data) => {
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
allData: data
}));
}
......@@ -582,7 +585,7 @@ const transformgroudSatelliteDafultData = (data) => {
const transformgroudSatelliteData = (data) => {
// console.log("*******11111222111111************", data,data.groundNetworkElementResponses);
// console.log("*******11111222111111************", data ,data.crossDeviceExtractResponseList );
// 检查 data 是否为对象且不为 null
if (typeof data === 'object' && data !== null && !Array.isArray(data) ) {
// 如果是单个对象,直接转换为数组形式
......@@ -592,11 +595,14 @@ const transformgroudSatelliteData = (data) => {
qv: data.controlBaseStationNum2 === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.controlBaseStationNum2,
monitor: data.controlBaseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.controlBaseStationNum,
baseband: data.baseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.baseStationNum,
originErrorList:data.groundNetworkElementResponses ,
originErrorList:data.groundNetworkElementResponses || [] ,
originCrossDeviceExtractResponseList: data.crossDeviceExtractResponseList || [] ,
antennaAzimuth: data.antennaAzimuth || '-',
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
allData: data,
siteId: data.siteId || '-',
}];
} else if (Array.isArray(data)) {
......@@ -610,10 +616,13 @@ const transformgroudSatelliteData = (data) => {
monitor: item.controlBaseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : item.controlBaseStationNum,
baseband: item.baseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : item.baseStationNum,
originErrorList: item.groundNetworkElementResponses || [] ,
antennaAzimuth: data.antennaAzimuth || '-',
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
originCrossDeviceExtractResponseList: item.crossDeviceExtractResponseList || [] ,
antennaAzimuth: item.antennaAzimuth || '-',
antennaEip: item.antennaEip || '-',
antennaElevation: item.antennaElevation || '-',
antennaTransmitPower: item.antennaTransmitPower || '-',
allData: item,
siteId: item.siteId || '-',
}));
}
......@@ -621,7 +630,7 @@ const transformgroudSatelliteData = (data) => {
return [];
};
const wssTransformgroudSatelliteData = (data) => {
if (typeof data === 'object' && data !== null && !Array.isArray(data)) {
return {
station: data.siteName === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.siteName,
......@@ -629,16 +638,19 @@ const wssTransformgroudSatelliteData = (data) => {
qv: data.controlBaseStationNum2 === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.controlBaseStationNum2,
monitor: data.controlBaseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.controlBaseStationNum,
baseband: data.baseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : data.baseStationNum,
originErrorList:data.groundNetworkElementResponses ,
originErrorList:data.groundNetworkElementResponses || [] ,
originCrossDeviceExtractResponseList: data.crossDeviceExtractResponseList || [] ,
antennaAzimuth: data.antennaAzimuth || '-',
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
allData: data,
siteId: data.siteId || '-',
}
} else if (Array.isArray(data)) {
// 如果意外传入了数组,仍然处理数组
return data.map(item => ({
// console.log("*******11111222111111************",data, data.groundNetworkElementResponses ,data[0].crossDeviceExtractResponseList );
station: item.siteName === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : item.siteName,
ku: item.controlAntennaNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : item.controlAntennaNum,
// 测试socket的数据筛选
......@@ -647,10 +659,13 @@ const wssTransformgroudSatelliteData = (data) => {
monitor: item.controlBaseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : item.controlBaseStationNum,
baseband: item.baseStationNum === 0 ? (activeTab.value === 'equipment' ? 0 : '-') : item.baseStationNum,
originErrorList: item.groundNetworkElementResponses || [] ,
antennaAzimuth: data.antennaAzimuth || '-',
antennaEip: data.antennaEip || '-',
antennaElevation: data.antennaElevation || '-',
antennaTransmitPower: data.antennaTransmitPower || '-',
originCrossDeviceExtractResponseList: item.crossDeviceExtractResponseList || [] ,
antennaAzimuth: item.antennaAzimuth || '-',
antennaEip: item.antennaEip || '-',
antennaElevation: item.antennaElevation || '-',
antennaTransmitPower: item.antennaTransmitPower || '-',
allData: item,
siteId: item.siteId || '-',
}));
// 如果 data 不是对象也不是数组,返回空数组
......@@ -793,7 +808,7 @@ onMounted(() => {
});
satelliteData.value = primitiveSatelliteData.value
primitiveEquipmentData.value = equipmentData.value
console.log('我是left,type == history获取的wssRespone:', typeof JSONdata.groundStationDeviceCount);
console.log('我是left,type == history获取的wssRespone:', JSONdata.groundStationDeviceCount);
// 地面数据,上层数据
......@@ -1128,7 +1143,8 @@ onUnmounted(() => {
.orbit-title-text {
/* padding: 25px 50px; */
padding-top: 5px;
padding-top: 3px;
padding-bottom: 3px;
font-size: 13px;
text-align: center;
justify-items: center;
......
......@@ -15,6 +15,7 @@ export default {
<script setup>
import * as echarts from 'echarts';
import { ElMessage } from 'element-plus';
import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue';
const props = defineProps({
......@@ -34,8 +35,15 @@ const props = defineProps({
watch(() => props.propsDate, (newVal, oldVal) => {
if (newVal?.isFirstSearch) {
if (newVal.dataX.length === 0 || newVal.dataY.length === 0) {
ElMessage({
message: `${props.propsDate.chartName || 'CDF Curve'}该时间段数据为空,请检查数据`,
type: 'warning'
})
return;
}
changeCharte();
console.log("完全不一样的数据",newVal);
// console.log("完全不一样的数据",newVal);
}
}, { immediate: true, deep: true })
......
......@@ -166,6 +166,7 @@ import useAppStore from '@/store/module/app.js';
import wss from '@/utils/subSystemRequestSocket.js'
import { useRouter } from 'vue-router';
import { getSubSystemOpitionListApi,getSubSystemCurveListApi } from '../../api/Zodiac'
import { tr } from 'element-plus/es/locales.mjs';
const router = useRouter();
......@@ -249,7 +250,7 @@ const backHomeClick = () => {
router.push('/');
// console.log("1111111111111111111111111", useAppStoreInstance.isSourceLegendShow);
//
useAppStoreInstance.setGlobalisFromTosub(true);
useAppStoreInstance.setislegendShow(useAppStoreInstance.isSourceLegendShow ? true : false);
// console.log("11111111111111111111111112", useAppStoreInstance.islegendShow);
useAppStoreInstance.setiscontrolPanelShow(true);
......@@ -623,7 +624,7 @@ const formatDateTime = (date) => {
};
// 日期范围选择
const historyTimeDateRange = ref([ formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[0]), formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[1])]);
const historyTimeDateRange = ref(null);
// 卫星粒度选择
const satelliteGranularity = ref();
......@@ -907,7 +908,11 @@ onBeforeMount(() => {
})
onMounted(() => {
currentTelemetryData.value = telemetryData[0];
if(useAppStoreInstance.footerTimeHasedSelectTimeToSub) {
historyTimeDateRange.value = [ formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[0]), formatDateTime(useAppStoreInstance.globalSubsystemSelectedStartTime[1])]
}else {
historyTimeDateRange.value = [new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(),new Date(Date.now()).toISOString()];
}
useAppStoreInstance.setiscontrolPanelShow(false);
useAppStoreInstance.subsystemSocket.onmessage = (event) => {
console.log('收到3 WebSocket 消息:', event);
......
......@@ -2,7 +2,7 @@
* @Author: Z 1518051043@qq.com
* @Date: 2025-09-12 13:51:43
* @LastEditors: zwy 1518051043@qq.com
* @LastEditTime: 2026-01-05 09:59:05
* @LastEditTime: 2026-01-08 09:15:58
* @FilePath: \yuanxinPro\src\store\module\app.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
......@@ -18,6 +18,8 @@ const useAppStore = defineStore(
globalTimeLineEndSelectTime: "2025-11-02 00:00:00",
globalTimeLineStartTime: "2025-11-02 00:00:00",
globalTimeLineEndTime: "2025-11-02 00:00:00",
globalisFromTosub: false,
footerTimeHasedSelectTimeToSub: false,
subsystemSocket: null,
subsystemSocketContent: '',
......@@ -44,6 +46,12 @@ const useAppStore = defineStore(
}),
actions: {
setFooterTimeHasedSelectTimeToSub(status) {
this.footerTimeHasedSelectTimeToSub = status
},
setGlobalisFromTosub(status) {
this.globalisFromTosub = status
},
setGlobalTimeLineEndSelectTime(time) {
this.globalTimeLineEndSelectTime = time;
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论