|
|
@ -284,63 +284,59 @@ const handleCloseAll = async () => { |
|
|
|
</el-main> |
|
|
|
</el-container> |
|
|
|
<el-footer class="footer"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="6"> |
|
|
|
<div class="ip-info"> |
|
|
|
IP : {{ deviceInfo.ip }} |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12" :class="systemStore?.systemLogList.length > 0 ? 'warning-border' : ''"> |
|
|
|
<div class="footer-left"> |
|
|
|
<img src="../assets/images/run.svg" alt="" style="padding-right: 5px"> |
|
|
|
<span v-if="!systemStore.systemLogList.length" class="text">设备运行状态</span> |
|
|
|
<el-popover v-else width="auto" trigger="click" placement="top"> |
|
|
|
<template #reference> |
|
|
|
<el-tag |
|
|
|
style="width: 100%" |
|
|
|
:type="statusMap[systemStore.systemLogList[0]?.status as keyof typeof statusMap].type" |
|
|
|
> |
|
|
|
{{ statusMap[systemStore.systemLogList[0]?.status as keyof typeof statusMap].name }}: |
|
|
|
{{ systemStore.systemLogList[0]?.name }} |
|
|
|
{{ systemStore.systemLogList[0]?.time }} |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
<template #default> |
|
|
|
<div class="log-box"> |
|
|
|
<div class="tag-box"> |
|
|
|
<el-tag |
|
|
|
v-for="(item, key) in systemStore.systemLogList" |
|
|
|
:key |
|
|
|
:type="statusMap[item?.status as keyof typeof statusMap].type" |
|
|
|
closable |
|
|
|
size="large" |
|
|
|
@close="handleClose(item, key)" |
|
|
|
> |
|
|
|
<div style="display: flex; justify-content: space-between; width: 100%"> |
|
|
|
<span> |
|
|
|
<span>{{ statusMap[item.status as keyof typeof statusMap].name }}: </span> |
|
|
|
<span>{{ item.name }}</span> |
|
|
|
</span> |
|
|
|
<span>{{ item.time }}</span> |
|
|
|
</div> |
|
|
|
</el-tag> |
|
|
|
</div> |
|
|
|
<div class="close-btn"> |
|
|
|
<el-button type="primary" @click="handleCloseAll"> |
|
|
|
清除所有 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div class="ip-info"> |
|
|
|
IP : {{ deviceInfo.ip }} |
|
|
|
</div> |
|
|
|
|
|
|
|
<div style="width: 50%" :class="systemStore?.systemLogList.length > 0 ? 'warning-border' : ''"> |
|
|
|
<div class="footer-left"> |
|
|
|
<img src="../assets/images/run.svg" alt="" style="padding-right: 5px"> |
|
|
|
<span v-if="!systemStore.systemLogList.length" class="text">设备运行状态</span> |
|
|
|
<el-popover v-else width="auto" trigger="click" placement="top"> |
|
|
|
<template #reference> |
|
|
|
<el-tag |
|
|
|
style="width: 100%" |
|
|
|
:type="statusMap[systemStore.systemLogList[0]?.status as keyof typeof statusMap].type" |
|
|
|
> |
|
|
|
{{ statusMap[systemStore.systemLogList[0]?.status as keyof typeof statusMap].name }}: |
|
|
|
{{ systemStore.systemLogList[0]?.name }} |
|
|
|
{{ systemStore.systemLogList[0]?.time }} |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
<template #default> |
|
|
|
<div class="log-box"> |
|
|
|
<div class="tag-box"> |
|
|
|
<el-tag |
|
|
|
v-for="(item, key) in systemStore.systemLogList" |
|
|
|
:key |
|
|
|
:type="statusMap[item?.status as keyof typeof statusMap].type" |
|
|
|
closable |
|
|
|
size="large" |
|
|
|
@close="handleClose(item, key)" |
|
|
|
> |
|
|
|
<div style="display: flex; justify-content: space-between; width: 100%"> |
|
|
|
<span> |
|
|
|
<span>{{ statusMap[item.status as keyof typeof statusMap].name }}: </span> |
|
|
|
<span>{{ item.name }}</span> |
|
|
|
</span> |
|
|
|
<span>{{ item.time }}</span> |
|
|
|
</div> |
|
|
|
</el-tag> |
|
|
|
</div> |
|
|
|
<div class="close-btn"> |
|
|
|
<el-button type="primary" @click="handleCloseAll"> |
|
|
|
清除所有 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-popover> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<div class="time"> |
|
|
|
{{ currentTime }} |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-popover> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="time"> |
|
|
|
{{ currentTime }} |
|
|
|
</div> |
|
|
|
</el-footer> |
|
|
|
<NetReconnection /> |
|
|
|
<!-- <ErrorEventsModal /> --> |
|
|
@ -364,12 +360,11 @@ const handleCloseAll = async () => { |
|
|
|
width: 100%; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
padding: 10px 15px; |
|
|
|
position: sticky; |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
.header { |
|
|
|
color: #393f46; |
|
|
|
box-shadow: 0px 1px 5px 0px rgba(9, 39, 62, 0.15); |
|
|
|
box-shadow: 0 1px 5px 0 rgba(9, 39, 62, 0.15); |
|
|
|
display: flex; |
|
|
|
padding: 0 10px; |
|
|
|
justify-content: center; |
|
|
|