Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mmc-stl-vue2
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
mmc-stl-vue2
Commits
45f0968c
提交
45f0968c
authored
12月 30, 2024
作者:
温凯
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:接管无人机接口更改
上级
7d9ec497
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
402 行增加
和
106 行删除
+402
-106
uav_control.js
...ponents/MMCFlightControlCenter/api/modules/uav_control.js
+1
-1
index.vue
...Panel/components/controlRight/components/health/index.vue
+380
-102
index.vue
...components/controlPanel/components/controlRight/index.vue
+20
-2
index.vue
...s/components/controlPanel/components/controlTop/index.vue
+1
-1
没有找到文件。
src/components/MMCFlightControlCenter/api/modules/uav_control.js
浏览文件 @
45f0968c
...
@@ -49,7 +49,7 @@ class Control_API {
...
@@ -49,7 +49,7 @@ class Control_API {
// 接管无人机
// 接管无人机
static
setUavControlOn
(
params
)
{
static
setUavControlOn
(
params
)
{
return
request
({
return
request
({
url
:
`/admin-api/uas/device-take/
controlUav
`
,
url
:
`/admin-api/uas/device-take/
updateCurrentOperator
`
,
method
:
'post'
,
method
:
'post'
,
params
params
});
});
...
...
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlRight/components/health/index.vue
浏览文件 @
45f0968c
...
@@ -4,129 +4,275 @@
...
@@ -4,129 +4,275 @@
<div
class=
"nset_control_box_header"
>
<div
class=
"nset_control_box_header"
>
<div
class=
"title ml10"
>
<div
class=
"title ml10"
>
<img
src=
"../../assets/images/mount_head.png"
/>
<img
src=
"../../assets/images/mount_head.png"
/>
<div
class=
"font"
>
{{
uav
&&
uav
.
name
||
""
}}
</div>
<div
class=
"font"
>
{{
(
uav
&&
uav
.
name
)
||
""
}}
</div>
</div>
</div>
<div
class=
"exit"
@
click=
"$emit('exit')"
>
关闭
</div>
<div
class=
"exit"
@
click=
"$emit('exit')"
>
关闭
</div>
</div>
</div>
<div
class=
"nset_control_box_area"
>
<div
class=
"nset_control_box_area"
>
<div
class=
"wrj"
>
<div
class=
"wrj"
>
<div
class=
"w97 h110 item"
v-if=
"healthData.BAT"
>
<div
class=
"w97 h110 item"
v-if=
"healthData.BAT"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('智能电池', 'BAT')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('智能电池', 'BAT', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('智能电池', 'BAT')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('智能电池', 'BAT', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/cell.png"
/>
<img
src=
"./assets/images/cell.png"
/>
<span
class=
"dib"
>
智能电池
</span>
<span
class=
"dib"
>
智能电池
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.BAT && healthData.BAT.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.BAT.title.length
<
=
6
"
>
{{
healthData
.
BAT
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
BAT
.
title
}}
</marquee>
v-if=
"healthData.BAT && healthData.BAT.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.BAT.title.length
<
=
6
"
>
{{
healthData
.
BAT
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
BAT
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.RTK"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.RTK"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('RTK', 'RTK')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('RTK', 'RTK', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('RTK', 'RTK')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('RTK', 'RTK', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/rtk.png"
/>
<img
src=
"./assets/images/rtk.png"
/>
<span
class=
"dib"
>
RTK
</span>
<span
class=
"dib"
>
RTK
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.RTK && healthData.RTK.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.RTK.title.length
<
=
6
"
>
{{
healthData
.
RTK
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
RTK
.
title
}}
</marquee>
v-if=
"healthData.RTK && healthData.RTK.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.RTK.title.length
<
=
6
"
>
{{
healthData
.
RTK
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
RTK
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.GPS"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.GPS"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('GPS', 'GPS')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('GPS', 'GPS', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('GPS', 'GPS')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('GPS', 'GPS', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/gps.png"
/>
<img
src=
"./assets/images/gps.png"
/>
<span
class=
"dib"
>
GPS
</span>
<span
class=
"dib"
>
GPS
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.GPS && healthData.GPS.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.GPS.title.length
<
=
6
"
>
{{
healthData
.
GPS
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
GPS
.
title
}}
</marquee>
v-if=
"healthData.GPS && healthData.GPS.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.GPS.title.length
<
=
6
"
>
{{
healthData
.
GPS
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
GPS
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.OBS"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.OBS"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('避障', 'OBS')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('避障', 'OBS', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('避障', 'OBS')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('避障', 'OBS', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/obstacles.png"
/>
<img
src=
"./assets/images/obstacles.png"
/>
<span
class=
"dib"
>
避障
</span>
<span
class=
"dib"
>
避障
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.OBS && healthData.OBS.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.OBS.title.length
<
=
6
"
>
{{
healthData
.
OBS
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
OBS
.
title
}}
</marquee>
v-if=
"healthData.OBS && healthData.OBS.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.OBS.title.length
<
=
6
"
>
{{
healthData
.
OBS
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
OBS
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.VPN"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.VPN"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('公网', 'VPN')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('公网', 'VPN', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('公网', 'VPN')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('公网', 'VPN', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/public.png"
/>
<img
src=
"./assets/images/public.png"
/>
<span
class=
"dib"
>
公网
</span>
<span
class=
"dib"
>
公网
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.VPN && healthData.VPN.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.VPN.title.length
<
=
6
"
>
{{
healthData
.
VPN
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
VPN
.
title
}}
</marquee>
v-if=
"healthData.VPN && healthData.VPN.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.VPN.title.length
<
=
6
"
>
{{
healthData
.
VPN
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
VPN
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.SPE"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.SPE"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('专网', 'SPE')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('专网', 'SPE', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('专网', 'SPE')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('专网', 'SPE', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/pr.png"
/>
<img
src=
"./assets/images/pr.png"
/>
<span
class=
"dib"
>
专网
</span>
<span
class=
"dib"
>
专网
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.SPE && healthData.SPE.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.SPE.title.length
<
=
6
"
>
{{
healthData
.
SPE
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
SPE
.
title
}}
</marquee>
v-if=
"healthData.SPE && healthData.SPE.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.SPE.title.length
<
=
6
"
>
{{
healthData
.
SPE
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
SPE
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.CHUTE"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.CHUTE"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('降落伞', 'CHUTE')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('降落伞', 'CHUTE', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('降落伞', 'CHUTE')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('降落伞', 'CHUTE', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/san.png"
/>
<img
src=
"./assets/images/san.png"
/>
<span
class=
"dib"
>
降落伞
</span>
<span
class=
"dib"
>
降落伞
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"
<div
class=
"notice"
v-if=
"
healthData.CHUTE && healthData.CHUTE.warningLevel != 'NORMAL'
healthData.CHUTE && healthData.CHUTE.warningLevel != 'NORMAL'
"
>
"
<div
v-if=
"healthData.CHUTE.title.length
<
=
6
"
>
{{
healthData
.
CHUTE
.
title
}}
</div>
>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
CHUTE
.
title
}}
</marquee>
<div
v-if=
"healthData.CHUTE.title.length
<
=
6
"
>
{{
healthData
.
CHUTE
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
CHUTE
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.SPEAK"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.SPEAK"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('喊话器', 'SPEAK')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('喊话器', 'SPEAK', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('喊话器', 'SPEAK')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('喊话器', 'SPEAK', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/speak.png"
/>
<img
src=
"./assets/images/speak.png"
/>
<span
class=
"dib"
>
喊话器
</span>
<span
class=
"dib"
>
喊话器
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.SPEAK && healthData.SPEAK.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.SPEAK.title.length
<
=
6
"
>
{{
healthData
.
SPEAK
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
SPEAK
.
title
}}
</marquee>
v-if=
"
healthData.SPEAK && healthData.SPEAK.warningLevel != 'NORMAL'
"
>
<div
v-if=
"healthData.SPEAK.title.length
<
=
6
"
>
{{
healthData
.
SPEAK
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
SPEAK
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.NX"
>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.NX"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('NX', 'NX')"
style=
"cursor: pointer;"
/>
<img
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('NX', 'NX', true)"
/>
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('NX', 'NX')"
style=
"cursor: pointer"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417"
@
click=
"infoDetail('NX', 'NX', true)"
/>
<div
class=
"content"
>
<div
class=
"content"
>
<img
src=
"./assets/images/nx.png"
/>
<img
src=
"./assets/images/nx.png"
/>
<span
class=
"dib"
>
NX
</span>
<span
class=
"dib"
>
NX
</span>
</div>
</div>
<div
class=
"notice"
v-if=
"healthData.NX && healthData.NX.warningLevel != 'NORMAL'"
>
<div
<div
v-if=
"healthData.NX.title.length
<
=
6
"
>
{{
healthData
.
NX
.
title
}}
</div>
class=
"notice"
<marquee
v-else
direction=
"left"
>
{{
healthData
.
NX
.
title
}}
</marquee>
v-if=
"healthData.NX && healthData.NX.warningLevel != 'NORMAL'"
>
<div
v-if=
"healthData.NX.title.length
<
=
6
"
>
{{
healthData
.
NX
.
title
}}
</div>
<marquee
v-else
direction=
"left"
>
{{
healthData
.
NX
.
title
}}
</marquee>
</div>
</div>
<div
class=
"type"
v-else
>
正常
</div>
<div
class=
"type"
v-else
>
正常
</div>
</div>
</div>
...
@@ -144,7 +290,11 @@
...
@@ -144,7 +290,11 @@
<div
class=
"nest_info"
>
<div
class=
"nest_info"
>
<!--
<div
class=
"btn"
@
click=
"getInfoList"
>
异常记录
</div>
-->
<!--
<div
class=
"btn"
@
click=
"getInfoList"
>
异常记录
</div>
-->
<div
class=
"bat"
v-if=
"infoName == '智能电池'"
>
<div
class=
"bat"
v-if=
"infoName == '智能电池'"
>
<div
class=
"batteryList mt16"
v-for=
"item in batteryList"
:key=
"item.id"
>
<div
class=
"batteryList mt16"
v-for=
"item in batteryList"
:key=
"item.id"
>
<div
class=
"head"
>
<div
class=
"head"
>
<div
class=
"line"
></div>
<div
class=
"line"
></div>
<div
class=
"name"
v-if=
"item.id === 0"
>
普通电池
</div>
<div
class=
"name"
v-if=
"item.id === 0"
>
普通电池
</div>
...
@@ -156,11 +306,11 @@
...
@@ -156,11 +306,11 @@
<div
class=
"title"
>
电压:
</div>
<div
class=
"title"
>
电压:
</div>
<div
class=
"indo"
>
{{
item
.
voltage
.
toFixed
(
1
)
}}
V
</div>
<div
class=
"indo"
>
{{
item
.
voltage
.
toFixed
(
1
)
}}
V
</div>
</div>
</div>
<div
class=
"item
"
>
<div
class=
"item"
>
<div
class=
"title"
>
电流:
</div>
<div
class=
"title"
>
电流:
</div>
<div
class=
"indo"
>
{{
item
.
current
}}
A
</div>
<div
class=
"indo"
>
{{
item
.
current
}}
A
</div>
</div>
</div>
<div
class=
"item mr47
"
>
<div
class=
"item mr47"
>
<div
class=
"title"
>
温度:
</div>
<div
class=
"title"
>
温度:
</div>
<div
class=
"indo"
>
{{
item
.
temperature
}}
</div>
<div
class=
"indo"
>
{{
item
.
temperature
}}
</div>
</div>
</div>
...
@@ -182,45 +332,79 @@
...
@@ -182,45 +332,79 @@
<div
class=
"rtk"
v-else-if=
"infoName == 'RTK'"
>
<div
class=
"rtk"
v-else-if=
"infoName == 'RTK'"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
FIX状态:
</div>
<div
class=
"title"
>
FIX状态:
</div>
<div
class=
"ingps"
>
{{
healthData
.
RTK
&&
healthData
.
RTK
.
title
||
'暂无'
}}
</div>
<div
class=
"ingps"
>
{{
(
healthData
.
RTK
&&
healthData
.
RTK
.
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
</div>
<div
class=
"item mr100"
>
<div
class=
"title"
>
搜星数:
</div>
<div
class=
"title"
>
搜星数:
</div>
<div
class=
"inrtk"
>
{{
uavRealTimeData
.
rtk
&&
uavRealTimeData
.
rtk
.
satelliteCount
}}
</div>
<div
class=
"inrtk"
>
{{
uavRealTimeData
.
rtk
&&
uavRealTimeData
.
rtk
.
satelliteCount
}}
</div>
</div>
<div
class=
"item"
>
</div>
<div
class=
"item mt20"
>
<div
class=
"title"
>
定位精度:
</div>
<div
class=
"title"
>
定位精度:
</div>
<div
class=
"inrtk"
>
{{
uavRealTimeData
.
rtk
&&
uavRealTimeData
.
rtk
.
levelDivisor
}}
</div>
<div
class=
"inrtk"
>
{{
uavRealTimeData
.
rtk
&&
uavRealTimeData
.
rtk
.
levelDivisor
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"gps"
v-else-if=
"infoName == 'GPS'"
>
<div
class=
"gps"
v-else-if=
"infoName == 'GPS'"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
FIX状态:
</div>
<div
class=
"title"
>
FIX状态:
</div>
<div
class=
"ingps"
>
{{
healthData
.
GPS
&&
healthData
.
GPS
.
title
||
'暂无'
}}
</div>
<div
class=
"ingps"
>
{{
(
healthData
.
GPS
&&
healthData
.
GPS
.
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
</div>
<div
class=
"item mr100"
>
<div
class=
"title"
>
搜星数:
</div>
<div
class=
"title"
>
搜星数:
</div>
<div
class=
"ingps"
>
{{
uavRealTimeData
.
gps
&&
uavRealTimeData
.
gps
.
satelliteCount
||
'暂无'
}}
</div>
<div
class=
"ingps"
>
{{
(
uavRealTimeData
.
gps
&&
uavRealTimeData
.
gps
.
satelliteCount
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
</div>
<div
class=
"item mt20"
>
<div
class=
"title"
>
定位精度:
</div>
<div
class=
"title"
>
定位精度:
</div>
<div
class=
"ingps"
>
{{
uavRealTimeData
.
gps
&&
uavRealTimeData
.
gps
.
levelDivisor
||
'暂无'
}}
</div>
<div
class=
"ingps"
>
{{
(
uavRealTimeData
.
gps
&&
uavRealTimeData
.
gps
.
levelDivisor
)
||
"暂无"
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"public"
v-else-if=
"infoName == '专网'"
>
<div
class=
"public"
v-else-if=
"infoName == '专网'"
>
<div
class=
"pu"
>
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
专网信号质量:
</div>
<div
class=
"title"
>
专网信号质量:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
SPE
&&
healthData
.
SPE
.
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
SPE
&&
healthData
.
SPE
.
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.SPE
&&
warningLevel[healthData.SPE.warningLevel].color }">
<div
{{
healthData
.
SPE
&&
warningLevel
[
healthData
.
SPE
.
warningLevel
].
title
||
'暂无'
}}
</div>
class=
"inpublic"
:style=
"
{
color:
healthData.SPE
&&
warningLevel[healthData.SPE.warningLevel].color,
}"
>
{{
(
healthData
.
SPE
&&
warningLevel
[
healthData
.
SPE
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
SPE
&&
healthData
.
SPE
.
description
||
'暂无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
SPE
&&
healthData
.
SPE
.
description
)
||
"暂无"
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -229,16 +413,32 @@
...
@@ -229,16 +413,32 @@
<div
class=
"pr"
>
<div
class=
"pr"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
公网信号质量:
</div>
<div
class=
"title"
>
公网信号质量:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
VPN
&&
healthData
.
VPN
.
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
VPN
&&
healthData
.
VPN
.
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.VPN
&&
warningLevel[healthData.VPN.warningLevel].color }">
<div
{{
healthData
.
VPN
&&
warningLevel
[
healthData
.
VPN
.
warningLevel
].
title
||
'暂无'
}}
</div>
class=
"inpublic"
:style=
"
{
color:
healthData.VPN
&&
warningLevel[healthData.VPN.warningLevel].color,
}"
>
{{
(
healthData
.
VPN
&&
warningLevel
[
healthData
.
VPN
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
VPN
&&
healthData
.
VPN
.
description
||
'暂 无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
VPN
&&
healthData
.
VPN
.
description
)
||
"暂 无"
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -246,22 +446,44 @@
...
@@ -246,22 +446,44 @@
<div
class=
"pu"
>
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
避障状态:
</div>
<div
class=
"title"
>
避障状态:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
OBS
&&
healthData
.
OBS
.
title
||
'暂 无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
OBS
&&
healthData
.
OBS
.
title
)
||
"暂 无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.OBS
&&
warningLevel[healthData.OBS.warningLevel].color }">
{{
healthData
.
OBS
&&
warningLevel
[
healthData
.
OBS
.
warningLevel
].
title
||
'暂无'
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{
color:
healthData.OBS
&&
warningLevel[healthData.OBS.warningLevel].color,
}"
>
{{
(
healthData
.
OBS
&&
warningLevel
[
healthData
.
OBS
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item mt20"
>
<div
class=
"title"
>
是否触发:
</div>
<div
class=
"title"
>
是否触发:
</div>
<div
class=
"inpublic"
>
{{
uavRealTimeData
.
obstacles
&&
uavRealTimeData
.
obstacles
.
enable
?
'触发避障'
:
'未触发'
}}
</div>
<div
class=
"inpublic"
>
{{
uavRealTimeData
.
obstacles
&&
uavRealTimeData
.
obstacles
.
enable
?
"触发避障"
:
"未触发"
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"pr"
>
<div
class=
"pr"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inpr"
>
{{
healthData
.
OBS
&&
healthData
.
OBS
.
description
||
'暂 无'
}}
</div>
<div
class=
"inpr"
>
{{
(
healthData
.
OBS
&&
healthData
.
OBS
.
description
)
||
"暂 无"
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -269,19 +491,36 @@
...
@@ -269,19 +491,36 @@
<div
class=
"pu"
>
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
状态:
</div>
<div
class=
"title"
>
状态:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
CHUTE
&&
healthData
.
CHUTE
.
title
||
'暂 无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
CHUTE
&&
healthData
.
CHUTE
.
title
)
||
"暂 无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
<div
:style=
"
{ 'color': healthData.CHUTE
&&
warningLevel[healthData.CHUTE.warningLevel].color }">
class=
"inpublic"
{{
healthData
.
CHUTE
&&
warningLevel
[
healthData
.
CHUTE
.
warningLevel
].
title
||
'暂无'
}}
</div>
:style=
"
{
color:
healthData.CHUTE
&&
warningLevel[healthData.CHUTE.warningLevel].color,
}"
>
{{
(
healthData
.
CHUTE
&&
warningLevel
[
healthData
.
CHUTE
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"pr"
>
<div
class=
"pr"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inpr"
>
{{
healthData
.
CHUTE
&&
healthData
.
CHUTE
.
description
||
'暂 无'
}}
</div>
<div
class=
"inpr"
>
{{
(
healthData
.
CHUTE
&&
healthData
.
CHUTE
.
description
)
||
"暂 无"
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -289,35 +528,68 @@
...
@@ -289,35 +528,68 @@
<div
class=
"pu"
>
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
状态:
</div>
<div
class=
"title"
>
状态:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
SPEAK
&&
healthData
.
SPEAK
.
title
||
'暂 无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
SPEAK
&&
healthData
.
SPEAK
.
title
)
||
"暂 无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
<div
:style=
"
{ 'color': healthData.SPEAK
&&
warningLevel[healthData.SPEAK.warningLevel].color }">
class=
"inpublic"
{{
healthData
.
SPEAK
&&
warningLevel
[
healthData
.
SPEAK
.
warningLevel
].
title
||
'暂无'
}}
</div>
:style=
"
{
color:
healthData.SPEAK
&&
warningLevel[healthData.SPEAK.warningLevel].color,
}"
>
{{
(
healthData
.
SPEAK
&&
warningLevel
[
healthData
.
SPEAK
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"pr"
>
<div
class=
"pr"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inpr"
>
{{
healthData
.
SPEAK
&&
healthData
.
SPEAK
.
description
||
'暂 无'
}}
</div>
<div
class=
"inpr"
>
{{
(
healthData
.
SPEAK
&&
healthData
.
SPEAK
.
description
)
||
"暂 无"
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"rtk"
v-else-if=
"infoName == 'NX'"
>
<div
class=
"rtk"
v-else-if=
"infoName == 'NX'"
>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
NX状态:
</div>
<div
class=
"title"
>
NX状态:
</div>
<div
class=
"ingps"
>
{{
healthData
.
NX
&&
healthData
.
NX
.
title
||
'暂无'
}}
</div>
<div
class=
"ingps"
>
{{
(
healthData
.
NX
&&
healthData
.
NX
.
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
</div>
<div
class=
"item mt20"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.NX
&&
warningLevel[healthData.NX.warningLevel].color }">
<div
{{
healthData
.
NX
&&
warningLevel
[
healthData
.
NX
.
warningLevel
].
title
||
'暂无'
}}
</div>
class=
"inpublic"
:style=
"
{
color:
healthData.NX
&&
warningLevel[healthData.NX.warningLevel].color,
}"
>
{{
(
healthData
.
NX
&&
warningLevel
[
healthData
.
NX
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inrtk"
>
{{
healthData
.
NX
&&
healthData
.
NX
.
description
||
'暂无'
}}
</div>
<div
class=
"inrtk"
>
{{
(
healthData
.
NX
&&
healthData
.
NX
.
description
)
||
"暂无"
}}
</div>
</div>
</div>
</div>
</div>
<Logs
v-else
:type=
"type"
></Logs>
<Logs
v-else
:type=
"type"
></Logs>
...
@@ -413,7 +685,7 @@ export default {
...
@@ -413,7 +685,7 @@ export default {
message
:
{},
message
:
{},
};
};
},
},
beforeDestroy
()
{
},
beforeDestroy
()
{},
methods
:
{
methods
:
{
// flag 为true 代表展示异常信息
// flag 为true 代表展示异常信息
infoDetail
(
name
,
val
,
flag
)
{
infoDetail
(
name
,
val
,
flag
)
{
...
@@ -425,7 +697,7 @@ export default {
...
@@ -425,7 +697,7 @@ export default {
this
.
infoShow
=
false
;
this
.
infoShow
=
false
;
this
.
infoName
=
""
;
this
.
infoName
=
""
;
},
},
async
addMessage
()
{
},
async
addMessage
()
{},
},
},
mounted
()
{
mounted
()
{
console
.
log
(
this
.
healthData
,
"healthData"
);
console
.
log
(
this
.
healthData
,
"healthData"
);
...
@@ -465,12 +737,14 @@ export default {
...
@@ -465,12 +737,14 @@ export default {
color
:
#14faff
;
color
:
#14faff
;
line-height
:
26px
;
line-height
:
26px
;
text-shadow
:
0px
1px
1px
rgba
(
2
,
32
,
56
,
0.2
);
text-shadow
:
0px
1px
1px
rgba
(
2
,
32
,
56
,
0.2
);
background
:
linear-gradient
(
135deg
,
background
:
linear-gradient
(
135deg
,
#e3aa77
0%
,
#e3aa77
0%
,
#f5cda9
38%
,
#f5cda9
38%
,
#f9ecd3
58%
,
#f9ecd3
58%
,
#fcdbb1
79%
,
#fcdbb1
79%
,
#edb07a
100%
);
#edb07a
100%
);
-webkit-background-clip
:
text
;
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
-webkit-text-fill-color
:
transparent
;
}
}
...
@@ -487,7 +761,7 @@ export default {
...
@@ -487,7 +761,7 @@ export default {
.nset_control_box_area
{
.nset_control_box_area
{
.wrj
{
.wrj
{
height
:
2
58
px
;
height
:
2
40
px
;
padding
:
5px
;
padding
:
5px
;
overflow
:
auto
;
overflow
:
auto
;
display
:
flex
;
display
:
flex
;
...
@@ -498,7 +772,7 @@ export default {
...
@@ -498,7 +772,7 @@ export default {
column-gap
:
8px
;
column-gap
:
8px
;
.item
{
.item
{
position
:
relative
;
position
:
relative
;
background
:
#3
E3E3E
;
background
:
#3
e3e3e
;
background-size
:
100%
100%
;
background-size
:
100%
100%
;
box-shadow
:
0
0
5px
0
#0c1c47
;
box-shadow
:
0
0
5px
0
#0c1c47
;
border-radius
:
4.5px
;
border-radius
:
4.5px
;
...
@@ -514,7 +788,7 @@ export default {
...
@@ -514,7 +788,7 @@ export default {
background-size
:
100%
100%
;
background-size
:
100%
100%
;
}
}
>
img
{
>
img
{
position
:
absolute
;
position
:
absolute
;
right
:
3px
;
right
:
3px
;
top
:
3px
;
top
:
3px
;
...
@@ -529,7 +803,8 @@ export default {
...
@@ -529,7 +803,8 @@ export default {
align-items
:
center
;
align-items
:
center
;
margin-bottom
:
10px
;
margin-bottom
:
10px
;
img
{
}
img
{
}
.dib
{
.dib
{
margin-top
:
6px
;
margin-top
:
6px
;
...
@@ -652,7 +927,7 @@ export default {
...
@@ -652,7 +927,7 @@ export default {
margin-top
:
16px
;
margin-top
:
16px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
.item
{
.item
{
display
:
flex
;
display
:
flex
;
flex-wrap
:
nowrap
;
flex-wrap
:
nowrap
;
...
@@ -677,12 +952,13 @@ export default {
...
@@ -677,12 +952,13 @@ export default {
.public
{
.public
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
flex-wrap
:
wrap
;
.pu,
.pu,
.pr
{
.pr
{
margin-top
:
16px
;
margin-top
:
16px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
.item
{
.item
{
display
:
flex
;
display
:
flex
;
...
@@ -722,10 +998,12 @@ export default {
...
@@ -722,10 +998,12 @@ export default {
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
height
:
32px
;
height
:
32px
;
background
:
linear-gradient
(
180deg
,
background
:
linear-gradient
(
180deg
,
#9198ff
0%
,
#9198ff
0%
,
rgba
(
45
,
81
,
153
,
0.45
)
40%
,
rgba
(
45
,
81
,
153
,
0.45
)
40%
,
#05091a
100%
);
#05091a
100%
);
box-shadow
:
inset
0px
0px
10px
2px
#3f9dff
;
box-shadow
:
inset
0px
0px
10px
2px
#3f9dff
;
border-radius
:
10px
10px
0px
0px
;
border-radius
:
10px
10px
0px
0px
;
border
:
1px
solid
#427dff
;
border
:
1px
solid
#427dff
;
...
...
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlRight/index.vue
浏览文件 @
45f0968c
...
@@ -80,7 +80,7 @@ export default {
...
@@ -80,7 +80,7 @@ export default {
},
},
computed
:
{
computed
:
{
...
mapState
(
"MMCFlightControlCenter"
,
[
"showAirwayEdit"
]),
...
mapState
(
"MMCFlightControlCenter"
,
[
"showAirwayEdit"
]),
...
mapState
(
"MMCFlightControlCenter/uav"
,
[
"uav"
,
"airlineData"
]),
...
mapState
(
"MMCFlightControlCenter/uav"
,
[
"uav"
,
"airlineData"
,
'uavRealTimeData'
]),
},
},
watch
:
{
watch
:
{
// 打开航线编辑时关闭所有窗口
// 打开航线编辑时关闭所有窗口
...
@@ -96,6 +96,23 @@ export default {
...
@@ -96,6 +96,23 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
network
()
{
let
{
uavRealTimeData
}
=
this
;
let
name
=
null
;
if
(
uavRealTimeData
&&
uavRealTimeData
.
link
)
{
for
(
let
i
=
0
;
i
<
uavRealTimeData
.
link
.
length
;
i
++
)
{
const
k
=
uavRealTimeData
.
link
[
i
];
if
(
k
.
priority
==
2
&&
k
.
using
)
{
return
"专网"
;
}
else
if
(
k
.
priority
==
3
&&
k
.
using
)
{
return
"公网"
;
}
else
if
(
k
.
priority
==
1
&&
k
.
using
)
{
return
"图传"
;
}
}
}
return
name
||
"离线"
;
},
/**
/**
* 接管判断, 机库模块中不需要判断接管
* 接管判断, 机库模块中不需要判断接管
*/
*/
...
@@ -129,7 +146,8 @@ export default {
...
@@ -129,7 +146,8 @@ export default {
* 切换展示
* 切换展示
*/
*/
async
onSwitchShow
(
key
)
{
async
onSwitchShow
(
key
)
{
if
(
key
==
'showHealth'
&&
!
this
?.
uav
?.
isOnline
)
{
let
networkType
=
this
.
network
()
if
(
key
==
'showHealth'
&&
networkType
==
'离线'
)
{
return
this
.
$message
.
info
(
'无人机不在线!'
);
return
this
.
$message
.
info
(
'无人机不在线!'
);
}
}
// 判断是否已接管
// 判断是否已接管
...
...
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlTop/index.vue
浏览文件 @
45f0968c
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
<img
:src=
"gpsImg"
/>
<img
:src=
"gpsImg"
/>
</el-tooltip>
</el-tooltip>
<!-- 搜星数 -->
<!-- 搜星数 -->
<el-tooltip
class=
"item"
effect=
"dark"
content=
"搜星数"
placement=
"bottom"
>
<el-tooltip
class=
"item
"
effect=
"dark"
content=
"搜星数"
placement=
"bottom"
>
<div>
<div>
<img
src=
"./assets/images/satellite.png"
/>
<img
src=
"./assets/images/satellite.png"
/>
<div
class=
"s-count"
>
{{
satelliteCount
}}
</div>
<div
class=
"s-count"
>
{{
satelliteCount
}}
</div>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论