|
@@ -88,6 +88,12 @@
|
|
</ventBox1>
|
|
</ventBox1>
|
|
</div>
|
|
</div>
|
|
<div class="center-box">
|
|
<div class="center-box">
|
|
|
|
+ <div class="echart-warn-grade">
|
|
|
|
+ <warnGradeEchart :echartData="Levels"></warnGradeEchart>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="btn-warn-grade">
|
|
|
|
+ <a-button type="primary" size="small" @click="warnGradeClick">风险等级</a-button>
|
|
|
|
+ </div>
|
|
<div class="animation-box">
|
|
<div class="animation-box">
|
|
<canvas class="rain"></canvas>
|
|
<canvas class="rain"></canvas>
|
|
<div class="bottom" :class="{
|
|
<div class="bottom" :class="{
|
|
@@ -151,7 +157,7 @@
|
|
centerData.fire
|
|
centerData.fire
|
|
== 101 ? '低风险' : centerData.fire == 102 ? '一般风险' : centerData.fire == 103 ? '较大风险' : centerData.fire ==
|
|
== 101 ? '低风险' : centerData.fire == 102 ? '一般风险' : centerData.fire == 103 ? '较大风险' : centerData.fire ==
|
|
104
|
|
104
|
|
- ? '重大风险' :centerData.fire == 201 ? '报警' : centerData.fire }}</span>
|
|
|
|
|
|
+ ? '重大风险' : centerData.fire == 201 ? '报警' : centerData.fire }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item item2">
|
|
<div class="item item2">
|
|
@@ -313,6 +319,10 @@
|
|
</template>
|
|
</template>
|
|
</ventBox1>
|
|
</ventBox1>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 风险等级弹窗 -->
|
|
|
|
+ <a-modal v-model:visible="visibleGrade" width="850px" :footer="null" :title="titleGrade" centered destroyOnClose>
|
|
|
|
+ <warnGradeInfo></warnGradeInfo>
|
|
|
|
+ </a-modal>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -322,16 +332,19 @@ import { useRouter } from 'vue-router';
|
|
import { rainBg } from '/@/utils/ui.js';
|
|
import { rainBg } from '/@/utils/ui.js';
|
|
import { Vue3SeamlessScroll } from 'vue3-seamless-scroll';
|
|
import { Vue3SeamlessScroll } from 'vue3-seamless-scroll';
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
|
|
+import { getDisasterProportion } from '../../deviceManager/riskSetting/riskSetting.api'
|
|
|
|
+import { iconsMonitor, chartsColumns, xAxisData, option, colors, fontColor, fireMonitor } from './alarm.data';
|
|
|
|
+import { getTotalList, sysTypeWarnList } from './alarm.api';
|
|
import customHeader from '/@/components/vent/customHeader.vue';
|
|
import customHeader from '/@/components/vent/customHeader.vue';
|
|
import ventBox1 from '/@/components/vent/ventBox1.vue';
|
|
import ventBox1 from '/@/components/vent/ventBox1.vue';
|
|
import BarSingle from '../../../../components/chart/BarSingle.vue';
|
|
import BarSingle from '../../../../components/chart/BarSingle.vue';
|
|
-import { getTotalList, sysTypeWarnList } from './alarm.api';
|
|
|
|
-import { getDisasterProportion } from '../../deviceManager/riskSetting/riskSetting.api'
|
|
|
|
-import { iconsMonitor, chartsColumns, xAxisData, option, colors, fontColor, fireMonitor } from './alarm.data';
|
|
|
|
|
|
+import warnGradeEchart from './common/warnGradeEchart.vue'
|
|
|
|
+import warnGradeInfo from './common/warnGradeInfo.vue'
|
|
|
|
+
|
|
|
|
|
|
let router = useRouter();
|
|
let router = useRouter();
|
|
let warnLevels = ref('');
|
|
let warnLevels = ref('');
|
|
-
|
|
|
|
|
|
+let Levels = reactive({})
|
|
const warnNumMap = new Map([
|
|
const warnNumMap = new Map([
|
|
['fire', 0],
|
|
['fire', 0],
|
|
['dust', 0],
|
|
['dust', 0],
|
|
@@ -368,7 +381,14 @@ let gasData = {
|
|
};
|
|
};
|
|
|
|
|
|
let fireMonitor1 = reactive<any[]>([]);
|
|
let fireMonitor1 = reactive<any[]>([]);
|
|
|
|
+let visibleGrade = ref(false)//控制风险等级弹窗显示与隐藏
|
|
|
|
+let titleGrade = ref('')//风险等级弹窗标题
|
|
|
|
|
|
|
|
+//风险等级点击
|
|
|
|
+let warnGradeClick = () => {
|
|
|
|
+ visibleGrade.value = true
|
|
|
|
+ titleGrade.value = '风险等级信息'
|
|
|
|
+}
|
|
//跳转详情
|
|
//跳转详情
|
|
function showModal(data) {
|
|
function showModal(data) {
|
|
switch (data) {
|
|
switch (data) {
|
|
@@ -425,8 +445,8 @@ async function getList() {
|
|
centerData.ws = res.info.sysInfo.gasS.maxLevel;
|
|
centerData.ws = res.info.sysInfo.gasS.maxLevel;
|
|
centerData.sb = res.info.deviceWarnInfo.maxLevel;
|
|
centerData.sb = res.info.deviceWarnInfo.maxLevel;
|
|
centerData.fc = res.info.sysInfo.dustS.maxLevel;
|
|
centerData.fc = res.info.sysInfo.dustS.maxLevel;
|
|
- let Levels = await getDisasterProportion()
|
|
|
|
- console.log(Levels, '综合风险等级')
|
|
|
|
|
|
+ Levels = await getDisasterProportion()
|
|
|
|
+
|
|
centerData.levels = 0 < Levels.level <= 1 ? 101 : 1 < Levels.level <= 2 ? 102 : 2 < Levels.level <= 3 ? 103 : 3 < Levels.level <= 4 ? 104 : 0
|
|
centerData.levels = 0 < Levels.level <= 1 ? 101 : 1 < Levels.level <= 2 ? 102 : 2 < Levels.level <= 3 ? 103 : 3 < Levels.level <= 4 ? 104 : 0
|
|
|
|
|
|
Object.keys(iconsMonitor).forEach((el) => {
|
|
Object.keys(iconsMonitor).forEach((el) => {
|
|
@@ -575,6 +595,8 @@ onUnmounted(() => {
|
|
|
|
|
|
.sensor-container {
|
|
.sensor-container {
|
|
.center-box {
|
|
.center-box {
|
|
|
|
+ position: relative;
|
|
|
|
+
|
|
.fire-monitor {
|
|
.fire-monitor {
|
|
border: 1px solid #3a4b5f;
|
|
border: 1px solid #3a4b5f;
|
|
border-radius: 10px;
|
|
border-radius: 10px;
|
|
@@ -837,6 +859,7 @@ onUnmounted(() => {
|
|
}
|
|
}
|
|
|
|
|
|
.center-box {
|
|
.center-box {
|
|
|
|
+ position: relative;
|
|
width: calc(100% - 710px);
|
|
width: calc(100% - 710px);
|
|
// background-color: #ffffff10;
|
|
// background-color: #ffffff10;
|
|
margin: 0 8px;
|
|
margin: 0 8px;
|
|
@@ -844,6 +867,20 @@ onUnmounted(() => {
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
justify-content: flex-end;
|
|
justify-content: flex-end;
|
|
|
|
|
|
|
|
+ .echart-warn-grade {
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 0;
|
|
|
|
+ top: 0;
|
|
|
|
+ width: 400px;
|
|
|
|
+ height: 200px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .btn-warn-grade {
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 0;
|
|
|
|
+ top: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
.fire-monitor {
|
|
.fire-monitor {
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|