index_bak.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  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">
  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" style="padding-right: 20px;">
  20. <div style="width: 1720px; height: 440px;">
  21. <div style="display:flex;">
  22. <div style="width: 445px; height: 440px;">
  23. <!--设备运行时间统计图-->
  24. <canvas id="canvasDevice" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:440px;width:100%"></canvas>
  25. </div>
  26. <div style="width: 445px; height: 440px;">
  27. <!--成型设备-->
  28. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  29. <tr class="tr_title">
  30. <td style="width:280px;">成型设备</td>
  31. <td>状态</td>
  32. </tr>
  33. <tr class="tr_bg_light">
  34. <td>高压注浆(1线)</td>
  35. <td><span id="gy01" class="status_red">█</span> <span id="gy01_title"></span> </td>
  36. </tr>
  37. <tr class="tr_bg_dark">
  38. <td>高压注浆(2线)</td>
  39. <td><span id="gy02" class="status_red">█</span> <span id="gy02_title"></span> </td>
  40. </tr>
  41. <tr class="tr_bg_light">
  42. <td>高压注浆(3线)</td>
  43. <td><span id="gy03" class="status_red">█</span> <span id="gy03_title"></span> </td>
  44. </tr>
  45. <tr class="tr_bg_dark">
  46. <td>高压注浆(4线)</td>
  47. <td><span id="gy04" class="status_red">█</span> <span id="gy04_title"></span> </td>
  48. </tr>
  49. <tr class="tr_bg_light">
  50. <td>高压注浆(5线)</td>
  51. <td><span id="gy05" class="status_red">█</span> <span id="gy05_title"></span> </td>
  52. </tr>
  53. <tr class="tr_bg_dark">
  54. <td>高压注浆(6线)</td>
  55. <td><span id="gy06" class="status_red">█</span> <span id="gy06_title"></span> </td>
  56. </tr>
  57. </table>
  58. </div>
  59. <div style="width: 445px; height: 440px;">
  60. <!--干燥房-->
  61. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  62. <tr class="tr_title">
  63. <td style="width:280px;">烘干房</td>
  64. <td>状态</td>
  65. </tr>
  66. <tr class="tr_bg_light">
  67. <td>阴干房(1号)</td>
  68. <td><span id="hg01" class="status_red">█</span> <span id="hg01_title"></span> </td>
  69. </tr>
  70. <tr class="tr_bg_dark">
  71. <td>阴干房(2号)</td>
  72. <td><span id="hg02" class="status_red">█</span> <span id="hg02_title"></span> </td>
  73. </tr>
  74. <tr class="tr_bg_light">
  75. <td>烘干房(1号)</td>
  76. <td><span id="hg03" class="status_red">█</span> <span id="hg03_title"></span> </td>
  77. </tr>
  78. <tr class="tr_bg_dark">
  79. <td>烘干房(2号)</td>
  80. <td><span id="hg04" class="status_red">█</span> <span id="hg04_title"></span> </td>
  81. </tr>
  82. <tr class="tr_bg_light">
  83. <td>烘干房(3号)</td>
  84. <td><span id="hg05" class="status_red">█</span> <span id="hg05_title"></span> </td>
  85. </tr>
  86. <tr class="tr_bg_dark">
  87. <td>烘干房(4号)</td>
  88. <td><span id="hg06" class="status_red">█</span> <span id="hg06_title"></span> </td>
  89. </tr>
  90. </table>
  91. </div>
  92. <div style="width: 445px; height: 440px;">
  93. <!--施釉机器人-->
  94. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  95. <tr class="tr_title">
  96. <td style="width:280px;">施釉(4+1线)</td>
  97. <td>状态</td>
  98. </tr>
  99. <tr class="tr_bg_light">
  100. <td>搬运机器人(1号)</td>
  101. <td><span id="sy01" class="status_red">█</span> <span id="sy01_title"></span> </td>
  102. </tr>
  103. <tr class="tr_bg_dark">
  104. <td>喷房机器人(1号)</td>
  105. <td><span id="sy02" class="status_red">█</span> <span id="sy02_title"></span> </td>
  106. </tr>
  107. <tr class="tr_bg_light">
  108. <td>喷房机器人(2号)</td>
  109. <td><span id="sy03" class="status_red">█</span> <span id="sy03_title"></span> </td>
  110. </tr>
  111. <tr class="tr_bg_dark">
  112. <td>喷房机器人(3号)</td>
  113. <td><span id="sy04" class="status_red">█</span> <span id="sy04_title"></span> </td>
  114. </tr>
  115. <tr class="tr_bg_light">
  116. <td>喷房机器人(4号)</td>
  117. <td><span id="sy05" class="status_red">█</span> <span id="sy05_title"></span> </td>
  118. </tr>
  119. <tr class="tr_bg_dark">
  120. <td></td>
  121. <td><span id="sy06" class=""></span> <span id="sy06_title"></span> </td>
  122. </tr>
  123. </table>
  124. </div>
  125. </div>
  126. </div>
  127. <div style="width: 1720px; height: 340px; ">
  128. <div style="display:flex;">
  129. <div style="width: 445px; height: 340px; padding-top:60px;">
  130. <!--停机时间累计-->
  131. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;padding-right:40px;">
  132. <tr class="tr_title_warning">
  133. <td>正常</td>
  134. <td>故障</td>
  135. </tr>
  136. <tr class="tr_bg_light_warning" style="height:140px;">
  137. <td id="okNum" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  138. <td id="errNum" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  139. </tr>
  140. </table>
  141. </div>
  142. <div style="width: 445px; height: 340px; ">
  143. <!--登卸窑机器人-->
  144. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  145. <tr class="tr_title">
  146. <td style="width:280px;">登卸窑机器人</td>
  147. <td>状态</td>
  148. </tr>
  149. <tr class="tr_bg_light">
  150. <td>登窑机器人(1号)</td>
  151. <td><span id="dxy01" class="status_red">█</span><span id="dxy01_title"></span></td>
  152. </tr>
  153. <tr class="tr_bg_dark">
  154. <td>卸窑机器人(1号)</td>
  155. <td><span id="dxy02" class="status_red">█</span><span id="dxy02_title"></span></td>
  156. </tr>
  157. <tr class="tr_bg_light">
  158. <td>登窑机器人(2号)</td>
  159. <td><span id="dxy03" class="status_red">█</span><span id="dxy03_title"></span></td>
  160. </tr>
  161. <tr class="tr_bg_dark">
  162. <td>卸窑机器人(2号)</td>
  163. <td><span id="dxy04" class="status_red">█</span><span id="dxy04_title"></span></td>
  164. </tr>
  165. </table>
  166. </div>
  167. <div style="width: 445px; height: 340px; ">
  168. <!--功能检测-->
  169. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  170. <tr class="tr_title">
  171. <td style="width:280px;">功能检测</td>
  172. <td>状态</td>
  173. </tr>
  174. <tr class="tr_bg_light">
  175. <td>测漏机(1号)</td>
  176. <td><span id="ss01" class="status_red">█</span><span id="ss01_title"></span></td>
  177. </tr>
  178. <tr class="tr_bg_dark">
  179. <td>测漏机(2号)</td>
  180. <td><span id="ss02" class="status_red">█</span><span id="ss02_title"></span></td>
  181. </tr>
  182. <tr class="tr_bg_light">
  183. <td>测漏机(3号)</td>
  184. <td><span id="ss03" class="status_red">█</span><span id="ss03_title"></span></td>
  185. </tr>
  186. <tr class="tr_bg_dark">
  187. <td>测漏机(4号)</td>
  188. <td><span id="ss04" class="status_red">█</span><span id="ss04_title"></span></td>
  189. </tr>
  190. </table>
  191. </div>
  192. <div style="width: 445px; height: 340px; ">
  193. <!--包装机器人-->
  194. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  195. <tr class="tr_title">
  196. <td style="width:280px;">包装机器人</td>
  197. <td>状态</td>
  198. </tr>
  199. <tr class="tr_bg_light">
  200. <td>自动装箱机器人(1号)</td>
  201. <td><span id="bz01" class="status_red">█</span><span id="bz01_title"></span></td>
  202. </tr>
  203. <tr class="tr_bg_dark">
  204. <td>自动装箱机器人(2号)</td>
  205. <td><span id="bz02" class="status_red">█</span><span id="bz02_title"></span></td>
  206. </tr>
  207. <tr class="tr_bg_light">
  208. <td>包装码垛机器人(1号)</td>
  209. <td><span id="bz03" class="status_red">█</span><span id="bz03_title"></span></td>
  210. </tr>
  211. <tr class="tr_bg_dark">
  212. <td>包装码垛机器人(2号)</td>
  213. <td><span id="bz04" class="status_red">█</span><span id="bz04_title"></span></td>
  214. </tr>
  215. </table>
  216. </div>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. <script>
  222. //缺陷统计刷新时间
  223. var refreshTime1 = 15000;
  224. var currentTime1 = 0;
  225. var doGetData;
  226. var doGetTime;
  227. var frameHeight;
  228. var tableHeight;
  229. var offsetHeight = 20;
  230. $(document).ready(function () {
  231. initData();
  232. doGetData = setInterval(function () { timeUpdate(); }, 1000);
  233. });
  234. function timeUpdate() {
  235. if (currentTime1 <= 0) {
  236. //clearData();
  237. loadData();
  238. currentTime1 = refreshTime1;
  239. }
  240. else {
  241. if (currentTime1 > 0) {
  242. $('#报表加载').html('刷新:' + currentTime1 / 1000 + ' 秒');
  243. currentTime1 = currentTime1 - 1000;
  244. }
  245. }
  246. }
  247. function clearData() {
  248. //清除数据
  249. window.Device.data.datasets[0].data = [0,0,0,0];
  250. window.Device.update();
  251. $("#okNum").attr('data-to', 0);
  252. $("#okNum").countTo();
  253. $("#errNum").attr('data-to', 0);
  254. $("#errNum").countTo();
  255. }
  256. function changeState(id, value) {
  257. $(id).removeClass("status_green");
  258. $(id).removeClass("status_yellow");
  259. $(id).removeClass("status_red");
  260. $(id).removeClass("status_blue");
  261. $(id).removeClass("status_grey");
  262. if (value == '1') { $(id + "_title").text(" 运行"); $(id).addClass('status_green'); }
  263. if (value == '2') { $(id + "_title").text(" 就绪"); $(id).addClass('status_yellow'); }
  264. if (value == '3') { $(id + "_title").text(" 故障"); $(id).addClass('status_red'); }
  265. if (value == '0') { $(id + "_title").text(" 待机"); $(id).addClass('status_blue'); }
  266. if (value == '-1') { $(id + "_title").text(" 中断"); $(id).addClass('status_grey'); }
  267. }
  268. function loadData() {
  269. $.get("rpt.ashx", function (data) {
  270. var json = JSON.parse(data);
  271. //高压注浆
  272. for (var i = 0; i < 7; i++) {
  273. changeState("#gy0" + (i + 1).toString(), "-1");
  274. }
  275. //烘干房
  276. for (var i = 0; i < 7; i++) {
  277. changeState("#hg0" + (i + 1).toString(), "-1");
  278. }
  279. //施釉机器人
  280. for (var i = 0; i < json["glaze"].length; i++) {
  281. changeState("#sy0" + (i + 1).toString(), json["glaze"][i]["施釉机器人"].toString());
  282. }
  283. //登卸窑机器人
  284. for (var i = 0; i < json["kiln"].length; i++) {
  285. changeState("#dxy0" + (i + 1).toString(), json["kiln"][i]["登卸窑机器人"].toString());
  286. }
  287. //测漏机
  288. for (var i = 0; i < json["lake"].length; i++) {
  289. changeState("#ss0" + (i + 1).toString(), json["lake"][i]["测漏机"].toString());
  290. }
  291. //包装机器人
  292. for (var i = 0; i < json["pack"].length; i++) {
  293. changeState("#bz0" + (i + 1).toString(), json["pack"][i]["包装机器人"].toString());
  294. }
  295. var part1 = "\"1\"";
  296. var part2 = "\"2\"";
  297. var part3 = "\"3\"";
  298. var part4 = "\"0\"";
  299. var time1 = 0;
  300. var time2 = 0;
  301. var time3 = 0;
  302. var time4 = 0;
  303. for (var j = 0; j <= (data.length - part1.length); j++) {
  304. if (data.substring(j, j + part1.length) == part1) {
  305. time1++;
  306. }
  307. if (data.substring(j, j + part2.length) == part2) {
  308. time2++;
  309. }
  310. if (data.substring(j, j + part3.length) == part3) {
  311. time3++;
  312. }
  313. if (data.substring(j, j + part4.length) == part4) {
  314. time4++;
  315. }
  316. }
  317. window.Device.data.datasets[0].data = [time1,time2,time3,time4];
  318. window.Device.update();
  319. //正常故障数量
  320. $("#okNum").attr('data-to', time1 + time2 + time4);
  321. $("#okNum").countTo();
  322. $("#errNum").attr('data-to', time3);
  323. $("#errNum").countTo();
  324. });
  325. //产品达成数据===================================
  326. //window.Device.data.datasets[0].data = [
  327. // randomScalingFactor(20) + 80,
  328. // randomScalingFactor(20) + 20,
  329. // randomScalingFactor(10) + 10
  330. //];
  331. /* window.Device.update();*/
  332. //===================================================
  333. }
  334. function initData() {
  335. window.chartColors = {
  336. red: 'rgb(255, 99, 132)',
  337. orange: 'rgb(255, 159, 64)',
  338. yellow: 'rgb(255, 250, 86)',
  339. green: 'rgb(93,226,124)',
  340. blue: 'rgb(54, 162, 250)',
  341. purple: 'rgb(153, 102, 255)',
  342. grey: 'rgb(231,233,237)'
  343. };
  344. var color = Chart.helpers.color;
  345. window.randomScalingFactor = function (num) {
  346. return Math.round(Math.random() * num);
  347. }
  348. Chart.defaults.global.defaultFontColor = 'white';
  349. Chart.defaults.global.defaultFontSize = 24;
  350. Chart.defaults.global.legend.display = false;
  351. //运行时间数据=======================================
  352. window.configDevice = {
  353. data: {
  354. labels: ['运行', '就绪', '故障','待机'],
  355. datasets: [{
  356. label: '设备状态',
  357. backgroundColor: [
  358. color(window.chartColors.green).alpha(0.35).rgbString(),
  359. color(window.chartColors.green).alpha(0.2).rgbString(),
  360. color(window.chartColors.red).alpha(0.35).rgbString(),
  361. color(window.chartColors.blue).alpha(0.35).rgbString()
  362. ],
  363. fill: false,
  364. borderColor: [
  365. window.chartColors.green,
  366. window.chartColors.green,
  367. window.chartColors.red,
  368. window.chartColors.blue
  369. ],
  370. borderWidth: 2,
  371. pointRadius: 30,
  372. data: [0, 0, 0, 0]
  373. }]
  374. },
  375. type: 'doughnut',
  376. options: {
  377. legend: {
  378. display: true
  379. },
  380. title: {
  381. display: false,
  382. text: "设备运行时间统计"
  383. },
  384. tooltips: {
  385. mode: 'point',
  386. intersect: false
  387. },
  388. responsive: true
  389. }
  390. };
  391. var ctxDevice = document.getElementById("canvasDevice").getContext("2d");
  392. window.Device = new Chart(ctxDevice, configDevice);
  393. //===================================================
  394. }
  395. </script>
  396. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  397. <script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>
  398. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  399. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  400. </body>
  401. </html>