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

2026/1/8

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