demo.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <link rel="shortcut icon" href="/img/logo.png" />
  7. <link rel="bookmark" href="/img/logo.png" />
  8. <link rel="stylesheet" href="../DashBoard.css?v3" />
  9. <script src="/Plugins/jquery-3.4.1/jquery-3.4.1.min.js"></script>
  10. <script src="/Plugins/xrequest/xrequest.min.js"></script>
  11. <script src="/Plugins/xcountto/xcountTo.min.js"></script>
  12. <title>东科软件</title>
  13. </head>
  14. <body>
  15. <div class="m4_box_1920_1080">
  16. <div class="m4_box_title" onclick="showHelp()" style="cursor:pointer">
  17. <div class="m4_box_title_arrow"></div><div class="m4_box_title_arrow2"></div> <div>能耗管理</div><span class="m4_box_title_loading" id="报表加载"></span>
  18. </div>
  19. <div class="m4_box_body">
  20. <div style="width:1720px;height:390px;display:flex;flex-direction:row;">
  21. <div style="width: 1335px;height:390px;">
  22. <!--干燥房燃气用量-->
  23. <canvas id="canvasHouse" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:360px;width:100%"></canvas>
  24. </div>
  25. <div style="width: 385px; height: 390px; padding-left:20px;">
  26. <!--月日累计用量-->
  27. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  28. <tr class="tr_title_warning">
  29. <td>日累计 m³</td>
  30. <td>月累计 m³</td>
  31. </tr>
  32. <tr class="tr_bg_light_warning" style="height:140px;">
  33. <td id="d1" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  34. <td id="m1" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  35. </tr>
  36. </table>
  37. </div>
  38. </div>
  39. <div style="width:1720px;height:390px;display:flex;flex-direction:row;">
  40. <div style="width: 1335px;height:390px;">
  41. <!--变压器电能用量-->
  42. <canvas id="canvasPower" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:360px;width:100%"></canvas>
  43. </div>
  44. <div style="width: 385px; height: 400px; ">
  45. <!--月日累计用量-->
  46. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  47. <tr class="tr_title_warning">
  48. <td>日累计 kw.h</td>
  49. <td>月累计 kw.h</td>
  50. </tr>
  51. <tr class="tr_bg_light_warning" style="height:140px;">
  52. <td id="d2" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  53. <td id="m2" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  54. </tr>
  55. </table>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <script>
  61. //缺陷统计刷新时间
  62. var refreshTime1 = 10000;
  63. var currentTime1 = 0;
  64. var doGetData;
  65. var doGetTime;
  66. var frameHeight;
  67. var tableHeight;
  68. var offsetHeight = 20;
  69. $(document).ready(function () {
  70. initData();
  71. doGetData = setInterval(function () { timeUpdate(); }, 1000);
  72. });
  73. //帮助说明
  74. function showHelp() {
  75. var message = "统计说明:" + "\n";
  76. message += "这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明" + "\n";
  77. message += "这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明" + "\n";
  78. message += "这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明这是文字说明" + "\n";
  79. alert(message);
  80. }
  81. function timeUpdate() {
  82. if (currentTime1 <= 0) {
  83. //clearData();
  84. loadData();
  85. currentTime1 = refreshTime1;
  86. }
  87. else {
  88. if (currentTime1 > 0) {
  89. $('#报表加载').html('刷新:' + currentTime1 / 1000 + ' 秒');
  90. currentTime1 = currentTime1 - 1000;
  91. }
  92. }
  93. }
  94. function clearData() {
  95. //清除数据
  96. //===================================
  97. window.House.data.labels = ['', '', '', '', '', '', ''];
  98. window.House.data.datasets[0].data = [0, 0, 0, 0, 0, 0, 0];
  99. window.House.data.datasets[1].data = [0, 0, 0, 0, 0, 0, 0];
  100. window.House.data.datasets[2].data = [0, 0, 0, 0, 0, 0, 0];
  101. window.House.update();
  102. //===================================================
  103. window.Power.data.labels = ['', '', '', '', '', '', ''];
  104. window.Power.data.datasets[0].data = [0, 0, 0, 0, 0, 0, 0];
  105. window.Power.data.datasets[1].data = [0, 0, 0, 0, 0, 0, 0];
  106. window.Power.data.datasets[2].data = [0, 0, 0, 0, 0, 0, 0];
  107. window.Power.update();
  108. }
  109. function loadData() {
  110. $.get("demo.ashx?m=GAS51", function (data) {
  111. var jsondata = JSON.parse(data);
  112. if (jsondata["success"] == true) {
  113. for (var i = 0; i < jsondata["rows"].length; i++) {
  114. window.House.data.labels[i] = jsondata["rows"][i]["读取时间"];
  115. window.House.data.datasets[0].data[i] = jsondata["rows"][i]["燃气表计量"];
  116. }
  117. window.House.update();
  118. }
  119. });
  120. $.get("demo.ashx?m=GAS52", function (data) {
  121. var jsondata = JSON.parse(data);
  122. if (jsondata["success"] == true) {
  123. for (var i = 0; i < jsondata["rows"].length; i++) {
  124. window.House.data.labels[i] = jsondata["rows"][i]["读取时间"];
  125. window.House.data.datasets[1].data[i] = jsondata["rows"][i]["燃气表计量"];
  126. }
  127. window.House.update();
  128. }
  129. });
  130. $.get("demo.ashx?m=GAS53", function (data) {
  131. var jsondata = JSON.parse(data);
  132. if (jsondata["success"] == true) {
  133. for (var i = 0; i < jsondata["rows"].length; i++) {
  134. window.House.data.labels[i] = jsondata["rows"][i]["读取时间"];
  135. window.House.data.datasets[2].data[i] = jsondata["rows"][i]["燃气表计量"];
  136. }
  137. window.House.update();
  138. }
  139. });
  140. $.get("demo.ashx?m=GAS54", function (data) {
  141. var jsondata = JSON.parse(data);
  142. if (jsondata["success"] == true) {
  143. for (var i = 0; i < jsondata["rows"].length; i++) {
  144. window.House.data.labels[i] = jsondata["rows"][i]["读取时间"];
  145. window.House.data.datasets[3].data[i] = jsondata["rows"][i]["燃气表计量"];
  146. }
  147. window.House.update();
  148. }
  149. });
  150. $.get("demo.ashx?m=METERID49", function (data) {
  151. var jsondata = JSON.parse(data);
  152. if (jsondata["success"] == true) {
  153. for (var i = 0; i < jsondata["rows"].length; i++) {
  154. window.Power.data.labels[i] = jsondata["rows"][i]["读取时间"];
  155. window.Power.data.datasets[0].data[i] = jsondata["rows"][i]["电量"];
  156. }
  157. window.Power.update();
  158. }
  159. });
  160. $.get("demo.ashx?m=METERID61", function (data) {
  161. var jsondata = JSON.parse(data);
  162. if (jsondata["success"] == true) {
  163. for (var i = 0; i < jsondata["rows"].length; i++) {
  164. window.Power.data.labels[i] = jsondata["rows"][i]["读取时间"];
  165. window.Power.data.datasets[1].data[i] = jsondata["rows"][i]["电量"];
  166. }
  167. window.Power.update();
  168. }
  169. });
  170. $.get("demo.ashx?m=METERID62", function (data) {
  171. var jsondata = JSON.parse(data);
  172. if (jsondata["success"] == true) {
  173. for (var i = 0; i < jsondata["rows"].length; i++) {
  174. window.Power.data.labels[i] = jsondata["rows"][i]["读取时间"];
  175. window.Power.data.datasets[2].data[i] = jsondata["rows"][i]["电量"];
  176. }
  177. window.Power.update();
  178. }
  179. });
  180. $.get("demo.ashx?m=METERID63", function (data) {
  181. var jsondata = JSON.parse(data);
  182. if (jsondata["success"] == true) {
  183. for (var i = 0; i < jsondata["rows"].length; i++) {
  184. window.Power.data.labels[i] = jsondata["rows"][i]["读取时间"];
  185. window.Power.data.datasets[3].data[i] = jsondata["rows"][i]["电量"];
  186. }
  187. window.Power.update();
  188. }
  189. });
  190. $.get("demo.ashx?m=GASMONTH66", function (data) {
  191. var jsondata = JSON.parse(data);
  192. if (jsondata["success"] == true) {
  193. $("#m1").attr('data-to', jsondata["rows"][0]["燃气表计量"]);
  194. $("#m1").countTo();
  195. }
  196. });
  197. $.get("demo.ashx?m=GASDAY77", function (data) {
  198. var jsondata = JSON.parse(data);
  199. if (jsondata["success"] == true) {
  200. $("#d1").attr('data-to', jsondata["rows"][0]["燃气表计量"]);
  201. $("#d1").countTo();
  202. }
  203. });
  204. $.get("demo.ashx?m=POWERMONTH88", function (data) {
  205. var jsondata = JSON.parse(data);
  206. if (jsondata["success"] == true) {
  207. $("#m2").attr('data-to', jsondata["rows"][0]["电量"]);
  208. $("#m2").countTo();
  209. }
  210. });
  211. $.get("demo.ashx?m=POWERDAY99", function (data) {
  212. var jsondata = JSON.parse(data);
  213. if (jsondata["success"] == true) {
  214. $("#d2").attr('data-to', jsondata["rows"][0]["电量"]);
  215. $("#d2").countTo();
  216. }
  217. });
  218. //变压器静态数据 xuwei add 2021-11-06 =========================================
  219. //只支持2021-10-31至2021-11-10
  220. //var powerData = [
  221. // [93228, 98500, 92123, 94887, 91231, 98321, 97228, 95500, 90123, 97887, 95231, 98321],
  222. // [35860, 35500, 35621, 36554, 36666, 35123, 35860, 35500, 35621, 36554, 36666, 35123],
  223. // [16756, 18600, 15887, 18867, 16986, 18521, 17756, 19600, 12887, 18867, 16986, 17521],
  224. // [26956, 26754, 26854, 27123, 28543, 25333, 26956, 28754, 26854, 27123, 26543, 25333]
  225. //];
  226. //var thatDay = Math.ceil((new Date('2021-10-31') - new Date(new Date().getFullYear().toString())) / 86400000) + 1;
  227. //var thisDay = Math.ceil((new Date() - new Date(new Date().getFullYear().toString())) / 86400000) + 1;
  228. //for (var i = 0; i < 7; i++)
  229. // for (var j = 0; j < 4; j++)
  230. // if (i < 6) window.Power.data.datasets[j].data[i] = powerData[j][thisDay - thatDay - 6 + i ];
  231. // else window.Power.data.datasets[j].data[i] = Math.round(powerData[j][thisDay - thatDay - 6 + i ] / (24 * 60)) * ((new Date().getHours() - 1) * 60 + new Date().getMinutes());
  232. //window.Power.update();
  233. //===========================================================================
  234. //var num = window.Power.data.datasets[0].data[6] + window.Power.data.datasets[1].data[6] + window.Power.data.datasets[2].data[6] + window.Power.data.datasets[3].data[6];
  235. //var dateday = new Date().getDate();
  236. //$("#m2").attr('data-to', num * parseInt(dateday) );
  237. //$("#m2").countTo();
  238. //$("#d2").attr('data-to', num );
  239. //$("#d2").countTo();
  240. }
  241. function initData() {
  242. window.chartColors = {
  243. red: 'rgb(255, 99, 132)',
  244. orange: 'rgb(255, 159, 64)',
  245. yellow: 'rgb(255, 250, 86)',
  246. green: 'rgb(75, 192, 192)',
  247. blue: 'rgb(54, 162, 250)',
  248. purple: 'rgb(153, 102, 255)',
  249. grey: 'rgb(231,233,237)'
  250. };
  251. var color = Chart.helpers.color;
  252. window.randomScalingFactor = function (num) {
  253. return Math.round(Math.random() * num);
  254. }
  255. Chart.defaults.global.defaultFontColor = 'white';
  256. Chart.defaults.global.defaultFontSize = 24;
  257. Chart.defaults.global.legend.display = false;
  258. //燃气用量===========================================
  259. window.configHouse = {
  260. data: {
  261. labels: ['', '', '', '', '', '', ''],
  262. datasets: [{
  263. label: '烘干房(1号)',
  264. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  265. fill: false,
  266. borderColor: window.chartColors.blue,
  267. borderWidth: 2,
  268. pointRadius: 10,
  269. data: [0, 0, 0, 0, 0, 0, 0]
  270. }, {
  271. label: '烘干房(2号)',
  272. backgroundColor: color(window.chartColors.red).alpha(0.6).rgbString(),
  273. fill: false,
  274. borderColor: window.chartColors.red,
  275. borderWidth: 2,
  276. pointRadius: 10,
  277. data: [0, 0, 0, 0, 0, 0, 0]
  278. }, {
  279. label: '烘干房(3号)',
  280. backgroundColor: color(window.chartColors.green).alpha(0.6).rgbString(),
  281. fill: false,
  282. borderColor: window.chartColors.green,
  283. borderWidth: 2,
  284. pointRadius: 10,
  285. data: [0, 0, 0, 0, 0, 0, 0]
  286. }, {
  287. label: '烘干房(4号)',
  288. backgroundColor: color(window.chartColors.orange).alpha(0.6).rgbString(),
  289. fill: false,
  290. borderColor: window.chartColors.orange,
  291. borderWidth: 2,
  292. pointRadius: 10,
  293. data: [0, 0, 0, 0, 0, 0, 0]
  294. }
  295. ]
  296. },
  297. type: 'line',
  298. options: {
  299. legend: {
  300. display: true
  301. },
  302. title: {
  303. display: true,
  304. text: "干燥房一周燃气用量统计"
  305. },
  306. tooltips: {
  307. mode: 'point',
  308. intersect: false
  309. },
  310. responsive: true,
  311. scales: {
  312. xAxes: [{
  313. stacked: false
  314. }],
  315. yAxes: [{
  316. display: true,
  317. stacked: false,
  318. ticks: {
  319. min: 0,
  320. stepSize: 200,
  321. max: 1200
  322. }
  323. }]
  324. }
  325. }
  326. };
  327. var ctxHouse = document.getElementById("canvasHouse").getContext("2d");
  328. window.House = new Chart(ctxHouse, configHouse);
  329. //===================================================
  330. //电能用量===========================================
  331. window.configPower = {
  332. data: {
  333. labels: ['', '', '', '', '', '', ''],
  334. datasets: [{
  335. label: '变压器(1号)',
  336. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  337. fill: false,
  338. borderColor: window.chartColors.blue,
  339. borderWidth: 2,
  340. pointRadius: 10,
  341. data: []
  342. }, {
  343. label: '变压器(2号)',
  344. backgroundColor: color(window.chartColors.red).alpha(0.6).rgbString(),
  345. fill: false,
  346. borderColor: window.chartColors.red,
  347. borderWidth: 2,
  348. pointRadius: 10,
  349. data: []
  350. }, {
  351. label: '变压器(3号)',
  352. backgroundColor: color(window.chartColors.green).alpha(0.6).rgbString(),
  353. fill: false,
  354. borderColor: window.chartColors.green,
  355. borderWidth: 2,
  356. pointRadius: 10,
  357. data: []
  358. }, {
  359. label: '变压器(4号)',
  360. backgroundColor: color(window.chartColors.orange).alpha(0.6).rgbString(),
  361. fill: false,
  362. borderColor: window.chartColors.orange,
  363. borderWidth: 2,
  364. pointRadius: 10,
  365. data: []
  366. }
  367. ]
  368. },
  369. type: 'line',
  370. options: {
  371. legend: {
  372. display: true
  373. },
  374. title: {
  375. display: true,
  376. text: "变压器一周电能用量统计"
  377. },
  378. tooltips: {
  379. mode: 'point',
  380. intersect: false
  381. },
  382. responsive: true,
  383. scales: {
  384. xAxes: [{
  385. stacked: false
  386. }],
  387. yAxes: [{
  388. display: true,
  389. stacked: false,
  390. ticks: {
  391. min: 0,
  392. stepSize: 200,
  393. max: 1200
  394. }
  395. }]
  396. }
  397. }
  398. };
  399. var ctxPower = document.getElementById("canvasPower").getContext("2d");
  400. window.Power = new Chart(ctxPower, configPower);
  401. //===================================================
  402. }
  403. </script>
  404. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  405. <!--<script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>-->
  406. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  407. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  408. </body>
  409. </html>