frontElecThree.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <template>
  2. <!-- 电厂大屏第三页:环保监控 -->
  3. <div id="frontThree">
  4. <!-- 第一排开始 -->
  5. <div id="rowOne">
  6. <!-- HRSG #1 -->
  7. <dv-border-box-1 class="outer-div">
  8. <div class="inner-div">
  9. <analysisTopLeft class="analysis-top" v-bind="$attrs"></analysisTopLeft>
  10. </div>
  11. <div class="inner-div">
  12. <div class="analysis-percentage-box">
  13. <span class="analysis-percentage-span">烟尘</span>
  14. <dv-water-level-pond :config="configTopLeft1" class="analysis-percentage"/>
  15. </div>
  16. <div class="analysis-percentage-box">
  17. <span class="analysis-percentage-span">SO2</span>
  18. <dv-water-level-pond :config="configTopLeft2" class="analysis-percentage"/>
  19. </div>
  20. <div class="analysis-percentage-box">
  21. <span class="analysis-percentage-span">NOx</span>
  22. <dv-water-level-pond :config="configTopLeft3" class="analysis-percentage"/>
  23. </div>
  24. </div>
  25. </dv-border-box-1>
  26. <!-- HRSG #2 -->
  27. <dv-border-box-1 class="outer-div">
  28. <div class="inner-div">
  29. <analysisTopCenter class="analysis-top" v-bind="$attrs"></analysisTopCenter>
  30. </div>
  31. <div class="inner-div">
  32. <div class="analysis-percentage-box">
  33. <span class="analysis-percentage-span">烟尘</span>
  34. <dv-water-level-pond :config="configTopCenter1" class="analysis-percentage"/>
  35. </div>
  36. <div class="analysis-percentage-box">
  37. <span class="analysis-percentage-span">SO2</span>
  38. <dv-water-level-pond :config="configTopCenter2" class="analysis-percentage"/>
  39. </div>
  40. <div class="analysis-percentage-box">
  41. <span class="analysis-percentage-span">NOx</span>
  42. <dv-water-level-pond :config="configTopCenter3" class="analysis-percentage"/>
  43. </div>
  44. </div>
  45. </dv-border-box-1>
  46. <!-- HRSG #3 -->
  47. <dv-border-box-1 class="outer-div">
  48. <div class="inner-div">
  49. <analysisTopRight class="analysis-top" v-bind="$attrs"></analysisTopRight>
  50. </div>
  51. <div class="inner-div">
  52. <div class="analysis-percentage-box">
  53. <span class="analysis-percentage-span">烟尘</span>
  54. <dv-water-level-pond :config="configTopRight1" class="analysis-percentage"/>
  55. </div>
  56. <div class="analysis-percentage-box">
  57. <span class="analysis-percentage-span">SO2</span>
  58. <dv-water-level-pond :config="configTopRight2" class="analysis-percentage"/>
  59. </div>
  60. <div class="analysis-percentage-box">
  61. <span class="analysis-percentage-span">NOx</span>
  62. <dv-water-level-pond :config="configTopRight3" class="analysis-percentage"/>
  63. </div>
  64. </div>
  65. </dv-border-box-1>
  66. </div>
  67. <!-- 第一排结束 -->
  68. <!-- 第二排开始 -->
  69. <div id="rowTwo">
  70. <dv-border-box-13 class="outer-div">
  71. <div class="analysis-bottom-box">
  72. <!-- PH 柱状图 -->
  73. <analysisBottomLeft1 class="analysis-bottom" v-bind="$attrs"></analysisBottomLeft1>
  74. <!-- COD 柱状图 -->
  75. <analysisBottomLeft2 class="analysis-bottom" v-bind="$attrs"></analysisBottomLeft2>
  76. </div>
  77. <div class="analysis-bottom-box">
  78. <!-- PH 折线图 -->
  79. <analysisBottomLeft3 class="analysis-bottom" v-bind="$attrs"></analysisBottomLeft3>
  80. <!-- COD 折线图 -->
  81. <analysisBottomLeft4 class="analysis-bottom" v-bind="$attrs"></analysisBottomLeft4>
  82. </div>
  83. </dv-border-box-13>
  84. <div id="scroll-board-box">
  85. <!-- 预警大屏 -->
  86. <dv-scroll-board :config="configBottomRight"/>
  87. </div>
  88. </div>
  89. <!-- 第二排结束 -->
  90. </div>
  91. </template>
  92. <script>
  93. import analysisBottomLeft1 from './analysisBottomLeft1.vue';
  94. import analysisBottomLeft2 from './analysisBottomLeft2.vue';
  95. import analysisBottomLeft3 from './analysisBottomLeft3.vue';
  96. import analysisBottomLeft4 from './analysisBottomLeft4.vue';
  97. import analysisTopLeft from './analysisTopLeft.vue';
  98. import analysisTopCenter from './analysisTopCenter.vue';
  99. import analysisTopRight from './analysisTopRight.vue';
  100. export default {
  101. name: "materialBalance",
  102. components: {
  103. analysisBottomLeft1, analysisBottomLeft2, analysisBottomLeft3, analysisBottomLeft4,
  104. analysisTopLeft, analysisTopCenter, analysisTopRight
  105. },
  106. props: ['dashboardelecdata', 'alarmList'],
  107. data() {
  108. return {
  109. // 第一排左上角水位图配置、基准值、实测值
  110. configTopLeft1: {}, configTopLeft2: {}, configTopLeft3: {},
  111. limitTopLeft1: 100, limitTopLeft2: 572, limitTopLeft3: 2050,
  112. dataTopLeft1: this.dashboardelecdata.hrsg1SmokeConvert,
  113. dataTopLeft2: this.dashboardelecdata.hrsg1So2Convert,
  114. dataTopLeft3: this.dashboardelecdata.hrsg1NoxConvert,
  115. // 第一排中间水位图配置、基准值、实测值
  116. configTopCenter1: {}, configTopCenter2: {}, configTopCenter3: {},
  117. limitTopCenter1: 100, limitTopCenter2: 572, limitTopCenter3: 2050,
  118. dataTopCenter1: this.dashboardelecdata.hrsg2SmokeConvert,
  119. dataTopCenter2: this.dashboardelecdata.hrsg2So2Convert,
  120. dataTopCenter3: this.dashboardelecdata.hrsg2NoxConvert,
  121. // 第一排右上角水位图配置、基准值、实测值
  122. configTopRight1: {}, configTopRight2: {}, configTopRight3: {},
  123. limitTopRight1: 100, limitTopRight2: 572, limitTopRight3: 2050,
  124. dataTopRight1: this.dashboardelecdata.hrsg3SmokeConvert,
  125. dataTopRight2: this.dashboardelecdata.hrsg3So2Convert,
  126. dataTopRight3: this.dashboardelecdata.hrsg3NoxConvert,
  127. // 第二排右下角轮播表表头、表数据、表配置
  128. tableHeaderBottomRight: ['时间', '值', '位号', '内容'],
  129. tableDataBottomRight: this.alarmList,
  130. // [
  131. // ['<span class="span-rw">2022-4-2 06:22</span>', 'someData', 'QT12001', ' leakage #1HRSG DUCT BURNRE'],
  132. // ['2022-4-2 13:43', 'someData', 'QT12501', ' CO leakage #1HRSG offgas system'],
  133. // ['2022-4-2 15:23', 'someData', '<span>QT12502<i class="icon icon-shang"></i></span>', ' CO leakage #1HRSG offgas system'],
  134. // ['2022-4-2 19:01', 'someData', 'QT22001', ' leakage #2HRSG DUCT BURNRE', ],
  135. // ['2022-4-3 01:00', 'someData', 'QT22501', ' CO leakage #2HRSG offgas system', ],
  136. // ['2022-4-3 04:50', 'someData', 'QT22502', ' CO leakage #2HRSG offgas system', ],
  137. // ['2022-4-3 12:21', 'someData', 'QT32001', ' leakage #3HRSG DUCT BURNRE', ],
  138. // ['2022-4-5 08:22', 'someData', 'AI82201', 'SC @ HRSG#1 HP DRUM BLOWDOWN', ],
  139. // ['2022-4-5 12:10', 'someData', 'AI82302', 'PH @ HRSG#2 HP DRUM BLOWDOWN', ],
  140. // ['2022-4-5 14:46', 'someData', 'AI82403', 'CC @ HRSG#3 HP DRUM DISCHARGE'],
  141. // ['2022-4-5 14:46', 'someData', 'AI82403', 'CC @ HRSG#3 HP DRUM DISCHARGE'],
  142. // ['2022-4-5 14:46', 'someData', 'AI82403', 'CC @ HRSG#3 HP DRUM DISCHARGE'],
  143. // ['2022-4-5 14:46', 'someData', 'AI82403', 'CC @ HRSG#3 HP DRUM DISCHARGE'],
  144. // ['2022-4-5 14:46', 'someData', 'AI82403', 'CC @ HRSG#3 HP DRUM DISCHARGE']
  145. // ],
  146. configBottomRight: {}
  147. };
  148. },
  149. methods: {
  150. /**
  151. * 第一排左上角水位图初始化
  152. */
  153. initTopLeft() {
  154. this.configTopLeft1 = {
  155. data: [ ( (this.dataTopLeft1/this.limitTopLeft1) * 100 ).toFixed(1) ],
  156. waveHeight: 10,
  157. formatter: this.dataTopLeft1 + ' mg/m3',
  158. shape: 'roundRect'
  159. };
  160. this.configTopLeft2 = {
  161. data: [ ( (this.dataTopLeft2/this.limitTopLeft2) * 100 ).toFixed(1) ],
  162. waveHeight: 10,
  163. formatter: this.dataTopLeft2 + ' mg/m3',
  164. shape: 'roundRect'
  165. };
  166. this.configTopLeft3 = {
  167. data: [ ( (this.dataTopLeft3/this.limitTopLeft3) * 100 ).toFixed(1) ],
  168. waveHeight: 10,
  169. formatter: this.dataTopLeft3 + ' mg/m3',
  170. shape: 'roundRect'
  171. };
  172. },
  173. /**
  174. * 第一排中间水位图初始化
  175. */
  176. initTopCenter() {
  177. this.configTopCenter1 = {
  178. data: [ ( (this.dataTopCenter1/this.limitTopCenter1) * 100 ).toFixed(1) ],
  179. waveHeight: 10,
  180. formatter: this.dataTopCenter1 + ' mg/m3',
  181. shape: 'roundRect'
  182. };
  183. this.configTopCenter2 = {
  184. data: [ ( (this.dataTopCenter2/this.limitTopCenter2) * 100 ).toFixed(1) ],
  185. waveHeight: 10,
  186. formatter: this.dataTopCenter2 + ' mg/m3',
  187. shape: 'roundRect'
  188. };
  189. this.configTopCenter3 = {
  190. data: [ ( (this.dataTopCenter3/this.limitTopCenter3) * 100 ).toFixed(1) ],
  191. waveHeight: 10,
  192. formatter: this.dataTopCenter3 + ' mg/m3',
  193. shape: 'roundRect'
  194. };
  195. },
  196. /**
  197. * 第一排右上角水位图初始化
  198. */
  199. initTopRight() {
  200. this.configTopRight1 = {
  201. data: [ ( (this.dataTopRight1/this.limitTopRight1) * 100 ).toFixed(1) ],
  202. waveHeight: 10,
  203. formatter: this.dataTopRight1 + ' mg/m3',
  204. shape: 'roundRect'
  205. };
  206. this.configTopRight2 = {
  207. data: [ ( (this.dataTopRight2/this.limitTopRight2) * 100 ).toFixed(1) ],
  208. waveHeight: 10,
  209. formatter: this.dataTopRight2 + ' mg/m3',
  210. shape: 'roundRect'
  211. };
  212. this.configTopRight3 = {
  213. data: [ ( (this.dataTopRight3/this.limitTopRight3) * 100 ).toFixed(1) ],
  214. waveHeight: 10,
  215. formatter: this.dataTopRight3 + ' mg/m3',
  216. shape: 'roundRect'
  217. };
  218. },
  219. /**
  220. * 第二排右下角轮播表配置初始化
  221. */
  222. initBottomRight() {
  223. this.configBottomRight = {
  224. data: this.tableDataBottomRight,
  225. header: this.tableHeaderBottomRight,
  226. rowNum: 8,
  227. headerBGC: '#00BAFF',
  228. oddRowBGC: '#003B51',
  229. evenRowBGC: '#0A2732',
  230. waitTime: 3000, // in ms
  231. align: ['center', 'center', 'center', 'center'],
  232. columnWidth: [300, 200, 200],
  233. headerHeight: 50,
  234. carousel: 'single' // 'single' | 'page'
  235. };
  236. }
  237. },
  238. mounted () {
  239. this.initBottomRight();
  240. this.initTopLeft();
  241. this.initTopCenter();
  242. this.initTopRight();
  243. }
  244. }
  245. </script>
  246. <style scoped>
  247. /* 外层盒子 */
  248. .outer-div{ height:5rem;width:33.3%;display:inline-block;float:left; }
  249. /* 第一排样式 */
  250. .inner-div{ width:6.6rem;margin:0px auto;margin-top:25px; }
  251. .analysis-top{ display:inline-block;float:left; }
  252. .analysis-percentage-box{ width:2.1rem;height:1.5rem;display:inline-block;float:left;margin:0.05rem; }
  253. .analysis-percentage-span{ width:2.1rem;height:0.1rem;fontWeight:bold;fontSize:14px; }
  254. .analysis-percentage{ width: 2.1rem;height:1.4rem; }
  255. /* 第二排样式 */
  256. .analysis-bottom-box{ width:6.8rem;margin:0px auto;margin-top:25px; }
  257. .analysis-bottom{ display:inline-block;float:left; }
  258. #scroll-board-box{ height:4.8rem;width:66%;display:inline-block;float:left;margin:0.1rem 0px;margin-left:5px; }
  259. dv-scroll-board{ height:100%;width:100%; }
  260. </style>