ventNew.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <!-- eslint-disable vue/multi-word-component-names -->
  2. <template>
  3. <div class="company-home">
  4. <div style="width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: 0">
  5. <VentModal />
  6. </div>
  7. <div class="top-bg">
  8. <!-- <img style="width: 300px; height: 40px; position: fixed; left: 5px; top: 5px" src="./meeee.png" /> -->
  9. <!-- <div class="main-title">{{ mainTitle }}</div> -->
  10. <NewNav :Title="mainTitle" />
  11. </div>
  12. <div class="left-t"> </div>
  13. <div class="right-t"> </div>
  14. <template v-if="isNew">
  15. <ModuleNew
  16. v-for="cfg in configs"
  17. :key="cfg.deviceType"
  18. :show-style="cfg.showStyle"
  19. :module-data="cfg.moduleData"
  20. :module-name="cfg.moduleName"
  21. :device-type="cfg.deviceType"
  22. :data="data"
  23. :visible="true"
  24. />
  25. </template>
  26. </div>
  27. </template>
  28. <script lang="ts" setup>
  29. import { onMounted, onUnmounted } from 'vue';
  30. // import { CaretDownOutlined } from '@ant-design/icons-vue';
  31. // import MonitorCenter from './components/MonitorCenter.vue';
  32. import NewNav from './components/originalNew/NewNav.vue';
  33. import { useInitConfigs, useInitPage } from './hooks/useInit';
  34. import ModuleNew from './components/ModuleNew.vue';
  35. // import { useRoute } from 'vue-router';
  36. import VentModal from '/@/components/vent/micro/ventModal.vue';
  37. import { getHomeData } from './configurable.api';
  38. import { useRoute } from 'vue-router';
  39. import { testConfigVentNew } from './configurable.data';
  40. const { configs, isNew, fetchConfigs } = useInitConfigs();
  41. const { mainTitle, data, updateData, updateEnhancedConfigs } = useInitPage('一通三防智能管控平台');
  42. const route = useRoute();
  43. let interval: number | undefined;
  44. onMounted(() => {
  45. fetchConfigs('vent').then(() => {
  46. configs.value = testConfigVentNew;
  47. console.log('configs', configs.value);
  48. updateEnhancedConfigs(configs.value);
  49. getHomeData({}).then(updateData);
  50. });
  51. setInterval(() => {
  52. getHomeData({}).then(updateData);
  53. }, 60000);
  54. });
  55. onUnmounted(() => {
  56. clearInterval(interval);
  57. });
  58. </script>
  59. <style lang="less" scoped>
  60. @import '/@/design/theme.less';
  61. @font-face {
  62. font-family: 'douyuFont';
  63. src: url('../../../../assets/font/douyuFont.otf');
  64. }
  65. @{theme-deepblue} {
  66. .company-home {
  67. --image-modal-top: url('@/assets/images/vent/homeNew/modaltop.png');
  68. }
  69. }
  70. .company-home {
  71. --image-modal-top: url('@/assets/images/vent/homeNew/modaltop.png');
  72. width: 100%;
  73. height: 100%;
  74. color: @white;
  75. position: relative;
  76. background: url('@/assets/images/vent/homeNew/bg.png') no-repeat center;
  77. .top-bg {
  78. width: 100%;
  79. height: 56px;
  80. background: var(--image-modal-top) no-repeat center;
  81. position: absolute;
  82. z-index: 1;
  83. .main-title {
  84. height: 56px;
  85. font-family: 'douyuFont';
  86. font-size: 20px;
  87. letter-spacing: 2px;
  88. display: flex;
  89. justify-content: center;
  90. align-items: center;
  91. }
  92. .top-nav {
  93. position: absolute;
  94. top: 0;
  95. width: 880px;
  96. height: 100%;
  97. display: flex;
  98. justify-content: flex-start;
  99. }
  100. }
  101. .left-t {
  102. position: absolute;
  103. width: 28%;
  104. height: 100%;
  105. background: url('@/assets/images/vent/homeNew/leftContent.png') no-repeat center;
  106. z-index: 0;
  107. }
  108. .right-t {
  109. position: absolute;
  110. width: 172%;
  111. height: 100%;
  112. background: url('@/assets/images/vent/homeNew/rightContent.png') no-repeat center;
  113. z-index: 0;
  114. }
  115. // .module-left {
  116. // position: absolute;
  117. // width: 450px;
  118. // height: 280px;
  119. // left: 0;
  120. // }
  121. // .module-right {
  122. // position: absolute;
  123. // width: 450px;
  124. // height: 280px;
  125. // right: 0;
  126. // }
  127. // .module-bottom {
  128. // position: absolute;
  129. // width: 1000px;
  130. // height: 280px;
  131. // }
  132. .module-dropdown {
  133. padding: 10px;
  134. background-image: @vent-configurable-dropdown;
  135. border-bottom: 2px solid @vent-configurable-home-light-border;
  136. color: @vent-font-color;
  137. position: absolute;
  138. top: 70px;
  139. right: 460px;
  140. }
  141. .module-dropdown-original {
  142. padding: 10px;
  143. background-image: @vent-configurable-dropdown;
  144. border-bottom: 2px solid @vent-configurable-home-light-border;
  145. color: @vent-font-color;
  146. position: absolute;
  147. top: 70px;
  148. right: 460px;
  149. }
  150. .module-trigger-button {
  151. color: @vent-font-color;
  152. background-image: @vent-configurable-dropdown;
  153. border: none;
  154. border-bottom: 2px solid @vent-configurable-home-light-border;
  155. }
  156. }
  157. :deep(.loading-box) {
  158. position: unset;
  159. }
  160. </style>