|
@@ -1,25 +1,23 @@
|
|
<!-- eslint-disable vue/multi-word-component-names -->
|
|
<!-- eslint-disable vue/multi-word-component-names -->
|
|
<template>
|
|
<template>
|
|
<div class="company-home">
|
|
<div class="company-home">
|
|
|
|
+ <div style="width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: 0">
|
|
|
|
+ <VentModal />
|
|
|
|
+ </div>
|
|
<!-- 如果是有 deviceType、type 等 query,认为是详情页,不需要展示普通模块,只需要模型 -->
|
|
<!-- 如果是有 deviceType、type 等 query,认为是详情页,不需要展示普通模块,只需要模型 -->
|
|
- <template v-if="route.query.deviceType">
|
|
|
|
- <div style="width: 100%; height: 100%; position: absolute; left: 0; top: 0">
|
|
|
|
- <VentModal />
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <template v-else>
|
|
|
|
|
|
+ <template v-if="!route.query.deviceType">
|
|
<div v-if="!route.query.embed" class="top-bg">
|
|
<div v-if="!route.query.embed" class="top-bg">
|
|
<div class="main-title">{{ mainTitle }}</div>
|
|
<div class="main-title">{{ mainTitle }}</div>
|
|
</div>
|
|
</div>
|
|
- <!-- <a-dropdown class="module-dropdown" :class="{ 'module-dropdown-original': isOriginal }" :trigger="['click']" placement="bottomRight">
|
|
|
|
- <a class="ant-dropdown-link" @click.prevent>
|
|
|
|
|
|
+ <a class="ant-dropdown-link module-dropdown" @click.prevent="showBar = !showBar">
|
|
全矿井通风检测
|
|
全矿井通风检测
|
|
<CaretDownOutlined />
|
|
<CaretDownOutlined />
|
|
</a>
|
|
</a>
|
|
- <template #overlay>
|
|
|
|
- <MonitorCenter />
|
|
|
|
- </template>
|
|
|
|
- </a-dropdown> -->
|
|
|
|
|
|
+ <MonitorBar v-if="showBar" class="module-monitor-bar" :is-data-real-time="isDataRealTime" :data="data" />
|
|
|
|
+ <!-- <a-dropdown class="module-dropdown" :class="{ 'module-dropdown-original': isOriginal }" :trigger="['click']" placement="bottomRight">
|
|
|
|
+ <template #overlay>
|
|
|
|
+ </template>
|
|
|
|
+ </a-dropdown> -->
|
|
|
|
|
|
<!-- 采用定位方式以避免出现各个模块隐藏时其他模块下移的问题 -->
|
|
<!-- 采用定位方式以避免出现各个模块隐藏时其他模块下移的问题 -->
|
|
<template v-if="isOriginal">
|
|
<template v-if="isOriginal">
|
|
@@ -66,24 +64,21 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
- <div style="width: 1000px; height: 570px; position: absolute; left: calc(50% - 500px); top: 60px">
|
|
|
|
- <VentModal />
|
|
|
|
- <div
|
|
|
|
- v-if="sysDataType === 'all'"
|
|
|
|
- :class="{ 'realtime-mode': isDataRealTime }"
|
|
|
|
- alt="切换数据模式"
|
|
|
|
- class="switch-button report-mode right-50px"
|
|
|
|
- @click="switchDataMode"
|
|
|
|
- ></div>
|
|
|
|
- <div class="switch-button icon-goto right-5px" @click="goMicroApp()"></div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div
|
|
|
|
+ v-if="sysDataType === 'all'"
|
|
|
|
+ :class="{ 'realtime-mode': isDataRealTime }"
|
|
|
|
+ alt="切换数据模式"
|
|
|
|
+ class="switch-button report-mode right-525px"
|
|
|
|
+ @click="switchDataMode"
|
|
|
|
+ ></div>
|
|
|
|
+ <div class="switch-button icon-goto right-475px" @click="goMicroApp()"></div>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
import { onMounted, onUnmounted, ref, watch } from 'vue';
|
|
import { onMounted, onUnmounted, ref, watch } from 'vue';
|
|
// import { CaretDownOutlined } from '@ant-design/icons-vue';
|
|
// import { CaretDownOutlined } from '@ant-design/icons-vue';
|
|
- // import MonitorCenter from './components/MonitorCenter.vue';
|
|
|
|
|
|
+ import MonitorBar from './components/MonitorBar.vue';
|
|
import { useInitConfigs, useInitPage } from './hooks/useInit';
|
|
import { useInitConfigs, useInitPage } from './hooks/useInit';
|
|
import ModuleEnhanced from './components/ModuleEnhanced.vue';
|
|
import ModuleEnhanced from './components/ModuleEnhanced.vue';
|
|
import ModuleOriginal from './components/ModuleOriginal.vue';
|
|
import ModuleOriginal from './components/ModuleOriginal.vue';
|
|
@@ -95,12 +90,13 @@
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
// import { testConfigVent, testConfigVentRealtime } from './configurable.data';
|
|
// import { testConfigVent, testConfigVentRealtime } from './configurable.data';
|
|
|
|
|
|
- const { sysDataType = 'monitor' } = useGlobSetting();
|
|
|
|
|
|
+ const { sysDataType = 'monitor', title = '智能通风管控系统' } = useGlobSetting();
|
|
const { configs, isOriginal, isCommon, fetchConfigs } = useInitConfigs();
|
|
const { configs, isOriginal, isCommon, fetchConfigs } = useInitConfigs();
|
|
- const { mainTitle, enhancedConfigs, hiddenList, data, updateData, updateEnhancedConfigs } = useInitPage('智能通风管控系统');
|
|
|
|
|
|
+ const { mainTitle, enhancedConfigs, hiddenList, data, updateData, updateEnhancedConfigs } = useInitPage(title);
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
const isDataRealTime = ref(sysDataType === 'monitor');
|
|
const isDataRealTime = ref(sysDataType === 'monitor');
|
|
|
|
+ const showBar = ref(true);
|
|
let interval: number | undefined;
|
|
let interval: number | undefined;
|
|
|
|
|
|
function switchDataMode() {
|
|
function switchDataMode() {
|
|
@@ -162,7 +158,7 @@
|
|
|
|
|
|
@font-face {
|
|
@font-face {
|
|
font-family: 'douyuFont';
|
|
font-family: 'douyuFont';
|
|
- src: url('../../../../assets/font/douyuFont.otf');
|
|
|
|
|
|
+ src: url('/@/assets/font/douyuFont.otf');
|
|
}
|
|
}
|
|
|
|
|
|
@{theme-deepblue} {
|
|
@{theme-deepblue} {
|
|
@@ -218,13 +214,13 @@
|
|
// height: 280px;
|
|
// height: 280px;
|
|
// }
|
|
// }
|
|
.module-dropdown {
|
|
.module-dropdown {
|
|
- padding: 10px;
|
|
|
|
|
|
+ padding: 5px;
|
|
background-image: @vent-configurable-dropdown;
|
|
background-image: @vent-configurable-dropdown;
|
|
border-bottom: 2px solid @vent-configurable-home-light-border;
|
|
border-bottom: 2px solid @vent-configurable-home-light-border;
|
|
color: @vent-font-color;
|
|
color: @vent-font-color;
|
|
position: absolute;
|
|
position: absolute;
|
|
- top: 70px;
|
|
|
|
- right: 460px;
|
|
|
|
|
|
+ top: 60px;
|
|
|
|
+ right: 480px;
|
|
}
|
|
}
|
|
.module-dropdown-original {
|
|
.module-dropdown-original {
|
|
padding: 10px;
|
|
padding: 10px;
|
|
@@ -247,7 +243,7 @@
|
|
height: 34px;
|
|
height: 34px;
|
|
position: absolute;
|
|
position: absolute;
|
|
// right: 5px;
|
|
// right: 5px;
|
|
- bottom: 5px;
|
|
|
|
|
|
+ bottom: 300px;
|
|
z-index: 5;
|
|
z-index: 5;
|
|
background-repeat: no-repeat;
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
background-size: 100% 100%;
|
|
@@ -261,6 +257,14 @@
|
|
.icon-goto {
|
|
.icon-goto {
|
|
background-image: var(--image-monitor-goto);
|
|
background-image: var(--image-monitor-goto);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ .module-monitor-bar {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 100px;
|
|
|
|
+ width: 1000px;
|
|
|
|
+ height: 200px;
|
|
|
|
+ left: calc(50% - 500px);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
:deep(.loading-box) {
|
|
:deep(.loading-box) {
|
|
position: unset;
|
|
position: unset;
|