Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
SatelliteDigital
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
nijiawen
SatelliteDigital
Commits
d73184ca
提交
d73184ca
authored
1月 08, 2026
作者:
周文艺
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2026/1/8
上级
271bec23
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
537 行增加
和
179 行删除
+537
-179
hotMap.vue
src/pages/all/components/hotMapComponents/hotMap.vue
+20
-1
index.vue
src/pages/all/index.vue
+3
-1
timers.vue
src/pages/footer/component/timers.vue
+212
-85
timers.vue
src/pages/footer2/timers.vue
+145
-29
index.vue
src/pages/header/index.vue
+1
-4
errorDialog.vue
src/pages/lefts/component/errorDialog.vue
+76
-16
index.vue
src/pages/lefts/index.vue
+54
-38
cruve.vue
src/pages/lefts2/component/cruve.vue
+9
-1
index.vue
src/pages/lefts2/index.vue
+8
-3
app.js
src/store/module/app.js
+9
-1
没有找到文件。
src/pages/all/components/hotMapComponents/hotMap.vue
浏览文件 @
d73184ca
...
...
@@ -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
);
...
...
src/pages/all/index.vue
浏览文件 @
d73184ca
...
...
@@ -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'
...
...
src/pages/footer/component/timers.vue
浏览文件 @
d73184ca
...
...
@@ -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.mj
s'
;
import
{
set
}
from
'nprogress'
;
import
{
time
}
from
'echart
s'
;
// 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
(
"callBack
Time
Fn"
,
String
(
JSON
.
stringify
({
window
.
ue5
(
"callBack
Speed
Fn"
,
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
.
global
isFromTosub
)
{
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"
)
;
});
on
Unmoun
ted
(()
=>
{
on
Deactiva
ted
(()
=>
{
stopAutoPlay
();
window
.
removeEventListener
(
'mousemove'
,
handleDrag
);
window
.
removeEventListener
(
'mouseup'
,
endDrag
);
console
.
log
(
"jieshuli 2"
);
});
</
script
>
...
...
src/pages/footer2/timers.vue
浏览文件 @
d73184ca
...
...
@@ -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
(
end
DateTime
.
value
));
const
selectedEndTime
=
ref
(
new
Date
(
start
DateTime
.
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("callBackTime
Fn", String(JSON.stringify({
// isRealtime: is_flag_isRealtime.value? true: false,
// isFastForward: true,
// step: playbackSpeed.value
,
// taskCode: String(taskCode_everyChange.value)
,
//
})))
window
.
ue5
(
"callBackSpeed
Fn"
,
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
:
10
0
;
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
);
...
...
src/pages/header/index.vue
浏览文件 @
d73184ca
...
...
@@ -375,10 +375,7 @@ onUnmounted(() => {
// 清理定时器
clearInterval
(
updateTimer
);
});
onDeactivated
(()
=>
{
// 组件被停用时,清除定时器
clearInterval
(
updateTimer
);
});
...
...
src/pages/lefts/component/errorDialog.vue
浏览文件 @
d73184ca
...
...
@@ -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"
>
{{
item
s
.
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
{
on
Activated
,
on
Mounted
,
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
;
}
...
...
src/pages/lefts/index.vue
浏览文件 @
d73184ca
...
...
@@ -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=
"6
2
"
align=
"center"
>
<el-table-column
prop=
"qv"
label=
"QV天线"
width=
"6
0
"
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=
"6
2
"
align=
"center"
>
<el-table-column
prop=
"monitor"
label=
"测控基带"
width=
"6
0
"
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=
"4
5
"
align=
"center"
>
<el-table-column
prop=
"baseband"
label=
"基站"
width=
"4
0
"
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
;
...
...
src/pages/lefts2/component/cruve.vue
浏览文件 @
d73184ca
...
...
@@ -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
})
...
...
src/pages/lefts2/index.vue
浏览文件 @
d73184ca
...
...
@@ -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
);
...
...
src/store/module/app.js
浏览文件 @
d73184ca
...
...
@@ -2,7 +2,7 @@
* @Author: Z 1518051043@qq.com
* @Date: 2025-09-12 13:51:43
* @LastEditors: zwy 1518051043@qq.com
* @LastEditTime: 2026-01-0
5 09:59:05
* @LastEditTime: 2026-01-0
8 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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论