aknbqscreen.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <template>
  2. <div>
  3. <div class="d-tt">{{Number(nbqIndex)}}#逆变器分画面</div>
  4. <div class="d-subtt">主画面</div>
  5. <div class="d-pn">
  6. <div class="d-pn-tb">
  7. <table style="border-collapse: collapse;width: 100%;">
  8. <tr v-for="item in dotArr" :key="item.name">
  9. <td width="75%">{{Number(nbqIndex)}}{{ item.name }}</td>
  10. <td width="25%">{{ item.num }}</td>
  11. </tr>
  12. </table>
  13. </div>
  14. <div class="d-pn-ul">
  15. <div class="d-pn-ul-li" :data-active="item.status===true" v-for="(item,index) in dataArr" :key="item.name">{{Number(nbqIndex)}}{{ item.name }}</div>
  16. </div>
  17. </div>
  18. </div>
  19. </template>
  20. <script>
  21. export default {
  22. data(){
  23. return {
  24. dataArr: [
  25. {
  26. name: '#逆变器_待机'
  27. },
  28. {
  29. name: '#逆变器_并网'
  30. },
  31. {
  32. name: '#逆变器_正常并网'
  33. },
  34. {
  35. name: '#逆变器_限电降额并网'
  36. },
  37. {
  38. name: '#逆变器_自降额并网'
  39. },
  40. {
  41. name: '#逆变器_正常运行'
  42. },
  43. {
  44. name: '#逆变器_故障停运'
  45. },
  46. {
  47. name: '#逆变器_限电停运'
  48. },
  49. {
  50. name: '#逆变器_关机'
  51. },
  52. {
  53. name: '#逆变器_电网相线对PE短路'
  54. },
  55. {
  56. name: '#逆变器_电网调电'
  57. },
  58. {
  59. name: '#逆变器_电网欠压'
  60. },
  61. {
  62. name: '#逆变器_电网过压'
  63. },
  64. {
  65. name: '#逆变器_电网电压不平衡'
  66. },
  67. {
  68. name: '#逆变器_电网过频'
  69. },
  70. {
  71. name: '#逆变器_电网欠频'
  72. },
  73. {
  74. name: '#逆变器_电网频率不稳定'
  75. },
  76. {
  77. name: '#逆变器_输出过流'
  78. }
  79. ],
  80. dotArr: [
  81. '#逆变器_机型ID',
  82. '#逆变器_组串个数',
  83. '#逆变器_MPPT个数',
  84. '#逆变器_额定功率(Pn)',
  85. '#逆变器_最大有功(Pmax)',
  86. '#逆变器_最大视在(Smax)',
  87. '#逆变器_最大无功(Qmax,向电网馈)',
  88. '#逆变器_最大无功(Qmax,从电网吸)',
  89. '#逆变器_PV1电流',
  90. '#逆变器_PV2电压',
  91. '#逆变器_PV2电流',
  92. '#逆变器_PV3电压',
  93. '#逆变器_PV3电流',
  94. '#逆变器_PV4电压',
  95. '#逆变器_PV4电流',
  96. '#逆变器_PV5电压',
  97. '#逆变器_PV5电流',
  98. '#逆变器_PV6电压',
  99. '#逆变器_PV6电流',
  100. '#逆变器_PV7电压',
  101. '#逆变器_PV7电流',
  102. '#逆变器_PV8电压',
  103. '#逆变器_PV8电流',
  104. '#逆变器_PV9电压',
  105. '#逆变器_PV9电流',
  106. '#逆变器_PV10电压',
  107. '#逆变器_PV10电流',
  108. '#逆变器_PV11电压',
  109. '#逆变器_PV11电流',
  110. '#逆变器_PV12电压',
  111. '#逆变器_PV12电流',
  112. '#逆变器_PV13电压',
  113. '#逆变器_PV13电流',
  114. '#逆变器_PV14电压',
  115. '#逆变器_PV14电流',
  116. '#逆变器_PV15电压',
  117. '#逆变器_PV15电流',
  118. '#逆变器_PV16电压',
  119. '#逆变器_PV16电流',
  120. '#逆变器_PV17电压',
  121. '#逆变器_PV17电流',
  122. '#逆变器_PV18电压',
  123. '#逆变器_PV18电流',
  124. '#逆变器_有功功率',
  125. '#逆变器_(有功)调节值',
  126. '#逆变器_无功功率',
  127. '#逆变器_(无功)调节值',
  128. ].map(o => {
  129. return {
  130. name: o,
  131. num: 0
  132. }
  133. })
  134. }
  135. },
  136. props:{
  137. datas: {
  138. type: Object,
  139. default: () => {}
  140. },
  141. nbqIndex: {
  142. type: String,
  143. default: '01'
  144. }
  145. },
  146. watch: {
  147. datas(val){
  148. this.funSetDot(val)
  149. },
  150. nbqIndex(val){
  151. this.funSetDot(this.datas)
  152. }
  153. },
  154. methods: {
  155. funSetDot(obj){
  156. this.dotArr.forEach((o, index) => {
  157. if(index+1<10){
  158. o.num = obj[`aknbq0${this.nbqIndex}ai00${index+1}`]
  159. }else{
  160. o.num = obj[`aknbq0${this.nbqIndex}ai0${index+1}`]
  161. }
  162. })
  163. this.dataArr.forEach((o, index) => {
  164. if(index+1<10){
  165. o.status = obj[`aknbq0${this.nbqIndex}di00${index+1}`]
  166. }else{
  167. o.status = obj[`aknbq0${this.nbqIndex}di0${index+1}`]
  168. }
  169. })
  170. }
  171. },
  172. created(){
  173. this.funSetDot(this.datas)
  174. }
  175. }
  176. </script>
  177. <style lang="less" scoped>
  178. .d-tt{
  179. font-size: 24px;
  180. color: white;
  181. height: 30px;
  182. line-height: 30px;
  183. text-align: center;
  184. }
  185. .d-subtt{
  186. font-size: 20px;
  187. color: white;
  188. height: 24px;
  189. line-height: 24px;
  190. padding-left: 10px;
  191. }
  192. .d-pn{
  193. width: 100%;
  194. margin-top: 10px;
  195. display: flex;
  196. border: 2px solid rgba(255,255,255,0.6);
  197. height: 580px;
  198. .d-pn-tb{
  199. width: 70%;
  200. // height: 100%;
  201. overflow-x: hidden;
  202. overflow-y: auto;
  203. margin-top: 10px;
  204. margin-bottom: 20px;
  205. margin-right: 20px;
  206. margin-left: 20px;
  207. border: 1px solid rgba(255,255,255,0.6);
  208. border-collapse: collapse;
  209. tr{
  210. height: 36px;
  211. }
  212. td{
  213. border: 1px solid rgba(255,255,255,0.6);
  214. text-align: right;
  215. padding-right: 10px;
  216. height: 36px;
  217. color: rgba(255,255,255,0.75);
  218. font-size: 16px;
  219. font-weight: bold;
  220. &:last-child{
  221. text-align: center;
  222. }
  223. &:nth-child(2){
  224. color: rgb(41, 238, 14);
  225. }
  226. }
  227. }
  228. .d-pn-ul{
  229. width: 100%;
  230. padding: 20px 30px 0 20px;
  231. border-left: 2px solid rgba(255,255,255,0.6);
  232. display: flex;
  233. flex-wrap: wrap;
  234. align-items: flex-start;
  235. align-content: flex-start;
  236. overflow-y: auto;
  237. overflow-x: hidden;
  238. .d-pn-ul-li{
  239. width: 44%;
  240. height: 40px;
  241. // line-height: 40px;
  242. margin-bottom: 20px;
  243. background-image: linear-gradient(to bottom, rgb(145, 145, 240),rgb(245, 245, 245),rgb(145, 145, 233));
  244. color: rgb(0, 0, 179);
  245. font-size: 16px;
  246. text-align: center;
  247. border-radius: 6px;
  248. margin-right: 10px;
  249. display: flex;
  250. font-size: 14px;
  251. align-items: center;
  252. justify-content: center;
  253. &[data-active='true']{
  254. background-image: linear-gradient(to bottom, red,rgb(243, 136, 128),red);
  255. color: rgb(255, 196, 0);
  256. }
  257. }
  258. }
  259. }
  260. </style>