channel_display.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. // 通道集合
  2. let channelAllList = [];
  3. let channelAllList1 = [];
  4. function channel_display(j_data, channel_power_infro) {
  5. channelAllList = [];
  6. channelAllList1 = [];
  7. length = channel_power_infro.length
  8. for (let j = 1; j < length; j++) {
  9. let alarm = channel_power_infro[j].alarm;
  10. let thr = channel_power_infro[j].thr;
  11. num = channel_power_infro[j].info.type
  12. // 创建一个新的列表项元素
  13. const channelFormData1 = {
  14. };
  15. //自动生成通道名称列
  16. channelFormData1.productChName = "CH" + j
  17. //自动生成通道号
  18. channelFormData1.productChId = j
  19. // 开启延时
  20. channelFormData1.firingInterval = channel_power_infro[j].info.start_delay
  21. // 关闭延时
  22. channelFormData1.closeInterval = channel_power_infro[j].info.stop_delay
  23. channelFormData1.channel_power_infro = channel_power_infro[j];
  24. channelAllList1.push(channelFormData1);
  25. if (productTypeData.productType == '0' || productTypeData.productType == '1') {
  26. const channelFormData = {
  27. };
  28. if (alarm.l1_c_upper != 0) {
  29. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  30. } else {
  31. channelFormData.colorStyledl = ''
  32. }
  33. if (alarm.l1_p_upper != 0) {
  34. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  35. } else {
  36. channelFormData.colorStylegl = ''
  37. }
  38. if (alarm.l1_v_lower != 0) {
  39. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  40. } else {
  41. channelFormData.colorStyledy2 = ''
  42. }
  43. if (alarm.l1_v_upper != 0) {
  44. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  45. } else {
  46. channelFormData.colorStyledy = ''
  47. }
  48. if (alarm.l1_w_upper != 0) {
  49. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  50. } else {
  51. channelFormData.colorStylehdl = ''
  52. }
  53. //自动生成设备名称列
  54. //自动生成通道名称列
  55. channelFormData.productChName = "CH" + j
  56. //自动生成通道号
  57. channelFormData.productChId = j
  58. //自动生成相序列
  59. channelFormData.productPhOrder = "L1"
  60. // 自动生成电压列
  61. var val = channel_power_infro[j].power[0].voltage / 100.0;
  62. channelFormData.productChVoltage = val
  63. // 自动生成电流列
  64. var val = channel_power_infro[j].power[0].current / 100.0;
  65. channelFormData.productChCurrent = val
  66. // 自动生成功率列
  67. var val = channel_power_infro[j].power[0].power / 100.0 / 1000.0;
  68. channelFormData.productChPower = val.toFixed(2)
  69. // 自动生成频率列
  70. var val = channel_power_infro[j].power[0].freq / 100.0;
  71. channelFormData.productChPowerFreq = val
  72. // 自动生成耗电量列
  73. var val = channel_power_infro[j].power[0].consump / 100.0;
  74. channelFormData.productChConsumption = val
  75. // 自动生成功率因数列
  76. // const factor_td = document.createElement('td');
  77. var val = channel_power_infro[j].power[0].factor / 100.0;
  78. channelFormData.productChPowerFactor = val
  79. // 开启延时
  80. channelFormData.firingInterval = channel_power_infro[j].info.start_delay
  81. // 关闭延时
  82. channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
  83. //通道状态
  84. channel_status = channel_power_infro[j].status
  85. channelFormData.productChStatus = channel_status
  86. channelFormData.channel_power_infro = channel_power_infro[j]
  87. channelAllList.push(channelFormData);
  88. // 三相进单项出
  89. } else if (productTypeData.productType == '4' || productTypeData.productType == '5') {
  90. var ph_id = channel_power_infro[j].info.ph_id;
  91. ph_id = ph_id > 0 ? ph_id - 1 : ph_id;
  92. const channelFormData = {
  93. };
  94. if (ph_id == 0) {
  95. if (alarm.l1_c_upper != 0) {
  96. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  97. } else {
  98. channelFormData.colorStyledl = ''
  99. }
  100. if (alarm.l1_p_upper != 0) {
  101. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  102. } else {
  103. channelFormData.colorStylegl = ''
  104. }
  105. if (alarm.l1_v_lower != 0) {
  106. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  107. } else {
  108. channelFormData.colorStyledy2 = ''
  109. }
  110. if (alarm.l1_v_upper != 0) {
  111. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  112. } else {
  113. channelFormData.colorStyledy = ''
  114. }
  115. if (alarm.l1_w_upper != 0) {
  116. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  117. } else {
  118. channelFormData.colorStylehdl = ''
  119. }
  120. } else if (ph_id == 1) {
  121. if (alarm.l2_c_upper != 0) {
  122. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  123. } else {
  124. channelFormData.colorStyledl = ''
  125. }
  126. if (alarm.l2_p_upper != 0) {
  127. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  128. } else {
  129. channelFormData.colorStylegl = ''
  130. }
  131. if (alarm.l2_v_lower != 0) {
  132. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  133. } else {
  134. channelFormData.colorStyledy2 = ''
  135. }
  136. if (alarm.l2_v_upper != 0) {
  137. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  138. } else {
  139. channelFormData.colorStyledy = ''
  140. }
  141. if (alarm.l2_w_upper != 0) {
  142. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  143. } else {
  144. channelFormData.colorStylehdl = ''
  145. }
  146. } else if (ph_id == 2) {
  147. if (alarm.l3_c_upper != 0) {
  148. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  149. } else {
  150. channelFormData.colorStyledl = ''
  151. }
  152. if (alarm.l3_p_upper != 0) {
  153. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  154. } else {
  155. channelFormData.colorStylegl = ''
  156. }
  157. if (alarm.l3_v_lower != 0) {
  158. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  159. } else {
  160. channelFormData.colorStyledy2 = ''
  161. }
  162. if (alarm.l3_v_upper != 0) {
  163. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  164. } else {
  165. channelFormData.colorStyledy = ''
  166. }
  167. if (alarm.l3_w_upper != 0) {
  168. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  169. } else {
  170. channelFormData.colorStylehdl = ''
  171. }
  172. }
  173. //自动生成设备名称列
  174. //自动生成通道名称列
  175. channelFormData.productChName = "CH" + j
  176. //自动生成通道号
  177. channelFormData.productChId = j
  178. //自动生成相序列
  179. channelFormData.productPhOrder = "L" + channel_power_infro[j].info.ph_id;
  180. // 自动生成电压列
  181. var val = channel_power_infro[j].power[ph_id].voltage / 100.0;
  182. channelFormData.productChVoltage = val
  183. // 自动生成电流列
  184. var val = channel_power_infro[j].power[ph_id].current / 100.0;
  185. channelFormData.productChCurrent = val
  186. // 自动生成功率列
  187. var val = channel_power_infro[j].power[ph_id].power / 100.0 / 1000.0;
  188. channelFormData.productChPower = val.toFixed(2)
  189. // 自动生成频率列
  190. var val = channel_power_infro[j].power[ph_id].freq / 100.0;
  191. channelFormData.productChPowerFreq = val
  192. // 自动生成耗电量列
  193. var val = channel_power_infro[j].power[ph_id].consump / 100.0;
  194. channelFormData.productChConsumption = val
  195. // 自动生成功率因数列
  196. // const factor_td = document.createElement('td');
  197. var val = channel_power_infro[j].power[ph_id].factor / 100.0;
  198. channelFormData.productChPowerFactor = val
  199. // 开启延时
  200. channelFormData.firingInterval = channel_power_infro[j].info.start_delay
  201. // 关闭延时
  202. channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
  203. //通道状态
  204. channel_status = channel_power_infro[j].status
  205. channelFormData.productChStatus = channel_status
  206. channelFormData.channel_power_infro = channel_power_infro[j]
  207. channelAllList.push(channelFormData);
  208. } else if (productTypeData.productType == '6') {
  209. // 三相进两项出
  210. var ph_id = channel_power_infro[j].info.ph_id;
  211. ph_id = ph_id - 1;
  212. var ph_val = channel_power_infro[j].info.ph_val;
  213. ph_val = ph_val - 1;
  214. // 第一相数据
  215. // 自动生成电压列
  216. var channelFormData = {
  217. };
  218. // l1_v_lower 电压低限 l1_v_upper 电压高先
  219. if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {
  220. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  221. }
  222. if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {
  223. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  224. }
  225. if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {
  226. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  227. }
  228. if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {
  229. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  230. }
  231. if (alarm.l1_w_upper != 0 || alarm.l2_w_upper != 0 || alarm.l3_w_upper != 0) {
  232. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  233. }
  234. //自动生成通道名称列
  235. channelFormData.productChName = "CH" + j
  236. //自动生成通道号
  237. channelFormData.productChId = j
  238. //自动生成相序列
  239. channelFormData.productPhOrder = "L" + (ph_id + 1)
  240. // 自动生成功率因数列
  241. // const factor_td = document.createElement('td');
  242. var val = channel_power_infro[j].power[ph_id].factor / 100.0;
  243. channelFormData.productChPowerFactor = val;
  244. // 开启延时
  245. channelFormData.firingInterval = channel_power_infro[j].info.start_delay
  246. // 关闭延时
  247. channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
  248. //通道状态
  249. channel_status = channel_power_infro[j].status
  250. channelFormData.productChStatus = channel_status
  251. var val = channel_power_infro[j].power[ph_id].voltage / 100.0;
  252. channelFormData.productChVoltage = val
  253. // 自动生成电流列
  254. var val = channel_power_infro[j].power[ph_id].current / 100.0;
  255. channelFormData.productChCurrent = val
  256. // 自动生成功率列
  257. var val = channel_power_infro[j].power[ph_id].power / 100.0 / 1000.0;
  258. channelFormData.productChPower = val.toFixed(2)
  259. // 自动生成频率列
  260. var val = channel_power_infro[j].power[ph_id].freq / 100.0;
  261. channelFormData.productChPowerFreq = val
  262. // 自动生成耗电量列
  263. var val = channel_power_infro[j].power[ph_id].consump / 100.0;
  264. channelFormData.productChConsumption = val
  265. channelFormData.channel_power_infro = channel_power_infro[j]
  266. channelAllList.push(channelFormData);
  267. // 第二相数据
  268. channelFormData = {
  269. };
  270. // l1_v_lower 电压低限 l1_v_upper 电压高先
  271. if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {
  272. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  273. }
  274. if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {
  275. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  276. }
  277. if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {
  278. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  279. }
  280. if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {
  281. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  282. }
  283. if (alarm.l1_w_upper != 0 || alarm.l2_w_upper != 0 || alarm.l3_w_upper != 0) {
  284. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  285. }
  286. //自动生成通道名称列
  287. channelFormData.productChName = "CH" + j
  288. //自动生成通道号
  289. channelFormData.productChId = j
  290. //自动生成相序列
  291. channelFormData.productPhOrder = "L" + (ph_val + 1)
  292. // 自动生成功率因数列
  293. // const factor_td = document.createElement('td');
  294. var val = channel_power_infro[j].power[ph_val].factor / 100.0;
  295. channelFormData.productChPowerFactor = val;
  296. // 开启延时
  297. channelFormData.firingInterval = channel_power_infro[j].info.start_delay
  298. // 关闭延时
  299. channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
  300. //通道状态
  301. channel_status = channel_power_infro[j].status
  302. channelFormData.productChStatus = channel_status
  303. var val = channel_power_infro[j].power[ph_val].voltage / 100.0;
  304. channelFormData.productChVoltage = val
  305. // 自动生成电流列
  306. var val = channel_power_infro[j].power[ph_val].current / 100.0;
  307. channelFormData.productChCurrent = val
  308. // 自动生成功率列
  309. var val = channel_power_infro[j].power[ph_val].power / 100.0 / 1000.0;
  310. channelFormData.productChPower = val.toFixed(2)
  311. // 自动生成频率列
  312. var val = channel_power_infro[j].power[ph_val].freq / 100.0;
  313. channelFormData.productChPowerFreq = val
  314. // 自动生成耗电量列
  315. var val = channel_power_infro[j].power[ph_val].consump / 100.0;
  316. channelFormData.productChConsumption = val
  317. channelFormData.channel_power_infro = channel_power_infro[j]
  318. channelAllList.push(channelFormData);
  319. } else {
  320. // 三相进三相出
  321. // 自动生成电压列
  322. for (let m = 0; m < channel_power_infro[j].power.length; m++) {
  323. const channelFormData = {
  324. };
  325. // l1_v_lower 电压低限 l1_v_upper 电压高先
  326. if (alarm.l1_c_upper != 0 || alarm.l2_c_upper != 0 || alarm.l3_c_upper != 0) {
  327. channelFormData.colorStyledl = 'color: red;font-weight: bold;'
  328. }
  329. if (alarm.l1_p_upper != 0 || alarm.l2_p_upper != 0 || alarm.l3_p_upper != 0) {
  330. channelFormData.colorStylegl = 'color: red;font-weight: bold;'
  331. }
  332. if (alarm.l1_v_lower != 0 || alarm.l2_v_lower != 0 || alarm.l3_v_lower != 0) {
  333. channelFormData.colorStyledy2 = 'color: #7030A0;font-weight: bold;'
  334. }
  335. if (alarm.l1_v_upper != 0 || alarm.l2_v_upper != 0 || alarm.l3_v_upper != 0) {
  336. channelFormData.colorStyledy = 'color: red;font-weight: bold;'
  337. }
  338. if (alarm.l1_w_upper != 0 || alarm.l3_w_upper != 0 || alarm.l3_w_upper != 0) {
  339. channelFormData.colorStylehdl = 'color: red;font-weight: bold;'
  340. }
  341. //自动生成设备名称列
  342. //自动生成通道名称列
  343. channelFormData.productChName = "CH" + j
  344. //自动生成通道号
  345. channelFormData.productChId = j
  346. //自动生成相序列
  347. channelFormData.productPhOrder = "L" + (m + 1)
  348. // 自动生成功率因数列
  349. // const factor_td = document.createElement('td');
  350. var val = channel_power_infro[j].power[m].factor / 100.0;
  351. channelFormData.productChPowerFactor = val;
  352. // 开启延时
  353. channelFormData.firingInterval = channel_power_infro[j].info.start_delay
  354. // 关闭延时
  355. channelFormData.closeInterval = channel_power_infro[j].info.stop_delay
  356. //通道状态
  357. channel_status = channel_power_infro[j].status
  358. channelFormData.productChStatus = channel_status
  359. var val = channel_power_infro[j].power[m].voltage / 100.0;
  360. channelFormData.productChVoltage = val
  361. // 自动生成电流列
  362. var val = channel_power_infro[j].power[m].current / 100.0;
  363. channelFormData.productChCurrent = val
  364. // 自动生成功率列
  365. var val = channel_power_infro[j].power[m].power / 100.0 / 1000.0;
  366. channelFormData.productChPower = val.toFixed(2)
  367. // 自动生成频率列
  368. var val = channel_power_infro[j].power[m].freq / 100.0;
  369. channelFormData.productChPowerFreq = val
  370. // 自动生成耗电量列
  371. var val = channel_power_infro[j].power[m].consump / 100.0;
  372. channelFormData.productChConsumption = val
  373. channelFormData.channel_power_infro = channel_power_infro[j]
  374. channelAllList.push(channelFormData);
  375. }
  376. }
  377. }
  378. }