energy-consumption.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. $(".form-control").datepicker({
  2. format: 'yyyy-mm-dd',
  3. language: 'zh-CN',
  4. autoclose: true,
  5. todayBtn: 'linked'
  6. }).on('changeDate', function () {
  7. }).on('keydown', function (e) {
  8. return false;
  9. });
  10. var zTreeObj;
  11. var setting = {
  12. check: {
  13. enable: true
  14. },
  15. view: {
  16. showIcon: false
  17. }
  18. };
  19. $.ajax({
  20. url: "/ProductionLine/GetProductionLineMachineTree",
  21. type: "GET",
  22. async: true,
  23. success: function (zNodes) {
  24. zTreeObj = $.fn.zTree.init($("#productionLineTree"), setting, zNodes);
  25. }
  26. });
  27. function getEnergyConsumptions() {
  28. var nodes = zTreeObj.getCheckedNodes(true);
  29. if (nodes.length === 0) {
  30. alert("请勾选设备!");
  31. return;
  32. }
  33. var ids = new Array();
  34. for (var i = 0; i < nodes.length; i++) {
  35. if (nodes[i].level === 1) {
  36. ids.push(nodes[i].id);
  37. }
  38. }
  39. if (ids.length === 0) {
  40. alert("请勾选设备!");
  41. return;
  42. }
  43. var startTime = $("#date1").val();
  44. var endTime = $("#date2").val();
  45. $.ajax({
  46. url: "/EnergyConsumption/GetEnergyConsumptionDtoByMes",
  47. type: "POST",
  48. async: true,
  49. data: {
  50. "ids": ids.toString(),
  51. "startTime": startTime,
  52. "endTime": endTime
  53. },
  54. success: function (rev) {
  55. if (rev.code === 0) {
  56. option.series = [];
  57. setX(rev.data.x);
  58. setLegend(rev.data.legend);
  59. for (var i = 0; i < rev.data.series.length; i++) {
  60. addSerie(rev.data.series[i].name, "line", rev.data.series[i].data, 0, " kW·h", rev.data.series[i].id);
  61. }
  62. myChart.setOption(option, true);
  63. }
  64. }
  65. });
  66. option2.series = [];
  67. myChart2.setOption(option2, true);
  68. option3.series = [];
  69. myChart3.setOption(option3, true);
  70. }
  71. function setLegend(legend) {
  72. option.legend.data = legend;
  73. }
  74. function getHourEnergyConsumptions(id, time) {
  75. $.ajax({
  76. url: "/EnergyConsumption/GetHourEnergyConsumptionByMes",
  77. type: "POST",
  78. async: true,
  79. data: {
  80. "id": id,
  81. "time": time
  82. },
  83. success: function (rev) {
  84. if (rev.code === 0) {
  85. if (rev.data.series < 3) {
  86. return;
  87. }
  88. $("#chartName2").text(rev.data.chartName + " 能耗/产能小时曲线");
  89. option2.series = [];
  90. addSerie2(rev.data.series[0].name, "line", rev.data.series[0].data, 0, " kW·h");
  91. addSerie2(rev.data.series[1].name, "line", rev.data.series[1].data, 1, " pcs");
  92. myChart2.setOption(option2, true);
  93. $("#chartName3").text(rev.data.chartName + " 能耗产能比");
  94. option3.series = [];
  95. addSerie3(rev.data.series[2].name, "line", rev.data.series[2].data, 0, " kW·h/pcs");
  96. myChart3.setOption(option3, true);
  97. }
  98. }
  99. });
  100. }
  101. var dom = document.getElementById('container1');
  102. var myChart = echarts.init(dom, 'dark');
  103. var option;
  104. option = {
  105. backgroundColor: '#001529',
  106. tooltip: {
  107. trigger: 'axis'
  108. },
  109. grid: {
  110. left: '3%',
  111. right: '4%',
  112. bottom: '3%',
  113. containLabel: true
  114. },
  115. legend: {
  116. data: []
  117. },
  118. toolbox: {
  119. feature: {
  120. dataZoom: { yAxisIndex: 'none' },
  121. restore: {},
  122. saveAsImage: {}
  123. }
  124. },
  125. textStyle: {
  126. "fontSize": 16
  127. },
  128. xAxis: {
  129. type: 'category',
  130. /*boundaryGap: false,*/
  131. axisLabel:{
  132. /*interval: 0,*/
  133. fontSize: 16,
  134. formatter: function (value) {
  135. return value.substring(5, 13)
  136. }
  137. }
  138. },
  139. yAxis: {
  140. type: 'value',
  141. name: '能耗',
  142. axisLabel: {
  143. fontSize: 16,
  144. formatter: '{value} Kw·h'
  145. }
  146. },
  147. series: []
  148. };
  149. myChart.on('click', function (params) {
  150. //console.log(params);
  151. getHourEnergyConsumptions(params.seriesId, params.name);
  152. });
  153. if (option && typeof option === 'object') {
  154. myChart.setOption(option);
  155. }
  156. window.addEventListener('resize', myChart.resize);
  157. function setX(x) {
  158. option.xAxis.data = x;
  159. }
  160. function addSerie(name, type, data, yIndex, company, id) {
  161. var serie = {
  162. id: id,
  163. name: name,
  164. type: type,
  165. yAxisIndex: yIndex,
  166. tooltip: {
  167. valueFormatter: function (value) {
  168. return value + company;
  169. }
  170. },
  171. label: {
  172. show: true
  173. },
  174. data: data
  175. }
  176. option.series.push(serie);
  177. }
  178. var dom2 = document.getElementById('container2');
  179. var myChart2 = echarts.init(dom2, 'dark');
  180. var option2;
  181. option2 = {
  182. backgroundColor: '#001529',
  183. tooltip: {
  184. trigger: 'axis'
  185. },
  186. grid: {
  187. left: '3%',
  188. right: '4%',
  189. bottom: '3%',
  190. containLabel: true
  191. },
  192. legend: {
  193. data: []
  194. },
  195. toolbox: {
  196. feature: {
  197. dataZoom: { yAxisIndex: 'none' },
  198. restore: {},
  199. saveAsImage: {}
  200. }
  201. },
  202. textStyle: {
  203. "fontSize": 16
  204. },
  205. xAxis: {
  206. type: 'category',
  207. boundaryGap: false,
  208. axisLabel: {
  209. fontSize: 16,
  210. interval: 0,
  211. //formatter: function (value) {
  212. // return value.substring(11, 13)
  213. //}
  214. }
  215. },
  216. yAxis: [
  217. {
  218. type: 'value',
  219. name: '能耗',
  220. axisLabel: {
  221. fontSize: 16,
  222. formatter: '{value} kW·h'
  223. }
  224. },
  225. {
  226. type: 'value',
  227. name: '产能',
  228. axisLabel: {
  229. fontSize: 16,
  230. formatter: '{value} pcs'
  231. }
  232. }
  233. ],
  234. series: []
  235. };
  236. if (option2 && typeof option === 'object') {
  237. myChart2.setOption(option);
  238. }
  239. window.addEventListener('resize', myChart2.resize);
  240. function addSerie2(name, type, data, yIndex, company) {
  241. var serie = {
  242. name: name,
  243. type: type,
  244. yAxisIndex: yIndex,
  245. //stack: 'Total',
  246. tooltip: {
  247. valueFormatter: function (value) {
  248. return value + company;
  249. }
  250. },
  251. data: data
  252. }
  253. option2.series.push(serie);
  254. }
  255. var dom3 = document.getElementById('container3');
  256. var myChart3 = echarts.init(dom3, 'dark');
  257. var option3;
  258. option3 = {
  259. backgroundColor: '#001529',
  260. tooltip: {
  261. trigger: 'axis'
  262. },
  263. grid: {
  264. left: '3%',
  265. right: '4%',
  266. bottom: '3%',
  267. containLabel: true
  268. },
  269. legend: {
  270. data: []
  271. },
  272. toolbox: {
  273. feature: {
  274. dataZoom: { yAxisIndex: 'none' },
  275. restore: {},
  276. saveAsImage: {}
  277. }
  278. },
  279. textStyle: {
  280. "fontSize": 16
  281. },
  282. xAxis: {
  283. type: 'category',
  284. boundaryGap: false,
  285. axisLabel: {
  286. interval: 0,
  287. fontSize: 16,
  288. //formatter: function (value) {
  289. // return value.substring(11, 13)
  290. //}
  291. }
  292. },
  293. yAxis: {
  294. type: 'value',
  295. name: '能耗/产能',
  296. axisLabel: {
  297. fontSize: 16,
  298. formatter: '{value} kW·h/pcs'
  299. }
  300. },
  301. series: []
  302. };
  303. if (option3 && typeof option === 'object') {
  304. myChart3.setOption(option);
  305. }
  306. window.addEventListener('resize', myChart3.resize);
  307. function addSerie3(name, type, data, yIndex, company) {
  308. var serie = {
  309. name: name,
  310. type: type,
  311. yAxisIndex: yIndex,
  312. tooltip: {
  313. valueFormatter: function (value) {
  314. return value + company;
  315. }
  316. },
  317. data: data
  318. }
  319. option3.series.push(serie);
  320. }