|
@@ -1,22 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<customHeader>预警历史监控系统</customHeader>
|
|
<customHeader>预警历史监控系统</customHeader>
|
|
- <div class="data-statistics">
|
|
|
|
- <div class="statistics-box" v-for="(item, index) in statisticsList" :key="index">
|
|
|
|
- <div class="left-box">
|
|
|
|
- <div class="box-title">{{ item.title }}</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="right-box">
|
|
|
|
- <div class="box-text">
|
|
|
|
- <div class="text-label">监测数量</div>
|
|
|
|
- <div class="text-value">{{ item.valueT }}</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="warning-state box-text">
|
|
|
|
- <div class="text-label">预警状态</div>
|
|
|
|
- <div class="text-value">{{ item.valueB }}</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+
|
|
<a-tabs class="tab-box" v-model:activeKey="activeKey" @change="onChangeTab">
|
|
<a-tabs class="tab-box" v-model:activeKey="activeKey" @change="onChangeTab">
|
|
<a-tab-pane tab="设备预警历史" key="device" />
|
|
<a-tab-pane tab="设备预警历史" key="device" />
|
|
<a-tab-pane tab="联动预警历史" key="manageAuto" />
|
|
<a-tab-pane tab="联动预警历史" key="manageAuto" />
|
|
@@ -24,7 +8,7 @@
|
|
</a-tabs>
|
|
</a-tabs>
|
|
<div class="alarm-history-table">
|
|
<div class="alarm-history-table">
|
|
<template v-if="activeKey == 'device'">
|
|
<template v-if="activeKey == 'device'">
|
|
- <BasicTable ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 350 }">
|
|
|
|
|
|
+ <BasicTable ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 600 }">
|
|
<template #form-onExportXls>
|
|
<template #form-onExportXls>
|
|
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()"> 导出</a-button>
|
|
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()"> 导出</a-button>
|
|
</template>
|
|
</template>
|
|
@@ -43,7 +27,7 @@
|
|
</BasicTable>
|
|
</BasicTable>
|
|
</template>
|
|
</template>
|
|
<template v-if="activeKey == 'manageAuto'">
|
|
<template v-if="activeKey == 'manageAuto'">
|
|
- <BasicTable ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 350 }">
|
|
|
|
|
|
+ <BasicTable ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 600 }">
|
|
<template #form-onExportXls>
|
|
<template #form-onExportXls>
|
|
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()"> 导出</a-button>
|
|
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()"> 导出</a-button>
|
|
</template>
|
|
</template>
|
|
@@ -77,9 +61,8 @@ import { useListPage } from '/@/hooks/system/useListPage';
|
|
import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
|
|
import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
|
|
import { manageAutoColumns } from './alarm.data';
|
|
import { manageAutoColumns } from './alarm.data';
|
|
import { getAutoScrollContainer } from '/@/utils/common/compUtils';
|
|
import { getAutoScrollContainer } from '/@/utils/common/compUtils';
|
|
-import { getAlarmLogList, getManageAutoLogList, getWarnCountInfo } from './warning.api';
|
|
|
|
|
|
+import { getAlarmLogList, getManageAutoLogList, } from './warning.api';
|
|
import { getDeviceList, safetyList, } from '../safetyMonitor/safety.api';
|
|
import { getDeviceList, safetyList, } from '../safetyMonitor/safety.api';
|
|
-import { useRoute } from 'vue-router';
|
|
|
|
import customHeader from '/@/components/vent/customHeader.vue';
|
|
import customHeader from '/@/components/vent/customHeader.vue';
|
|
import AlarmHistoryTable from '../safetyMonitor/AlarmHistoryTable.vue';
|
|
import AlarmHistoryTable from '../safetyMonitor/AlarmHistoryTable.vue';
|
|
import { render } from '/@/utils/common/renderUtils';
|
|
import { render } from '/@/utils/common/renderUtils';
|
|
@@ -89,14 +72,7 @@ const props = defineProps({
|
|
default: undefined,
|
|
default: undefined,
|
|
},
|
|
},
|
|
});
|
|
});
|
|
-const route = useRoute();
|
|
|
|
-let statisticsList = reactive<any[]>([
|
|
|
|
- { title: '通风', valueT: 0, valueB: '' },
|
|
|
|
- { title: '粉尘', valueT: 0, valueB: '' },
|
|
|
|
- { title: '瓦斯', valueT: 0, valueB: '' },
|
|
|
|
- { title: '火灾', valueT: 0, valueB: '' },
|
|
|
|
- { title: '安全监测', valueT: 0, valueB: '' },
|
|
|
|
-]);
|
|
|
|
|
|
+
|
|
const activeKey = ref('device');
|
|
const activeKey = ref('device');
|
|
const alarmHistory = ref();
|
|
const alarmHistory = ref();
|
|
const deviceColumns = getTableHeaderColumns('alarm_history') as [];
|
|
const deviceColumns = getTableHeaderColumns('alarm_history') as [];
|
|
@@ -251,23 +227,8 @@ function onChangeTab(tab) {
|
|
dataColumns.value = manageAutoColumns;
|
|
dataColumns.value = manageAutoColumns;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
-//获取预警统计信息
|
|
|
|
-async function getEachMineWarnCountInfoList() {
|
|
|
|
- let res = await getWarnCountInfo({});
|
|
|
|
- statisticsList[0].valueT = res.ventSWarnInfo.totalNum || 0;
|
|
|
|
- statisticsList[0].valueB = res.ventSWarnInfo.maxWarnLevel || '';
|
|
|
|
- statisticsList[1].valueT = res.dustSWarnInfo.totalNum || 0;
|
|
|
|
- statisticsList[1].valueB = res.dustSWarnInfo.maxWarnLevel || '';
|
|
|
|
- statisticsList[2].valueT = res.gasSWarnInfo.totalNum || 0;
|
|
|
|
- statisticsList[2].valueB = res.gasSWarnInfo.maxWarnLevel || '';
|
|
|
|
- statisticsList[3].valueT = res.fireSWarnInfo.totalNum || 0;
|
|
|
|
- statisticsList[3].valueB = res.fireSWarnInfo.maxWarnLevel || '';
|
|
|
|
- statisticsList[4].valueT = res.synthesizeSWarnInfo.totalNum || 0;
|
|
|
|
- statisticsList[4].valueB = res.synthesizeSWarnInfo.maxWarnLevel || '';
|
|
|
|
-}
|
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
- getEachMineWarnCountInfoList();
|
|
|
|
|
|
+ // getEachMineWarnCountInfoList();
|
|
});
|
|
});
|
|
|
|
|
|
defineExpose({ setLoading });
|
|
defineExpose({ setLoading });
|
|
@@ -294,109 +255,12 @@ defineExpose({ setLoading });
|
|
left: 0 !important;
|
|
left: 0 !important;
|
|
}
|
|
}
|
|
|
|
|
|
-.data-statistics {
|
|
|
|
- height: 200px;
|
|
|
|
- padding: 20px;
|
|
|
|
- margin-top: 90px;
|
|
|
|
- background-color: #0ebbff15;
|
|
|
|
- display: flex;
|
|
|
|
- justify-content: space-between;
|
|
|
|
- align-items: center;
|
|
|
|
-
|
|
|
|
- .statistics-box {
|
|
|
|
- display: flex;
|
|
|
|
- flex: 1;
|
|
|
|
- height: 100%;
|
|
|
|
- justify-content: center;
|
|
|
|
- align-items: center;
|
|
|
|
-
|
|
|
|
- .left-box {
|
|
|
|
- position: relative;
|
|
|
|
- width: 138px;
|
|
|
|
- height: 100%;
|
|
|
|
-
|
|
|
|
- .box-title {
|
|
|
|
- position: absolute;
|
|
|
|
- left: 50%;
|
|
|
|
- bottom: 18px;
|
|
|
|
- transform: translate(-50%, 0);
|
|
|
|
- color: #fff;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &:nth-child(1) .left-box {
|
|
|
|
- background: url('../../../../assets/images/vent-tf.png') no-repeat center;
|
|
|
|
- background-size: 100% auto;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &:nth-child(2) .left-box {
|
|
|
|
- background: url('../../../../assets/images/dust-fc.png') no-repeat center;
|
|
|
|
- background-size: 100% auto;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &:nth-child(3) .left-box {
|
|
|
|
- background: url('../../../../assets/images/gas-ws.png') no-repeat center;
|
|
|
|
- background-size: 100% auto;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &:nth-child(4) .left-box {
|
|
|
|
- background: url('../../../../assets/images/fire-fz.png') no-repeat center;
|
|
|
|
- background-size: 100% auto;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &:nth-child(5) .left-box {
|
|
|
|
- background: url('../../../../assets/images/aqjc.png') no-repeat center;
|
|
|
|
- background-size: 100% auto;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .right-box {
|
|
|
|
- position: relative;
|
|
|
|
- width: 215px;
|
|
|
|
- height: 100%;
|
|
|
|
- display: flex;
|
|
|
|
- flex-direction: column;
|
|
|
|
- justify-content: space-around;
|
|
|
|
- align-items: center;
|
|
|
|
-
|
|
|
|
- .box-text {
|
|
|
|
- position: relative;
|
|
|
|
- width: 100%;
|
|
|
|
- height: 40px;
|
|
|
|
- color: #fff;
|
|
|
|
- background: url('../../../../assets/images/his-one.png') no-repeat center;
|
|
|
|
- background-size: 100% 100%;
|
|
|
|
-
|
|
|
|
- .text-label {
|
|
|
|
- position: absolute;
|
|
|
|
- left: 20px;
|
|
|
|
- top: 50%;
|
|
|
|
- transform: translate(0, -50%);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .text-value {
|
|
|
|
- position: absolute;
|
|
|
|
- left: 130px;
|
|
|
|
- top: 50%;
|
|
|
|
- transform: translate(0, -50%);
|
|
|
|
- font-family: 'douyuFont';
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .warning-state {
|
|
|
|
- .text-value {
|
|
|
|
- color: aqua !important;
|
|
|
|
- font-family: 'douyuFont';
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
.tab-box {
|
|
.tab-box {
|
|
display: flex;
|
|
display: flex;
|
|
color: #fff;
|
|
color: #fff;
|
|
position: relative;
|
|
position: relative;
|
|
- top: 11px;
|
|
|
|
|
|
+ // top: 11px;
|
|
|
|
+ margin-top: 80px;
|
|
background: linear-gradient(#001325, #012e4f);
|
|
background: linear-gradient(#001325, #012e4f);
|
|
|
|
|
|
:deep(.zxm-tabs-nav) {
|
|
:deep(.zxm-tabs-nav) {
|