|
|
@@ -14,38 +14,54 @@
|
|
|
</div>
|
|
|
<div class="content-info">
|
|
|
<div class="content-info-left">
|
|
|
- <div class="content-info-left-one">
|
|
|
- {{ dock.gateway.callsign }} - {{ dock.callsign }}
|
|
|
+ <div class="content-info-left-style">
|
|
|
+ <div class="content-info-left-style-title">
|
|
|
+ {{ dock.gateway.callsign }} - {{ dock.callsign }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="content-info-left-two">
|
|
|
- <div class="content-info-left-two-info">
|
|
|
- <img class="content-info-left-three-info-icon" :src="aircraftSrc">
|
|
|
- <div class="content-info-left-two-info-text">
|
|
|
- <span class="scrollable-text">
|
|
|
- {{ getTextByModeCode(deviceInfo[dock.sn] ? deviceInfo[dock.sn].mode_code : EModeCode.Disconnected) }}
|
|
|
- </span>
|
|
|
+ <div class="content-info-left-style">
|
|
|
+ <div class="content-info-left-style-info">
|
|
|
+ <img class="content-info-left-style-info-icon" :src="aircraftSrc">
|
|
|
+ <div class="content-info-left-style-info-text"
|
|
|
+ :style="deviceInfo[dock.sn] && deviceInfo[dock.sn].mode_code !== EModeCode.Disconnected ? 'color:#00EE8B' : 'color:red'">
|
|
|
+ {{ getTextByModeCode(deviceInfo[dock.sn] ? deviceInfo[dock.sn].mode_code : EModeCode.Disconnected) }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content-info-left-two-other">
|
|
|
+ <div :class="[
|
|
|
+ 'content-info-left-style-other',
|
|
|
+ hmsInfo[dock.sn] && hmsInfo[dock.sn][0].level === 0 ? 'notice' : '',
|
|
|
+ hmsInfo[dock.sn] && hmsInfo[dock.sn][0].level === 1 ? 'caution' : '',
|
|
|
+ hmsInfo[dock.sn] && hmsInfo[dock.sn][0].level === 2 ? 'warn' : '',
|
|
|
+ ]">
|
|
|
<div v-if="aircraftLogInfo">
|
|
|
- {{ aircraftLogInfo }}
|
|
|
+ <span class="word-loop">
|
|
|
+ {{ aircraftLogInfo }}
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
N/A
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content-info-left-three">
|
|
|
- <div class="content-info-left-three-info">
|
|
|
- <img class="content-info-left-three-info-icon" :src="dockSrc">
|
|
|
- <div class="content-info-left-three-info-text">
|
|
|
+ <div class="content-info-left-style">
|
|
|
+ <div class="content-info-left-style-info">
|
|
|
+ <img class="content-info-left-style-info-icon" :src="dockSrc">
|
|
|
+ <div class="content-info-left-style-info-text"
|
|
|
+ :style="dockInfo[dock.gateway.sn] && dockInfo[dock.gateway.sn].basic_osd?.mode_code !== EDockModeCode.Disconnected ? 'color:#00EE8B' : 'color:red'">
|
|
|
{{ getTextByDockModeCode(dockInfo[dock.gateway.sn] ? dockInfo[dock.gateway.sn].basic_osd?.mode_code
|
|
|
: EDockModeCode.Disconnected) }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="content-info-left-three-other">
|
|
|
+ <div :class="[
|
|
|
+ 'content-info-left-style-other',
|
|
|
+ hmsInfo[dock.gateway.sn] && hmsInfo[dock.gateway.sn][0].level === 0 ? 'notice' : '',
|
|
|
+ hmsInfo[dock.gateway.sn] && hmsInfo[dock.gateway.sn][0].level === 1 ? 'caution' : '',
|
|
|
+ hmsInfo[dock.gateway.sn] && hmsInfo[dock.gateway.sn][0].level === 2 ? 'warn' : '',
|
|
|
+ ]">
|
|
|
<div v-if="hangarLogInfo">
|
|
|
- {{ hangarLogInfo }}
|
|
|
+ <span class="word-loop">
|
|
|
+ {{ hangarLogInfo }}
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
N/A
|
|
|
@@ -90,15 +106,16 @@ const root: any = getRoot()
|
|
|
|
|
|
const store = useMyStore()
|
|
|
|
|
|
-const deviceInfo = computed(() => store.state.deviceState.deviceInfo)
|
|
|
-const dockInfo = computed(() => store.state.deviceState.dockInfo)
|
|
|
+const deviceInfo = computed(() => store.state.deviceState.deviceInfo);
|
|
|
+const dockInfo = computed(() => store.state.deviceState.dockInfo);
|
|
|
+const hmsInfo = computed(() => store.state.hmsInfo);
|
|
|
|
|
|
// 飞行器告警信息
|
|
|
const aircraftLogInfo = computed(() => {
|
|
|
- const hmsList = store.state.hmsInfo[props.dock.sn] || [];
|
|
|
- const hmsInfo = hmsList[hmsList.length - 1];
|
|
|
- if (hmsInfo) {
|
|
|
- return hmsInfo.message_zh;
|
|
|
+ const hmsList = hmsInfo.value[props.dock.sn] || [];
|
|
|
+ const info = hmsList[0];
|
|
|
+ if (info) {
|
|
|
+ return info.message_zh;
|
|
|
} else {
|
|
|
return ''
|
|
|
}
|
|
|
@@ -106,10 +123,10 @@ const aircraftLogInfo = computed(() => {
|
|
|
|
|
|
// 机库告警信息
|
|
|
const hangarLogInfo = computed(() => {
|
|
|
- const hmsList = store.state.hmsInfo[props.dock.gateway.sn] || [];
|
|
|
- const hmsInfo = hmsList[hmsList.length - 1];
|
|
|
- if (hmsInfo) {
|
|
|
- return hmsInfo.message_zh;
|
|
|
+ const hmsList = hmsInfo.value[props.dock.gateway.sn] || [];
|
|
|
+ const info = hmsList[0];
|
|
|
+ if (info) {
|
|
|
+ return info.message_zh;
|
|
|
} else {
|
|
|
return ''
|
|
|
}
|
|
|
@@ -142,7 +159,7 @@ const onClickLocation = () => {
|
|
|
align-items: center;
|
|
|
|
|
|
&-left {
|
|
|
- width: 80px;
|
|
|
+ width: 105px;
|
|
|
height: 100%;
|
|
|
padding-left: 5px;
|
|
|
background: #4d4d4d;
|
|
|
@@ -169,54 +186,21 @@ const onClickLocation = () => {
|
|
|
padding: 5px;
|
|
|
font-size: 12px;
|
|
|
|
|
|
- &-one {
|
|
|
- width: 100%;
|
|
|
- height: 24px;
|
|
|
- }
|
|
|
-
|
|
|
- &-two {
|
|
|
+ &-style {
|
|
|
width: 100%;
|
|
|
height: 24px;
|
|
|
display: flex;
|
|
|
margin-bottom: 5px;
|
|
|
|
|
|
- &-info {
|
|
|
- width: 75px;
|
|
|
- padding-left: 5px;
|
|
|
- background: #3d3d3d;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- &-icon {
|
|
|
- width: 14px;
|
|
|
- height: 14px;
|
|
|
- margin-right: 5px;
|
|
|
- }
|
|
|
-
|
|
|
- &-text {
|
|
|
- width: 50px;
|
|
|
- white-space: nowrap;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- &-other {
|
|
|
- width: calc(100% - 75px);
|
|
|
- padding-left: 5px;
|
|
|
- background: #4a4d4e;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
+ &-title {
|
|
|
+ font-size: 13px;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- &-three {
|
|
|
- width: 100%;
|
|
|
- height: 24px;
|
|
|
- display: flex;
|
|
|
- margin-bottom: 5px;
|
|
|
|
|
|
&-info {
|
|
|
- width: 75px;
|
|
|
+ width: 100px;
|
|
|
padding-left: 5px;
|
|
|
background: #3d3d3d;
|
|
|
display: flex;
|
|
|
@@ -236,13 +220,18 @@ const onClickLocation = () => {
|
|
|
}
|
|
|
|
|
|
&-other {
|
|
|
- width: calc(100% - 75px);
|
|
|
+ width: calc(100% - 100px);
|
|
|
padding-left: 5px;
|
|
|
background: #4a4d4e;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ overflow: hidden;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ &-style:first-child {
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
&-right {
|
|
|
@@ -258,21 +247,35 @@ const onClickLocation = () => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- .scrollable-text {
|
|
|
- width: 100%;
|
|
|
- display: inline-block;
|
|
|
- animation: scroll-left 5s linear infinite;
|
|
|
+.notice {
|
|
|
+ background: $success;
|
|
|
+}
|
|
|
|
|
|
- @keyframes scroll-left {
|
|
|
- 0% {
|
|
|
- transform: translateX(100%);
|
|
|
- }
|
|
|
+.caution {
|
|
|
+ background: orange;
|
|
|
+}
|
|
|
|
|
|
- 100% {
|
|
|
- transform: translateX(-100%);
|
|
|
- }
|
|
|
- }
|
|
|
+.warn {
|
|
|
+ background: red;
|
|
|
+}
|
|
|
+
|
|
|
+.word-loop {
|
|
|
+ white-space: nowrap;
|
|
|
+ display: inline-block;
|
|
|
+ animation: 5s loop linear infinite normal;
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes loop {
|
|
|
+ 0% {
|
|
|
+ transform: translateX(20px);
|
|
|
+ -webkit-transform: translateX(20px);
|
|
|
+ }
|
|
|
+
|
|
|
+ 100% {
|
|
|
+ transform: translateX(-100%);
|
|
|
+ -webkit-transform: translateX(-100%);
|
|
|
}
|
|
|
}
|
|
|
</style>
|