提交 55434a7e 作者: 温凯

Merge branch 'v4_master'

......@@ -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
});
......
......@@ -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,
......
......@@ -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) => {
......
......@@ -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 ml83">
<div class="item mr47">
<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: 470px;
width: 390px;
.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: #3E3E3E;
background: #3e3e3e;
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% - 32px);
flex: 0 0 calc(33.33% - 6px);
/* 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;
......
......@@ -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('无人机不在线!');
}
// 判断是否已接管
......
......@@ -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-buttonclas @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
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论