提交 cca4147a authored 作者: liujiaxing's avatar liujiaxing

时间轴重置模式--切换到实时模式

上级 83e2a35c
......@@ -316,6 +316,8 @@ const wssMessageHandle = () => {
}
if (data.type === 'control' && (data.controlType === 'continue' && data?.messageTypeFalg === 'true')) {
// 跳到指定时间点
console.log(tempDateTime.value, '试试模式的时间?-------');
jumpToSpecificTime(new Date(subtractSecondsAndFormat(alignTo56Seconds(tempDateTime.value).toISOString(), data.remainingTimeMs + 1)), false)
playForward();//开始播放
// if (!hasPlayed.value) {
......@@ -360,6 +362,7 @@ const wssMessageHandle = () => {
preTimeWindowEnd.value = data.nextTimestamp || data.dataTime;
}
hasDraged_first_falseToTrue.value = true;
console.log('是否跳转');
jumpToSpecificTime(new Date(subtractSecondsAndFormat(alignTo56Seconds(selectedEndTime.value).toISOString(), data.remainingTimeMs + 1)));
//console.log("我走了ElMessage",hasDraged_first_falseToTrue.value , !(data?.isLagrangeInterpolation === true) , (data.controlType === 'seekConfirm'));
......@@ -537,6 +540,15 @@ const taskCode_everyChange = ref('');
// 点击确认后,处理日期范围变化,speed--播放速度倍数,val--时间范围
const handleDateRangeChange = async (val, flag = false, RemoveSat, speed) => {
console.log(val, '对比');
// 判断如果是实时模式则储存当前时间开始时间和结束时间
if (is_flag_isRealtime.value) {
console.log(startDateTime.value, endDateTime.value, '实时');
localStorage.setItem("isRealtimetime", JSON.stringify(
[startDateTime.value, endDateTime.value]
));
}
// return
if (RemoveSat) {
is_flag_isRealtime.value = false;
localStorage.setItem("is_flag_isRealtime", false);
......@@ -556,6 +568,7 @@ const handleDateRangeChange = async (val, flag = false, RemoveSat, speed) => {
useAppStoreInstance.setGlobalRecordMainSysTaskCode(taskCode_everyChange.value)
useAppStoreInstance.setFooterTimeHasedSelectTimeToSub(true);
}
if (val && val.length > 0) {
wssResponeFlag_isSuccess.value = true;
isPlaying.value = false;
......@@ -573,7 +586,7 @@ const handleDateRangeChange = async (val, flag = false, RemoveSat, speed) => {
clearInterval(autoUpdateDateRange.value);
updateTimeline();
// 重置滑块位置到开始位置
// 重置滑块位置到开始位置--历史模式
startHandlePercent.value = 0;
endHandlePercent.value = 0;
......@@ -584,7 +597,7 @@ const handleDateRangeChange = async (val, flag = false, RemoveSat, speed) => {
}
playbackSpeed.value = Number(speed);//倍速设置
console.log("倍速设置", playbackSpeed.value);
console.log("倍速设置", playbackSpeed.value, '类型');
if (!flag) {
wssOpenHandle({
isRealtime: is_flag_isRealtime.value ? true : false,
......@@ -657,6 +670,8 @@ autoUpdateDateRange.value = setInterval(() => {
watch(() => isDateRangeNotEmpty.value, (newVal) => {
if (newVal) {
// === 实时模式:开启自动更新 ===
console.log('监听信息学,改变时间');
autoUpdateDateRange.value = setInterval(() => {
autoHandleDateRangeChange([new Date((new Date(useAppStoreInstance.globalSubsystemSelectedStartTime[0]))).toISOString(), new Date((new Date(useAppStoreInstance.globalSubsystemSelectedStartTime[1]))).toISOString()]);
}, 1000); // 每秒执行一次,让时间范围随着当前时间前进
......@@ -759,9 +774,10 @@ const isMarkerInSelectedRange = (marker) => {
};
// 日期时间格式化函数
const formatDateTime = (date) => {
if (!date || date == undefined) return '未选择';
if (!isDateString(date)) return
const formatDateTime = (dates) => {
if (!dates || dates == undefined) return '未选择';
if (!isDateString(dates)) return
let date = new Date(dates);
const year = date?.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
......@@ -940,6 +956,8 @@ const toggleAutoPlay = () => {
jiangerTime.value = 0;
playForward();//开始播放
// 跳转到指定的时间点
console.log('是否跳转222');
jumpToSpecificTime(new Date(addOneSecond(formatDateTime(selectedEndTime.value), 1)));
if (window.ue5) {
window.ue5("callBackSpeedFn", String(JSON.stringify({
......@@ -1349,6 +1367,22 @@ const formatDateTimeOne = (timeStr) => {
// }
// 重置模式为实时模式
const resetclick = () => {
console.log(JSON.parse(localStorage.getItem("isRealtimetime")), '时间');
// return
if (is_flag_isRealtime.value) return ElMessage.warning("当前已经是实时模式!");
is_flag_isRealtime.value = true//实时模式
startHandlePercent.value = 0;
endHandlePercent.value = 100;//实时模式滑块为100
dateRange.value = []
handleDateRangeChange(JSON.parse(localStorage.getItem("isRealtimetime")), true, false, localStorage.getItem("playbackSpeed"));
wssOpenHandle({
isRealtime: is_flag_isRealtime.value,
status: 'continue',
messageTypeFalg: true,
taskCode: useAppStoreInstance.globalRecordMainSysTaskCode || (useAppStoreInstance.globalSubsystemTaskCode),
})
}
const tempDateTime = ref(new Date(useAppStoreInstance.globalTimeLineEndSelectTime))
onMounted(() => {
......@@ -1370,6 +1404,7 @@ onMounted(() => {
pick_select_date.value = [new Date(dateRange.value[0]).toString(), new Date(dateRange.value[1]).toString()]
}
{
//跳出判断,一直执行
console.log(localStorage.getItem("playbackSpeed"), '判断是否走了历史模式', useAppStoreInstance.globalSubsystemSelectedStartTime);
// ⚠️ 保存离开前的 isRealtime 状态,因为 handleDateRangeChange 内部会把 is_flag_isRealtime 设为 false
......@@ -1391,6 +1426,8 @@ onMounted(() => {
const restored = new Date(tempDateTime.value);
if (!isNaN(restored.getTime())) {
//跳转到指定时间
console.log('走这厉害');
jumpToSpecificTime(restored, false);
console.log("滑块恢复到离开前位置:", tempDateTime.value);
}
......@@ -1515,19 +1552,19 @@ watch(
jiangerTime.value += 1;
console.log(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value, '时间对比');
//对比时间----判断是否需要停止
if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
if (isPlaying.value) {
console.log('歘告诉过');
//对比时间----判断是否需要停止,拖动后后端连续返回三条数据,第一条是提示,第二第三条是ue用来定位和平滑的数据,这是后不应该停止时间,到56秒后应该接收到下一条数据时
// if (compareTime(formatDateTime(selectedEndTime.value), preTimeWindowEnd.value)) {
// if (isPlaying.value) {
// console.log('歘告诉过');
stopAutoPlay();
// hasPlayed.value = false;
isChange_flag_firstBackDate.value = false;
}
// stopAutoPlay();
// // hasPlayed.value = false;
// isChange_flag_firstBackDate.value = false;
// }
// clearInterval(intervalTimer.value);
// intervalTimer.value = null;
}
// // clearInterval(intervalTimer.value);
// // intervalTimer.value = null;
// }
}
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论