demo.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  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 style="background-color:black;">
  15. <div class="box_1920_1080">
  16. <div class="box_title" onclick="showHelp()" style="cursor:pointer">
  17. 生产效率&nbsp;&nbsp;<span class="box_title_arrow">>>></span><span class="box_title_loading" id="报表加载"></span>
  18. </div>
  19. <div class="box_body" style="display: flex; flex-direction: column;">
  20. <div style="width:1840px;height:960px;display:flex;flex-direction:row;">
  21. <div style="width: 70%;height:960px;">
  22. <!--工序生产效率-->
  23. <canvas id="canvasProcedureCL" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:920px;width:100%"></canvas>
  24. </div>
  25. <div style="width: 30%; height: 960px; padding-left:40px;">
  26. <div style="height:620px;">
  27. <!--工序安排人数-->
  28. <canvas id="canvasProcedureRS" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:620px;width:100%"></canvas>
  29. </div>
  30. <div style="height:260px;padding-top:70px;display:flex;justify-content:center;">
  31. <!--工序安排人数文字-->
  32. <table cellspacing="0" cellpadding="0" border="0" style="width:50%;height:200px;">
  33. <tr class="tr_title_warning">
  34. <td>工序安排总人数</td>
  35. </tr>
  36. <tr class="tr_bg_light_warning" style="height:80px;">
  37. <td id="total" data-speed="2000" style="font-size: 40px; width: 50%"></td>
  38. </tr>
  39. </table>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <script>
  46. //缺陷统计刷新时间
  47. var refreshTime1 = 50000;
  48. var currentTime1 = 0;
  49. var doGetData;
  50. var doGetTime;
  51. var frameHeight;
  52. var tableHeight;
  53. var offsetHeight = 20;
  54. $(document).ready(function () {
  55. initData();
  56. doGetData = setInterval(function () { timeUpdate(); }, 1000);
  57. });
  58. //帮助说明
  59. function showHelp() {
  60. var message = "统计说明:" + "\n";
  61. message += "当日工序安排人数: web端看板配置-看板工序人数" + "\n";
  62. message += "工序安排总人数: web端看板配置-看板工序人数 的总数" + "\n";
  63. message += "工序计划数: web端看板配置-看板工序产量计划" + "\n";
  64. alert(message);
  65. }
  66. function timeUpdate() {
  67. if (currentTime1 <= 0) {
  68. //clearData();
  69. setTimeout(loadData(), 10000);
  70. //loadData();
  71. currentTime1 = refreshTime1;
  72. }
  73. else {
  74. if (currentTime1 > 0) {
  75. $('#报表加载').html('刷新:' + currentTime1 / 1000 + ' 秒');
  76. currentTime1 = currentTime1 - 1000;
  77. }
  78. }
  79. }
  80. function clearData() {
  81. //清除数据
  82. //工序产量===================================
  83. window.ProcedureCL.data.datasets[0].data = [0, 0, 0, 0, 0, 0, 0];
  84. window.ProcedureCL.data.datasets[1].data = [0, 0, 0, 0, 0, 0, 0];
  85. window.ProcedureCL.update();
  86. //===================================================
  87. window.ProcedureRS.data.datasets[0].data = [0, 0, 0, 0, 0, 0, 0];
  88. window.ProcedureRS.update();
  89. }
  90. function loadData() {
  91. $.get("demo.ashx?m=efficiency&&procedure=成型", function (data) {
  92. var jsondata = JSON.parse(data);
  93. if (jsondata["success"] == true) {
  94. window.ProcedureCL.data.datasets[0].data[0] = jsondata["rows"][0]["生产效率"];
  95. window.ProcedureCL.data.datasets[1].data[0] = jsondata["rows"][0]["计划生产效率"];
  96. window.ProcedureCL.update();
  97. }
  98. });
  99. $.get("demo.ashx?m=efficiency&&procedure=一检", function (data) {
  100. var jsondata = JSON.parse(data);
  101. if (jsondata["success"] == true) {
  102. window.ProcedureCL.data.datasets[0].data[1] = jsondata["rows"][0]["生产效率"];
  103. window.ProcedureCL.data.datasets[1].data[1] = jsondata["rows"][0]["计划生产效率"];
  104. window.ProcedureCL.update();
  105. }
  106. });
  107. $.get("demo.ashx?m=efficiency&&procedure=改洗", function (data) {
  108. var jsondata = JSON.parse(data);
  109. if (jsondata["success"] == true) {
  110. window.ProcedureCL.data.datasets[0].data[2] = jsondata["rows"][0]["生产效率"];
  111. window.ProcedureCL.data.datasets[1].data[2] = jsondata["rows"][0]["计划生产效率"];
  112. window.ProcedureCL.update();
  113. }
  114. });
  115. $.get("demo.ashx?m=efficiency&&procedure=二检", function (data) {
  116. var jsondata = JSON.parse(data);
  117. if (jsondata["success"] == true) {
  118. window.ProcedureCL.data.datasets[0].data[3] = jsondata["rows"][0]["生产效率"];
  119. window.ProcedureCL.data.datasets[1].data[3] = jsondata["rows"][0]["计划生产效率"];
  120. window.ProcedureCL.update();
  121. }
  122. });
  123. $.get("demo.ashx?m=efficiency&&procedure=施釉", function (data) {
  124. var jsondata = JSON.parse(data);
  125. if (jsondata["success"] == true) {
  126. window.ProcedureCL.data.datasets[0].data[4] = jsondata["rows"][0]["生产效率"];
  127. window.ProcedureCL.data.datasets[1].data[4] = jsondata["rows"][0]["计划生产效率"];
  128. window.ProcedureCL.update();
  129. }
  130. });
  131. $.get("demo.ashx?m=efficiency&&procedure=烧成", function (data) {
  132. var jsondata = JSON.parse(data);
  133. if (jsondata["success"] == true) {
  134. window.ProcedureCL.data.datasets[0].data[5] = jsondata["rows"][0]["生产效率"];
  135. window.ProcedureCL.data.datasets[1].data[5] = jsondata["rows"][0]["计划生产效率"];
  136. window.ProcedureCL.update();
  137. }
  138. });
  139. $.get("demo.ashx?m=efficiency&&procedure=包装", function (data) {
  140. var jsondata = JSON.parse(data);
  141. if (jsondata["success"] == true) {
  142. window.ProcedureCL.data.datasets[0].data[6] = jsondata["rows"][0]["生产效率"];
  143. window.ProcedureCL.data.datasets[1].data[6] = jsondata["rows"][0]["计划生产效率"];
  144. window.ProcedureCL.update();
  145. }
  146. });
  147. $.get("demo.ashx?m=people", function (data) {
  148. var jsondata = JSON.parse(data);
  149. if (jsondata["success"] == true) {
  150. window.ProcedureRS.data.datasets[0].data[0] = jsondata["rows"][0]["成型"];
  151. window.ProcedureRS.data.datasets[0].data[1] = jsondata["rows"][0]["一检"];
  152. window.ProcedureRS.data.datasets[0].data[2] = jsondata["rows"][0]["改洗"];
  153. window.ProcedureRS.data.datasets[0].data[3] = jsondata["rows"][0]["二检"];
  154. window.ProcedureRS.data.datasets[0].data[4] = jsondata["rows"][0]["施釉"];
  155. window.ProcedureRS.data.datasets[0].data[5] = jsondata["rows"][0]["烧成"];
  156. window.ProcedureRS.data.datasets[0].data[6] = jsondata["rows"][0]["包装"];
  157. window.ProcedureRS.update();
  158. $("#total").attr('data-to', jsondata["rows"][0]["总人数"]);
  159. $("#total").countTo();
  160. }
  161. });
  162. }
  163. function initData() {
  164. window.chartColors = {
  165. red: 'rgb(255, 99, 132)',
  166. orange: 'rgb(255, 159, 64)',
  167. yellow: 'rgb(255, 250, 86)',
  168. green: 'rgb(75, 192, 192)',
  169. blue: 'rgb(54, 162, 250)',
  170. purple: 'rgb(153, 102, 255)',
  171. grey: 'rgb(231,233,237)'
  172. };
  173. var color = Chart.helpers.color;
  174. window.randomScalingFactor = function (num) {
  175. return Math.round(Math.random() * num);
  176. }
  177. Chart.defaults.global.defaultFontColor = 'white';
  178. Chart.defaults.global.defaultFontSize = 24;
  179. Chart.defaults.global.legend.display = false;
  180. //工序人数=======================================
  181. window.configProcedureRS = {
  182. data: {
  183. labels: ['成型', '一检', '改洗', '二检', '施釉', '烧成', '包装'],
  184. datasets: [{
  185. label: '工序安排人数',
  186. backgroundColor: [
  187. color(window.chartColors.red).alpha(0.35).rgbString(),
  188. color(window.chartColors.blue).alpha(0.35).rgbString(),
  189. color(window.chartColors.green).alpha(0.35).rgbString(),
  190. color(window.chartColors.yellow).alpha(0.35).rgbString(),
  191. color(window.chartColors.purple).alpha(0.35).rgbString(),
  192. color(window.chartColors.orange).alpha(0.35).rgbString(),
  193. color(window.chartColors.grey).alpha(0.35).rgbString()
  194. ],
  195. borderColor: [
  196. window.chartColors.red,
  197. window.chartColors.blue,
  198. window.chartColors.green,
  199. window.chartColors.yellow,
  200. window.chartColors.purple,
  201. window.chartColors.orange,
  202. window.chartColors.grey
  203. ],
  204. borderWidth: 1,
  205. data: [0, 0, 0, 0, 0, 0, 0]
  206. }]
  207. },
  208. //type: 'pie',
  209. type: 'doughnut',
  210. options: {
  211. legend: {
  212. display: true
  213. },
  214. title: {
  215. display: true,
  216. text: "当日工序安排人数"
  217. },
  218. tooltips: {
  219. mode: 'point',
  220. intersect: false
  221. },
  222. responsive: true
  223. }
  224. };
  225. var ctxProcedureRS = document.getElementById("canvasProcedureRS").getContext("2d");
  226. window.ProcedureRS = new Chart(ctxProcedureRS, configProcedureRS);
  227. //===================================================
  228. //工序效率=======================================
  229. window.configProcedureCL = {
  230. data: {
  231. labels: ['成型', '一检', '改洗', '二检', '施釉', '烧成', '包装'],
  232. datasets: [{
  233. label: '工序生产效率',
  234. backgroundColor: color(window.chartColors.blue).alpha(0.35).rgbString(),
  235. borderColor: window.chartColors.blue,
  236. borderWidth: 1,
  237. data: [0, 0, 0, 0, 0, 0, 0]
  238. },
  239. {
  240. type: 'line',
  241. label: '计划生产效率',
  242. backgroundColor: color(window.chartColors.orange).alpha(0.35).rgbString(),
  243. fill: false,
  244. borderColor: window.chartColors.orange,
  245. borderWidth: 2,
  246. pointRadius: 30,
  247. data: [0, 0, 0, 0, 0, 0, 0]
  248. }]
  249. },
  250. type: 'bar',
  251. options: {
  252. legend: {
  253. display: false
  254. },
  255. title: {
  256. display: true,
  257. text: "当日工序生产效率(工序产量/工序人数)"
  258. },
  259. tooltips: {
  260. mode: 'point',
  261. intersect: false
  262. },
  263. responsive: true,
  264. scales: {
  265. xAxes: [{
  266. stacked: false
  267. }],
  268. yAxes: [{
  269. display: true,
  270. stacked: false,
  271. ticks: {
  272. min: 0,
  273. stepSize: 30,
  274. max: 120
  275. }
  276. }]
  277. }
  278. }
  279. };
  280. var ctxProcedureCL = document.getElementById("canvasProcedureCL").getContext("2d");
  281. window.ProcedureCL = new Chart(ctxProcedureCL, configProcedureCL);
  282. //===================================================
  283. }
  284. </script>
  285. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  286. <script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>
  287. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  288. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  289. </body>
  290. </html>