Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mmc-stl-vue2
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
mmc-stl-vue2
Commits
55434a7e
提交
55434a7e
authored
12月 31, 2024
作者:
温凯
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v4_master'
上级
ae79d09c
a563d6c9
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
420 行增加
和
114 行删除
+420
-114
uav_control.js
...ponents/MMCFlightControlCenter/api/modules/uav_control.js
+1
-1
index.vue
...eft/components/airwayList/components/periodTask/index.vue
+1
-0
index.vue
...Left/components/airwayList/components/timedTask/index.vue
+1
-0
index.vue
...Panel/components/controlRight/components/health/index.vue
+379
-104
index.vue
...components/controlPanel/components/controlRight/index.vue
+22
-4
takeOverRecords.vue
...anel/components/controlTop/components/takeOverRecords.vue
+15
-4
index.vue
...s/components/controlPanel/components/controlTop/index.vue
+1
-1
没有找到文件。
src/components/MMCFlightControlCenter/api/modules/uav_control.js
浏览文件 @
55434a7e
...
...
@@ -49,7 +49,7 @@ class Control_API {
// 接管无人机
static
setUavControlOn
(
params
)
{
return
request
({
url
:
`/admin-api/uas/device-take/
controlUav
`
,
url
:
`/admin-api/uas/device-take/
updateCurrentOperator
`
,
method
:
'post'
,
params
});
...
...
src/components/MMCFlightControlCenter/components/hangar/components/controlPanel/components/controlLeft/components/airwayList/components/periodTask/index.vue
浏览文件 @
55434a7e
...
...
@@ -107,6 +107,7 @@ export default {
console
.
log
(
"getTaskList"
,
this
.
taskListAll
);
this
.
rootNode
.
$emit
(
"taskListGet"
,
{
pageNo
:
1
,
taskStatus
:
11
,
//筛选掉审核未通过的
pageSize
:
100
,
type
:
3
,
// 1: 日常任务 2: 定时任务 3:周期任务
hangar
:
this
.
hangar
,
...
...
src/components/MMCFlightControlCenter/components/hangar/components/controlPanel/components/controlLeft/components/airwayList/components/timedTask/index.vue
浏览文件 @
55434a7e
...
...
@@ -112,6 +112,7 @@ export default {
this
.
rootNode
.
$emit
(
"taskListGet"
,
{
pageNo
:
1
,
pageSize
:
100
,
taskStatus
:
11
,
//筛选掉审核未通过的
type
:
2
,
// 1: 日常任务 2: 定时任务 3:周期任务
hangar
:
this
.
hangar
,
callback
:
(
res
)
=>
{
...
...
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlRight/components/health/index.vue
浏览文件 @
55434a7e
...
...
@@ -4,129 +4,275 @@
<div
class=
"nset_control_box_header"
>
<div
class=
"title ml10"
>
<img
src=
"../../assets/images/mount_head.png"
/>
<div
class=
"font"
>
{{
uav
&&
uav
.
name
||
""
}}
</div>
<div
class=
"font"
>
{{
(
uav
&&
uav
.
name
)
||
""
}}
</div>
</div>
<div
class=
"exit"
@
click=
"$emit('exit')"
>
关闭
</div>
</div>
<div
class=
"nset_control_box_area"
>
<div
class=
"wrj"
>
<div
class=
"w97 h110 item"
v-if=
"healthData.BAT"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('智能电池', 'BAT')"
style=
"cursor: pointer;"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('智能电池', 'BAT', true)"
/>
<img
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"
>
<img
src=
"./assets/images/cell.png"
/>
<span
class=
"dib"
>
智能电池
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.RTK"
>
<img
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)"
/>
<img
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"
>
<img
src=
"./assets/images/rtk.png"
/>
<span
class=
"dib"
>
RTK
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.GPS"
>
<img
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)"
/>
<img
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"
>
<img
src=
"./assets/images/gps.png"
/>
<span
class=
"dib"
>
GPS
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.OBS"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('避障', 'OBS')"
style=
"cursor: pointer;"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('避障', 'OBS', true)"
/>
<img
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"
>
<img
src=
"./assets/images/obstacles.png"
/>
<span
class=
"dib"
>
避障
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.VPN"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('公网', 'VPN')"
style=
"cursor: pointer;"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('公网', 'VPN', true)"
/>
<img
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"
>
<img
src=
"./assets/images/public.png"
/>
<span
class=
"dib"
>
公网
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.SPE"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('专网', 'SPE')"
style=
"cursor: pointer;"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('专网', 'SPE', true)"
/>
<img
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"
>
<img
src=
"./assets/images/pr.png"
/>
<span
class=
"dib"
>
专网
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.CHUTE"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('降落伞', 'CHUTE')"
style=
"cursor: pointer;"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('降落伞', 'CHUTE', true)"
/>
<img
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"
>
<img
src=
"./assets/images/san.png"
/>
<span
class=
"dib"
>
降落伞
</span>
</div>
<div
class=
"notice"
v-if=
"
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
class=
"notice"
v-if=
"
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>
<div
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.SPEAK"
>
<img
src=
"./assets/images/info.png"
alt
@
click=
"infoDetail('喊话器', 'SPEAK')"
style=
"cursor: pointer;"
/>
<div
class=
"iconfont icon-chuli"
style=
"color: #ffe417;"
@
click=
"infoDetail('喊话器', 'SPEAK', true)"
/>
<img
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"
>
<img
src=
"./assets/images/speak.png"
/>
<span
class=
"dib"
>
喊话器
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
<div
class=
"w97 h110 item cp"
v-if=
"healthData.NX"
>
<img
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)"
/>
<img
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"
>
<img
src=
"./assets/images/nx.png"
/>
<span
class=
"dib"
>
NX
</span>
</div>
<div
class=
"notice"
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
class=
"notice"
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
class=
"type"
v-else
>
正常
</div>
</div>
...
...
@@ -144,7 +290,11 @@
<div
class=
"nest_info"
>
<!--
<div
class=
"btn"
@
click=
"getInfoList"
>
异常记录
</div>
-->
<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=
"line"
></div>
<div
class=
"name"
v-if=
"item.id === 0"
>
普通电池
</div>
...
...
@@ -156,11 +306,11 @@
<div
class=
"title"
>
电压:
</div>
<div
class=
"indo"
>
{{
item
.
voltage
.
toFixed
(
1
)
}}
V
</div>
</div>
<div
class=
"item
ml83
"
>
<div
class=
"item"
>
<div
class=
"title"
>
电流:
</div>
<div
class=
"indo"
>
{{
item
.
current
}}
A
</div>
</div>
<div
class=
"item m
l83
"
>
<div
class=
"item m
r47
"
>
<div
class=
"title"
>
温度:
</div>
<div
class=
"indo"
>
{{
item
.
temperature
}}
</div>
</div>
...
...
@@ -182,45 +332,79 @@
<div
class=
"rtk"
v-else-if=
"infoName == 'RTK'"
>
<div
class=
"item"
>
<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
class=
"item
mr100
"
>
<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
class=
"item
mt20
"
>
<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
class=
"gps"
v-else-if=
"infoName == 'GPS'"
>
<div
class=
"item"
>
<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
class=
"item
mr100
"
>
<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
class=
"item
mt20
"
>
<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
class=
"public"
v-else-if=
"infoName == '专网'"
>
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"title"
>
专网信号质量:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
SPE
&&
healthData
.
SPE
.
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
SPE
&&
healthData
.
SPE
.
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.SPE
&&
warningLevel[healthData.SPE.warningLevel].color }">
{{
healthData
.
SPE
&&
warningLevel
[
healthData
.
SPE
.
warningLevel
].
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
:style=
"
{
color:
healthData.SPE
&&
warningLevel[healthData.SPE.warningLevel].color,
}"
>
{{
(
healthData
.
SPE
&&
warningLevel
[
healthData
.
SPE
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
<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>
...
...
@@ -229,16 +413,32 @@
<div
class=
"pr"
>
<div
class=
"item"
>
<div
class=
"title"
>
公网信号质量:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
VPN
&&
healthData
.
VPN
.
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
VPN
&&
healthData
.
VPN
.
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.VPN
&&
warningLevel[healthData.VPN.warningLevel].color }">
{{
healthData
.
VPN
&&
warningLevel
[
healthData
.
VPN
.
warningLevel
].
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
:style=
"
{
color:
healthData.VPN
&&
warningLevel[healthData.VPN.warningLevel].color,
}"
>
{{
(
healthData
.
VPN
&&
warningLevel
[
healthData
.
VPN
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
<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>
...
...
@@ -246,22 +446,44 @@
<div
class=
"pu"
>
<div
class=
"item"
>
<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
class=
"inpublic"
:style=
"
{
color:
healthData.OBS
&&
warningLevel[healthData.OBS.warningLevel].color,
}"
>
{{
(
healthData
.
OBS
&&
warningLevel
[
healthData
.
OBS
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"item
mt20
"
>
<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
class=
"pr"
>
<div
class=
"item"
>
<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>
...
...
@@ -269,19 +491,36 @@
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"title"
>
状态:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
CHUTE
&&
healthData
.
CHUTE
.
title
||
'暂 无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
CHUTE
&&
healthData
.
CHUTE
.
title
)
||
"暂 无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.CHUTE
&&
warningLevel[healthData.CHUTE.warningLevel].color }">
{{
healthData
.
CHUTE
&&
warningLevel
[
healthData
.
CHUTE
.
warningLevel
].
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
:style=
"
{
color:
healthData.CHUTE
&&
warningLevel[healthData.CHUTE.warningLevel].color,
}"
>
{{
(
healthData
.
CHUTE
&&
warningLevel
[
healthData
.
CHUTE
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"pr"
>
<div
class=
"item"
>
<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>
...
...
@@ -289,35 +528,68 @@
<div
class=
"pu"
>
<div
class=
"item"
>
<div
class=
"title"
>
状态:
</div>
<div
class=
"inpublic"
>
{{
healthData
.
SPEAK
&&
healthData
.
SPEAK
.
title
||
'暂 无'
}}
</div>
<div
class=
"inpublic"
>
{{
(
healthData
.
SPEAK
&&
healthData
.
SPEAK
.
title
)
||
"暂 无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.SPEAK
&&
warningLevel[healthData.SPEAK.warningLevel].color }">
{{
healthData
.
SPEAK
&&
warningLevel
[
healthData
.
SPEAK
.
warningLevel
].
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
:style=
"
{
color:
healthData.SPEAK
&&
warningLevel[healthData.SPEAK.warningLevel].color,
}"
>
{{
(
healthData
.
SPEAK
&&
warningLevel
[
healthData
.
SPEAK
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
</div>
<div
class=
"pr"
>
<div
class=
"item"
>
<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
class=
"rtk"
v-else-if=
"infoName == 'NX'"
>
<div
class=
"item"
>
<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
class=
"item
mt20
"
>
<div
class=
"title"
>
消息类型:
</div>
<div
class=
"inpublic"
:style=
"
{ 'color': healthData.NX
&&
warningLevel[healthData.NX.warningLevel].color }">
{{
healthData
.
NX
&&
warningLevel
[
healthData
.
NX
.
warningLevel
].
title
||
'暂无'
}}
</div>
<div
class=
"inpublic"
:style=
"
{
color:
healthData.NX
&&
warningLevel[healthData.NX.warningLevel].color,
}"
>
{{
(
healthData
.
NX
&&
warningLevel
[
healthData
.
NX
.
warningLevel
].
title
)
||
"暂无"
}}
</div>
</div>
<div
class=
"item"
>
<div
class=
"title"
>
描述:
</div>
<div
class=
"inrtk"
>
{{
healthData
.
NX
&&
healthData
.
NX
.
description
||
'暂无'
}}
</div>
<div
class=
"inrtk"
>
{{
(
healthData
.
NX
&&
healthData
.
NX
.
description
)
||
"暂无"
}}
</div>
</div>
</div>
<Logs
v-else
:type=
"type"
></Logs>
...
...
@@ -413,7 +685,6 @@ export default {
message
:
{},
};
},
beforeDestroy
()
{
},
methods
:
{
// flag 为true 代表展示异常信息
infoDetail
(
name
,
val
,
flag
)
{
...
...
@@ -444,7 +715,7 @@ export default {
top
:
-54px
;
/* top: calc(50% - 14px); */
bottom
:
auto
!important
;
width
:
47
0px
;
width
:
39
0px
;
.nset_control_box_header
{
display
:
flex
;
...
...
@@ -487,23 +758,25 @@ export default {
.nset_control_box_area
{
.wrj
{
height
:
258px
;
height
:
240px
;
padding
:
5px
;
overflow
:
auto
;
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-around
;
margin-top
:
10px
;
justify-content
:
stretch
;
margin-top
:
0
;
row-gap
:
8px
;
column-gap
:
8px
;
.item
{
position
:
relative
;
background
:
#3
E3E3E
;
background
:
#3
e3e3e
;
background-size
:
100%
100%
;
box-shadow
:
0
0
5px
0
#0c1c47
;
border-radius
:
4.5px
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
flex
:
0
0
calc
(
33.33%
-
32
px
);
flex
:
0
0
calc
(
33.33%
-
6
px
);
/* 32px是左右padding的总和 */
height
:
110px
;
...
...
@@ -512,7 +785,7 @@ export default {
background-size
:
100%
100%
;
}
>
img
{
>
img
{
position
:
absolute
;
right
:
3px
;
top
:
3px
;
...
...
@@ -527,7 +800,8 @@ export default {
align-items
:
center
;
margin-bottom
:
10px
;
img
{
}
img
{
}
.dib
{
margin-top
:
6px
;
...
...
@@ -627,7 +901,7 @@ export default {
.item
{
display
:
flex
;
flex-wrap
:
nowrap
;
flex
:
1
;
.title
{
white-space
:
nowrap
;
font-size
:
14px
;
...
...
@@ -650,7 +924,7 @@ export default {
margin-top
:
16px
;
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
.item
{
display
:
flex
;
flex-wrap
:
nowrap
;
...
...
@@ -675,12 +949,13 @@ export default {
.public
{
display
:
flex
;
flex-direction
:
column
;
flex-wrap
:
wrap
;
.pu,
.pr
{
margin-top
:
16px
;
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
.item
{
display
:
flex
;
...
...
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlRight/index.vue
浏览文件 @
55434a7e
...
...
@@ -30,7 +30,7 @@
<ControlList
@
clearId=
"$emit('clearId')"
@
closeIconShow=
"iconShow = false"
@
exit=
"showControlList = false"
:show=
"showControlList"
:isHangar=
"isHangar"
></ControlList>
<Health
v-if=
"showHealth"
@
exit=
"showHealth = false"
></Health>
<Mount
v-if=
"showMount"
:isHangar=
"isHangar"
:show=
"showMount"
></Mount>
<Mount
v-if=
"showMount"
:isHangar=
"isHangar"
:show=
"showMount"
></Mount>
<!-- 喊话器 -->
<MMCGimbalP1
class=
"PagerP1"
v-show=
"showMMCGimbalP1"
ref=
"MMCGimbalP1"
@
close=
"showMMCGimbalP1 = false"
/>
<MountController
@
webscoketFn=
"(data) => fun(data)"
v-if=
"uav && uav.deviceId"
ref=
"MountControllerRef"
/>
...
...
@@ -80,7 +80,7 @@ export default {
},
computed
:
{
...
mapState
(
"MMCFlightControlCenter"
,
[
"showAirwayEdit"
]),
...
mapState
(
"MMCFlightControlCenter/uav"
,
[
"uav"
,
"airlineData"
]),
...
mapState
(
"MMCFlightControlCenter/uav"
,
[
"uav"
,
"airlineData"
,
'uavRealTimeData'
]),
},
watch
:
{
// 打开航线编辑时关闭所有窗口
...
...
@@ -96,6 +96,23 @@ export default {
}
},
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
||
"离线"
;
},
/**
* 接管判断, 机库模块中不需要判断接管
*/
...
...
@@ -128,8 +145,9 @@ export default {
/**
* 切换展示
*/
async
onSwitchShow
(
key
)
{
if
(
key
==
'showHealth'
&&
!
this
?.
uav
?.
isOnline
)
{
async
onSwitchShow
(
key
)
{
let
networkType
=
this
.
network
()
if
(
key
==
'showHealth'
&&
networkType
==
'离线'
)
{
return
this
.
$message
.
info
(
'无人机不在线!'
);
}
// 判断是否已接管
...
...
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlTop/components/takeOverRecords.vue
浏览文件 @
55434a7e
...
...
@@ -11,17 +11,19 @@
<el-table-column
:label=
"`$
{hangar ? '机库' : '无人机'}所属单位`" align="center" prop="deviceDeptName">
</el-table-column>
<el-table-column
label=
"接管状态"
align=
"center"
prop=
"takeStats"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
takeStats
?
'接管中'
:
'未接管'
}}
<div
:class=
"scope.row.takeStats ?'color-aqua':'color-tomato'"
>
{{
scope
.
row
.
takeStats
?
'接管中'
:
'未接管'
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"当前控制单位"
align=
"center"
prop=
"takeUserName"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
prop=
"name"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"onExit(scope.row)"
type=
"text"
size=
"small"
v-if=
"scope.row.takeStats"
>
退出接管
</el-button
>
<el-button
clas
@
click=
"onExit(scope.row)"
type=
"text"
class=
"color-aqua"
size=
"small"
v-if=
"scope.row.takeStats"
>
退出接管
</el-buttonclas
>
</
template
>
</el-table-column>
</el-table>
</div>
</el-table>
</div>
<el-pagination
layout=
"prev, pager, next"
:total=
"page.total"
...
...
@@ -105,4 +107,12 @@ export default {
}
}
}
.dialog-content
{
.color-aqua{
color
:
aqua
;
}
.color-tomato
{
color
:
#ff993f
;
}
}
</
style
>
\ No newline at end of file
src/components/MMCFlightControlCenter/components/uavApplications/components/controlPanel/components/controlTop/index.vue
浏览文件 @
55434a7e
...
...
@@ -53,7 +53,7 @@
<img
:src=
"gpsImg"
/>
</el-tooltip>
<!-- 搜星数 -->
<el-tooltip
class=
"item"
effect=
"dark"
content=
"搜星数"
placement=
"bottom"
>
<el-tooltip
class=
"item
"
effect=
"dark"
content=
"搜星数"
placement=
"bottom"
>
<div>
<img
src=
"./assets/images/satellite.png"
/>
<div
class=
"s-count"
>
{{
satelliteCount
}}
</div>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论