|
@@ -1,168 +1,171 @@
|
|
|
<template>
|
|
|
- <div class="monitor-container">
|
|
|
- <div class="lr left-box">
|
|
|
- <div class="monitor-info item-box">
|
|
|
- <ventBox1>
|
|
|
- <template #title>
|
|
|
- <div>光纤测温实时监测</div>
|
|
|
- </template>
|
|
|
- <template #container>
|
|
|
- <div class="temperature-group">
|
|
|
- <div class="light-group">
|
|
|
- <div class="light-bg"></div>
|
|
|
- <div class="temperature-item">
|
|
|
- <SvgIcon class="icon" size="25" name="aveg-temperature" />
|
|
|
- <div class="temperature">
|
|
|
- <div class="temperature-icon"></div>
|
|
|
- <div class="temperature-title">平均温度</div>
|
|
|
- <div class="temperature-val-box">
|
|
|
- <div class="temperature-val-icon"></div>
|
|
|
- <div class="temperature-val">56.99</div>
|
|
|
+ <a-spin tip="Loading..." :spinning="loading">
|
|
|
+ <div class="monitor-container">
|
|
|
+ <div class="lr left-box">
|
|
|
+ <div class="monitor-info item-box">
|
|
|
+ <ventBox1>
|
|
|
+ <template #title>
|
|
|
+ <div>光纤测温实时监测</div>
|
|
|
+ </template>
|
|
|
+ <template #container>
|
|
|
+ <div class="temperature-group">
|
|
|
+ <div class="light-group">
|
|
|
+ <div class="light-bg"></div>
|
|
|
+ <div class="temperature-item">
|
|
|
+ <SvgIcon class="icon" size="25" name="aveg-temperature" />
|
|
|
+ <div class="temperature">
|
|
|
+ <div class="temperature-icon"></div>
|
|
|
+ <div class="temperature-title">平均温度</div>
|
|
|
+ <div class="temperature-val-box">
|
|
|
+ <div class="temperature-val-icon"></div>
|
|
|
+ <div class="temperature-val">56.99</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="temperature-item">
|
|
|
- <SvgIcon class="icon" size="25" name="max-temperature" />
|
|
|
- <div class="temperature">
|
|
|
- <div class="temperature-icon"></div>
|
|
|
- <div class="temperature-title">最高温度</div>
|
|
|
- <div class="temperature-val-box">
|
|
|
- <div class="temperature-val-icon"></div>
|
|
|
- <div class="temperature-val">56.99</div>
|
|
|
+ <div class="temperature-item">
|
|
|
+ <SvgIcon class="icon" size="25" name="max-temperature" />
|
|
|
+ <div class="temperature">
|
|
|
+ <div class="temperature-icon"></div>
|
|
|
+ <div class="temperature-title">最高温度</div>
|
|
|
+ <div class="temperature-val-box">
|
|
|
+ <div class="temperature-val-icon"></div>
|
|
|
+ <div class="temperature-val">56.99</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="temperature-item">
|
|
|
- <SvgIcon class="icon" size="25" name="min-temperature" />
|
|
|
- <div class="temperature">
|
|
|
- <div class="temperature-icon"></div>
|
|
|
- <div class="temperature-title">最低温度</div>
|
|
|
- <div class="temperature-val-box">
|
|
|
- <div class="temperature-val-icon"></div>
|
|
|
- <div class="temperature-val">56.99</div>
|
|
|
+ <div class="temperature-item">
|
|
|
+ <SvgIcon class="icon" size="25" name="min-temperature" />
|
|
|
+ <div class="temperature">
|
|
|
+ <div class="temperature-icon"></div>
|
|
|
+ <div class="temperature-title">最低温度</div>
|
|
|
+ <div class="temperature-val-box">
|
|
|
+ <div class="temperature-val-icon"></div>
|
|
|
+ <div class="temperature-val">56.99</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </ventBox1>
|
|
|
- </div>
|
|
|
- <div class="warning-group">
|
|
|
- <ventBox1>
|
|
|
- <template #title>
|
|
|
- <div>近一月报警情况</div>
|
|
|
- </template>
|
|
|
- <template #container>
|
|
|
- <div class="monitor-box">
|
|
|
- <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="42" name="alarm-icon"/><span>报警信息</span></div>
|
|
|
- <div class="item-group">
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="24" name="alarm-fire" />
|
|
|
- <span class="title">火焰传感器</span>
|
|
|
- <span class="value">无</span>
|
|
|
- </div>
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="24" name="alarm-smoke" />
|
|
|
- <span class="title">烟雾传感器</span>
|
|
|
- <span class="value" style="color: #FF3823; font-weight: 600;">15</span>
|
|
|
- </div>
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="24" name="alarm-CO" />
|
|
|
- <span class="title">CO传感器</span>
|
|
|
- <span class="value">无</span>
|
|
|
- </div>
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="24" name="alarm-temperature" />
|
|
|
- <span class="title">温度传感器</span>
|
|
|
- <span class="value">无</span>
|
|
|
- </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="monitor-box">
|
|
|
- <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="42" name="warning-icon"/><span>预警信息</span></div>
|
|
|
- <div class="item-group">
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="22" name="warning-fire" />
|
|
|
- <span class="title">火焰传感器</span>
|
|
|
- <span class="value">无</span>
|
|
|
- </div>
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="22" name="warning-smoke" />
|
|
|
- <span class="title">烟雾传感器</span>
|
|
|
- <span class="value" style="color: #FF9B17; font-weight: 600;">15</span>
|
|
|
+ </template>
|
|
|
+ </ventBox1>
|
|
|
+ </div>
|
|
|
+ <div class="warning-group">
|
|
|
+ <ventBox1>
|
|
|
+ <template #title>
|
|
|
+ <div>近一月报警情况</div>
|
|
|
+ </template>
|
|
|
+ <template #container>
|
|
|
+ <div class="monitor-box">
|
|
|
+ <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="42" name="alarm-icon"/><span>报警信息</span></div>
|
|
|
+ <div class="item-group">
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="24" name="alarm-fire" />
|
|
|
+ <span class="title">火焰传感器</span>
|
|
|
+ <span class="value">无</span>
|
|
|
+ </div>
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="24" name="alarm-smoke" />
|
|
|
+ <span class="title">烟雾传感器</span>
|
|
|
+ <span class="value" style="color: #FF3823; font-weight: 600;">15</span>
|
|
|
+ </div>
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="24" name="alarm-CO" />
|
|
|
+ <span class="title">CO传感器</span>
|
|
|
+ <span class="value">无</span>
|
|
|
+ </div>
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="24" name="alarm-temperature" />
|
|
|
+ <span class="title">温度传感器</span>
|
|
|
+ <span class="value">无</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="22" name="warning-CO" />
|
|
|
- <span class="title">CO传感器</span>
|
|
|
- <span class="value">无</span>
|
|
|
+ </div>
|
|
|
+ <div class="monitor-box">
|
|
|
+ <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="42" name="warning-icon"/><span>预警信息</span></div>
|
|
|
+ <div class="item-group">
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="22" name="warning-fire" />
|
|
|
+ <span class="title">火焰传感器</span>
|
|
|
+ <span class="value">无</span>
|
|
|
+ </div>
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="22" name="warning-smoke" />
|
|
|
+ <span class="title">烟雾传感器</span>
|
|
|
+ <span class="value" style="color: #FF9B17; font-weight: 600;">15</span>
|
|
|
+ </div>
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="22" name="warning-CO" />
|
|
|
+ <span class="title">CO传感器</span>
|
|
|
+ <span class="value">无</span>
|
|
|
+ </div>
|
|
|
+ <div class="item-col">
|
|
|
+ <SvgIcon class="icon" size="22" name="warning-temperature" />
|
|
|
+ <span class="title">温度传感器</span>
|
|
|
+ <span class="value">无</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="item-col">
|
|
|
- <SvgIcon class="icon" size="22" name="warning-temperature" />
|
|
|
- <span class="title">温度传感器</span>
|
|
|
- <span class="value">无</span>
|
|
|
+ <div class="alarm-box">
|
|
|
+ <dv-scroll-board ref="scrollBoard" :config="warningConfig"
|
|
|
+ style="width: 100%; height: 240px; overflow-y: auto; " />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="alarm-box">
|
|
|
- <dv-scroll-board ref="scrollBoard" :config="warningConfig"
|
|
|
- style="width: 100%; height: 240px; overflow-y: auto; " />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
|
|
|
|
|
|
- </template>
|
|
|
- </ventBox1>
|
|
|
+ </template>
|
|
|
+ </ventBox1>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="lr right-box">
|
|
|
- <div class="item-box sensor-container">
|
|
|
- <ventBox1>
|
|
|
- <template #title>
|
|
|
- <div>烟雾传感器实时监测</div>
|
|
|
- </template>
|
|
|
- <template #container>
|
|
|
- <a-table :columns="sensorColumns" :data-source="smokeDataSource" :pagination="false" size="small" maxWidth="340"
|
|
|
- :scroll="{ x: 'max-content', y: 240 }">
|
|
|
- <template #bodyCell="{ column, record }">
|
|
|
- <template v-if="column.dataIndex === 'warnFlag'">
|
|
|
- <span v-if="record['warnFlag'] == 0" style="color: #00ff00;">正常</span>
|
|
|
- <span v-else style="color: #ff0000;"> {{ record.warnDes }}</span>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
- </a-table>
|
|
|
- </template>
|
|
|
- </ventBox1>
|
|
|
- <ventBox1 class="vent-margin-t-10">
|
|
|
- <template #title>
|
|
|
- <div>{{ groupNum }}喷粉监控</div>
|
|
|
- </template>
|
|
|
- <template #container>
|
|
|
- <a-table :columns="dustColumns" :data-source="dustDataSource" :pagination="false" size="small" maxWidth="340"
|
|
|
- :scroll="{ x: 'max-content', y: 240 }">
|
|
|
- <template #bodyCell="{ column, record }">
|
|
|
- <template v-if="column.dataIndex === 'warnFlag'">
|
|
|
- <span v-if="record['warnFlag'] == 0" style="color: #00ff00;">链接</span>
|
|
|
- <span v-else style="color: #ff0000;"> {{ record.warnDes }}</span>
|
|
|
+ <div class="lr right-box">
|
|
|
+ <div class="item-box sensor-container">
|
|
|
+ <ventBox1>
|
|
|
+ <template #title>
|
|
|
+ <div>烟雾传感器实时监测</div>
|
|
|
+ </template>
|
|
|
+ <template #container>
|
|
|
+ <a-table :columns="sensorColumns" :data-source="smokeDataSource" :pagination="false" size="small" maxWidth="340"
|
|
|
+ :scroll="{ x: 'max-content', y: 240 }">
|
|
|
+ <template #bodyCell="{ column, record }">
|
|
|
+ <template v-if="column.dataIndex === 'warnFlag'">
|
|
|
+ <span v-if="record['warnFlag'] == 0" style="color: #00ff00;">正常</span>
|
|
|
+ <span v-else style="color: #ff0000;"> {{ record.warnDes }}</span>
|
|
|
+ </template>
|
|
|
</template>
|
|
|
- <template v-if="column.dataIndex === 'action'">
|
|
|
- <a-switch v-model:checked="openDust" @change="handleDust" />
|
|
|
+ </a-table>
|
|
|
+ </template>
|
|
|
+ </ventBox1>
|
|
|
+ <ventBox1 class="vent-margin-t-10">
|
|
|
+ <template #title>
|
|
|
+ <div>{{ groupNum }}喷粉监控</div>
|
|
|
+ </template>
|
|
|
+ <template #container>
|
|
|
+ <a-table :columns="dustColumns" :data-source="dustDataSource" :pagination="false" size="small" maxWidth="340"
|
|
|
+ :scroll="{ x: 'max-content', y: 240 }">
|
|
|
+ <template #bodyCell="{ column, record }">
|
|
|
+ <template v-if="column.dataIndex === 'warnFlag'">
|
|
|
+ <span v-if="record['warnFlag'] == 0" style="color: #00ff00;">链接</span>
|
|
|
+ <span v-else style="color: #ff0000;"> {{ record.warnDes }}</span>
|
|
|
+ </template>
|
|
|
+ <template v-if="column.dataIndex === 'action'">
|
|
|
+ <a-switch v-model:checked="openDust" @change="handleDust" />
|
|
|
+ </template>
|
|
|
</template>
|
|
|
- </template>
|
|
|
- </a-table>
|
|
|
- </template>
|
|
|
- </ventBox1>
|
|
|
- </div>
|
|
|
- <div class="item-box" >
|
|
|
- <LivePlayer id="fm-player1" style="height: 250px;" ref="player1" :videoUrl="flvURL1()" muted live loading controls />
|
|
|
+ </a-table>
|
|
|
+ </template>
|
|
|
+ </ventBox1>
|
|
|
+ </div>
|
|
|
+ <div class="item-box" >
|
|
|
+ <LivePlayer id="fm-player1" style="height: 250px;" ref="player1" :videoUrl="flvURL1()" muted live loading controls />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </a-spin>
|
|
|
+
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
|
-import { onBeforeMount, ref, onMounted, onUnmounted, reactive, toRaw, shallowReactive, defineProps, watch } from 'vue';
|
|
|
+import { onBeforeMount, ref, onMounted, onUnmounted, reactive, defineProps, watch } from 'vue';
|
|
|
// import MonitorTable from '../comment/MonitorTable.vue';
|
|
|
import { ScrollBoard as DvScrollBoard } from '@kjgl77/datav-vue3';
|
|
|
import ventBox1 from '/@/components/vent/ventBox1.vue'
|
|
@@ -173,7 +176,6 @@ import { warningConfig, sensorColumns, dustColumns } from '../chamber.data'
|
|
|
import { list } from '../chamber.api';
|
|
|
import LivePlayer from '@liveqing/liveplayer-v3';
|
|
|
|
|
|
-
|
|
|
const props = defineProps({
|
|
|
deviceId: {
|
|
|
type: String,
|
|
@@ -181,7 +183,6 @@ const props = defineProps({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
-
|
|
|
const loading = ref(false);
|
|
|
|
|
|
// 默认初始是第一行
|
|
@@ -213,6 +214,7 @@ function getMonitor() {
|
|
|
timer = null;
|
|
|
}
|
|
|
await getMonitor();
|
|
|
+ loading.value = false
|
|
|
}, 1000);
|
|
|
}
|
|
|
};
|
|
@@ -268,12 +270,16 @@ async function getDataSource(systemID) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 喷粉操作
|
|
|
function handleDust() {
|
|
|
//
|
|
|
}
|
|
|
|
|
|
+watch(() => props.deviceId, () => {
|
|
|
+ setModelType('chamberBase')
|
|
|
+ loading.value = true
|
|
|
+})
|
|
|
+
|
|
|
onBeforeMount(() => {
|
|
|
|
|
|
});
|
|
@@ -287,6 +293,7 @@ onMounted(() => {
|
|
|
await getMonitor()
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
onUnmounted(() => {
|
|
|
destroy();
|
|
|
if (timer) {
|
|
@@ -294,6 +301,7 @@ onUnmounted(() => {
|
|
|
timer = undefined;
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
@import '/@/design/vent/modal.less';
|
|
@@ -304,7 +312,8 @@ onUnmounted(() => {
|
|
|
height: 100%;
|
|
|
// height: 550px;
|
|
|
// border: 1px solid #fff;
|
|
|
- margin-top: 40px;
|
|
|
+ margin-top: 20px;
|
|
|
+ padding-top: 20px;
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
|