entryThree.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <template>
  2. <div class="bg" style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; overflow: hidden">
  3. <!-- <a-spin :spinning="loading" /> -->
  4. <div
  5. id="main3DCSS"
  6. class="threejs-Object-CSS"
  7. style="width: 100%; height: 100%; position: absolute; pointer-events: none; overflow: hidden; z-index: 1; top: 0"
  8. >
  9. <div style="position: relative" v-if="selectData['modalTyoe']">
  10. <div class="elementTag" id="inputBox1" v-if="backMonitorIsShow && false">
  11. <div class="elementContent elementContent-r">
  12. <!-- <div class="element-item"><span class="data-title">风机气压(Pa):</span><span>{{ selectData.DataPa ? selectData.DataPa : '-' }}</span></div> -->
  13. <div class="element-item"
  14. ><span class="data-title">风机负压(Pa):</span><span>{{ selectData.Fan2FanPre ? selectData.Fan2FanPre : '-' }}</span></div
  15. >
  16. <div class="element-item"
  17. ><span class="data-title">风机风量(m³/s):</span><span>{{ selectData.Fan2m3 ? selectData.Fan2m3 : '-' }}</span></div
  18. >
  19. </div>
  20. </div>
  21. <div class="elementTag" id="inputBox" v-if="frontMonitorIsShow && false">
  22. <div class="elementContent elementContent-r">
  23. <!-- <div class="element-item"><span class="data-title">风机全压(Pa):</span><span>{{ selectData.DataPa ? selectData.DataPa : '-' }}</span></div> -->
  24. <div class="element-item"
  25. ><span class="data-title">风机负压(Pa):</span><span>{{ selectData.Fan1FanPre ? selectData.Fan1FanPre : '-' }}</span></div
  26. >
  27. <div class="element-item"
  28. ><span class="data-title">风机风量(m³/s):</span><span>{{ selectData.Fan1m3 ? selectData.Fan1m3 : '-' }}</span></div
  29. >
  30. </div>
  31. </div>
  32. <div class="elementTag" id="inputBox2" v-if="centerMonitorIsShow && false">
  33. <div class="elementContent elementContent-r">
  34. <!-- <div class="element-item"><span class="data-title">风机气压(Pa):</span><span>{{ selectData.DataPa ? selectData.DataPa : '-' }}</span></div> -->
  35. <div class="element-item"
  36. ><span class="data-title">风机负压(Pa):</span><span>{{ selectData.Fan3FanPre ? selectData.Fan3FanPre : '-' }}</span></div
  37. >
  38. <div class="element-item"
  39. ><span class="data-title">风机风量(m³/s):</span><span>{{ selectData.Fan3m3 ? selectData.Fan3m3 : '-' }}</span></div
  40. >
  41. </div>
  42. </div>
  43. <!-- 18模拟反风锁井 -->
  44. <!-- <div v-if="hasPermission('mainFan:ffsjMonitor')" class="elementTag" id="fbm">
  45. <div class="elementContent elementContent-r fbm-box">
  46. <div class="fbm-video">
  47. <LivePlayer id="main-player2" ref="player2" :videoUrl="flvURL2()" muted live />
  48. <div class="vent-flex-row-between vent-margin-t-20">
  49. <span class="data-title">风门开启状态:</span>
  50. <template v-if="selectData['ExplosionVentOpen'] == 1 && selectData['ExplosionVentClose'] == 0">
  51. <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>开启</span>
  52. </template>
  53. <template v-else-if="selectData['ExplosionVentOpen'] == 0 && selectData['ExplosionVentClose'] == 1">
  54. <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>关闭</span>
  55. </template>
  56. <template v-else>
  57. <div class="vent-margin-l-10"
  58. ><span class="signal-round signal-round-warning vent-margin-r-8"></span>防爆门正在运行 或 数据异常</div
  59. >
  60. </template>
  61. </div>
  62. <div class="vent-flex-row-between vent-margin-t-10">
  63. <span class="data-title">反风锁紧状态:</span>
  64. <template
  65. v-if="
  66. selectData['Lock1Open'] == 1 && selectData['Lock1Close'] == 0 && selectData['Lock2Open'] == 1 && selectData['Lock2Close'] == '0'
  67. "
  68. >
  69. <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>锁1开</span>
  70. <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>锁2开</span>
  71. </template>
  72. <template
  73. v-else-if="
  74. selectData['Lock1Open'] == '0' && selectData['Lock1Close'] == 1 && selectData['Lock2Open'] == '0' && selectData['Lock2Close'] == 1
  75. "
  76. >
  77. <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>锁1关</span>
  78. <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>锁2关</span>
  79. </template>
  80. <template v-else>
  81. <div class="vent-margin-l-10"
  82. ><span class="signal-round signal-round-warning vent-margin-r-8"></span>反风锁紧正在运行 或 数据异常</div
  83. >
  84. </template>
  85. </div>
  86. </div>
  87. <div class="fbm-data">
  88. <div class="element-item"
  89. ><span class="data-title">井口负压(kPa):</span
  90. ><span>{{ selectData.Fan1FanPre ? selectData.Fan1FanPre : selectData.Fan2FanPre ? selectData.Fan2FanPre : '-' }}</span></div
  91. >
  92. <div class="element-item"><span class="data-title">井口正压(kPa):</span><span>0</span></div>
  93. <div class="element-item"><span class="data-title">井口温度(℃):</span><span>19.132</span></div>
  94. <div class="element-item"><span class="data-title">甲烷浓度(%):</span><span>0.36</span></div>
  95. <div class="element-item"><span class="data-title">CO浓度(%):</span><span>0</span></div>
  96. <div class="vent-flex-row-between">
  97. <span class="data-title">操作方式:</span>
  98. <span class="data-title"><span class="signal-round signal-round-blue vent-margin-r-8"></span>远程</span>
  99. <span class="data-title"><span class="signal-round signal-round-gry vent-margin-r-8"></span>就地</span>
  100. </div>
  101. </div>
  102. </div>
  103. </div> -->
  104. <div v-if="hasPermission('mainFan:ffsjMonitor')">
  105. <div class="elementContent elementContent-r fbm-box">
  106. <div class="fbm-video">
  107. <div class="vent-flex-row-between vent-margin-t-20">
  108. <span class="data-title">风门开启状态:</span>
  109. <template v-if="explosionDoorData['gate_1_kai'] == 1">
  110. <span class="data-title"
  111. ><span
  112. class="signal-round vent-margin-r-8"
  113. :class="{ 'signal-round-blue': explosionDoorData['gate_1_kai'] == 1, 'signal-round-gry': explosionDoorData['gate_1_kai'] == 0 }"
  114. ></span
  115. >门1开启</span
  116. >
  117. </template>
  118. <template v-else-if="explosionDoorData['gate_2_kai'] == 1">
  119. <span class="data-title"
  120. ><span
  121. class="signal-round vent-margin-r-8"
  122. :class="{ 'signal-round-blue': explosionDoorData['gate_1_kai'] == 1, 'signal-round-gry': explosionDoorData['gate_1_kai'] == 0 }"
  123. ></span
  124. >门2开启</span
  125. >
  126. </template>
  127. <template v-else>
  128. <div class="vent-margin-l-10"
  129. ><span class="signal-round signal-round-warning vent-margin-r-8"></span>防爆门正在运行 或 数据异常</div
  130. >
  131. </template>
  132. </div>
  133. <div class="vent-flex-row-between vent-margin-t-10">
  134. <span class="data-title">反风锁紧状态:</span>
  135. <div>
  136. <span class="data-title"
  137. ><span
  138. class="signal-round vent-margin-r-8"
  139. :class="{ 'signal-round-blue': explosionDoorData['suo1_kai'] == 1, 'signal-round-gry': explosionDoorData['suo1_kai'] == 0 }"
  140. ></span
  141. >锁1开</span
  142. >
  143. <span class="data-title"
  144. ><span
  145. class="signal-round vent-margin-r-8"
  146. :class="{ 'signal-round-blue': explosionDoorData['suo1_guan'] == 1, 'signal-round-gry': explosionDoorData['suo1_guan'] == 0 }"
  147. ></span
  148. >锁1关</span
  149. >
  150. </div>
  151. <div>
  152. <span class="data-title"
  153. ><span
  154. class="signal-round vent-margin-r-8"
  155. :class="{ 'signal-round-blue': explosionDoorData['suo2_kai'] == 1, 'signal-round-gry': explosionDoorData['suo2_kai'] == 0 }"
  156. ></span
  157. >锁1开</span
  158. >
  159. <span class="data-title"
  160. ><span
  161. class="signal-round vent-margin-r-8"
  162. :class="{ 'signal-round-blue': explosionDoorData['suo2_guan'] == 1, 'signal-round-gry': explosionDoorData['suo2_guan'] == 0 }"
  163. ></span
  164. >锁2关</span
  165. >
  166. </div>
  167. <div>
  168. <span class="data-title"
  169. ><span
  170. class="signal-round vent-margin-r-8"
  171. :class="{ 'signal-round-blue': explosionDoorData['suo3_kai'] == 1, 'signal-round-gry': explosionDoorData['suo3_kai'] == 0 }"
  172. ></span
  173. >锁3开</span
  174. >
  175. <span class="data-title"
  176. ><span
  177. class="signal-round vent-margin-r-8"
  178. :class="{ 'signal-round-blue': explosionDoorData['suo3_guan'] == 1, 'signal-round-gry': explosionDoorData['suo3_guan'] == 0 }"
  179. ></span
  180. >锁3关</span
  181. >
  182. </div>
  183. <div>
  184. <span class="data-title"
  185. ><span
  186. class="signal-round vent-margin-r-8"
  187. :class="{ 'signal-round-blue': explosionDoorData['suo4_kai'] == 1, 'signal-round-gry': explosionDoorData['suo4_kai'] == 0 }"
  188. ></span
  189. >锁4开</span
  190. >
  191. <span class="data-title"
  192. ><span
  193. class="signal-round vent-margin-r-8"
  194. :class="{ 'signal-round-blue': explosionDoorData['suo4_guan'] == 1, 'signal-round-gry': explosionDoorData['suo4_guan'] == 0 }"
  195. ></span
  196. >锁4关</span
  197. >
  198. </div>
  199. </div>
  200. </div>
  201. <div class="fbm-data">
  202. <div class="vent-flex-row-between">
  203. <span class="data-title">操作方式:</span>
  204. <span class="data-title"
  205. ><span
  206. class="signal-round signal-round-blue vent-margin-r-8"
  207. :class="{ 'signal-round-blue': explosionDoorData['jd_yc'] == 1 }"
  208. ></span
  209. >远程</span
  210. >
  211. <span class="data-title"
  212. ><span class="signal-round vent-margin-r-8" :class="{ 'signal-round-blue': explosionDoorData['jd_yc'] == 0 }"></span>就地</span
  213. >
  214. </div>
  215. <div class="vent-flex-row-between">
  216. <span class="data-title">是否检修:</span>
  217. <span class="data-title"
  218. ><span
  219. class="signal-round signal-round-blue vent-margin-r-8"
  220. :class="{ 'signal-round-blue': explosionDoorData['zc_jx'] == 1 }"
  221. ></span
  222. >正常</span
  223. >
  224. <span class="data-title"
  225. ><span class="signal-round vent-margin-r-8" :class="{ 'signal-round-blue': explosionDoorData['zc_jx'] == 0 }"></span>检修</span
  226. >
  227. </div>
  228. </div>
  229. </div>
  230. </div>
  231. </div>
  232. </div>
  233. <div id="main3D" style="width: 100%; height: 100%; position: absolute; overflow: hidden"> </div>
  234. <FanEchrats id="fan-echarts" :chartData="selectData" style="position: absolute; z-index: -1" />
  235. </div>
  236. </template>
  237. <script lang="ts" setup>
  238. import { usePermission } from '/@/hooks/web/usePermission';
  239. defineProps<{
  240. loading: boolean;
  241. selectData: Record<string, any>;
  242. explosionDoorData: Record<string, any>;
  243. centerMonitorIsShow: boolean;
  244. frontMonitorIsShow: boolean;
  245. backMonitorIsShow: boolean;
  246. }>();
  247. const { hasPermission } = usePermission();
  248. </script>
  249. <style scoped lang="less">
  250. @import '/@/design/vent/modal.less';
  251. </style>