index.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  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:440px;display:flex;flex-direction:row;">
  21. <div style="width: 50%;height:440px;padding-right:20px;">
  22. <!--成品交接产品型号-->
  23. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  24. <tr class="tr_title_warning">
  25. <td colspan="4" style="color:white;">年度生产前8型号(大件)</td>
  26. </tr>
  27. <tr class="tr_title_warning">
  28. <td id="g01"></td>
  29. <td id="g02"></td>
  30. <td id="g03"></td>
  31. <td id="g04"></td>
  32. </tr>
  33. <tr class="tr_bg_light_warning" style="height:100px;">
  34. <td id="goods01" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  35. <td id="goods02" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  36. <td id="goods03" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  37. <td id="goods04" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  38. </tr>
  39. </table>
  40. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;padding-top:20px;">
  41. <tr class="tr_title_warning">
  42. <td id="g05"></td>
  43. <td id="g06"></td>
  44. <td id="g07"></td>
  45. <td id="g08"></td>
  46. </tr>
  47. <tr class="tr_bg_light_warning" style="height:100px;">
  48. <td id="goods05" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  49. <td id="goods06" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  50. <td id="goods07" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  51. <td id="goods08" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  52. </tr>
  53. </table>
  54. </div>
  55. <div style="width: 50%;height:440px;padding-left:20px;">
  56. <!--成品交接产品型号-->
  57. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
  58. <tr class="tr_title_warning">
  59. <td colspan="4" style="color:white;">年度生产前8型号(小件)</td>
  60. </tr>
  61. <tr class="tr_title_warning">
  62. <td id="g11"></td>
  63. <td id="g12"></td>
  64. <td id="g13"></td>
  65. <td id="g14"></td>
  66. </tr>
  67. <tr class="tr_bg_light_warning" style="height:100px;">
  68. <td id="goods11" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  69. <td id="goods12" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  70. <td id="goods13" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  71. <td id="goods14" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  72. </tr>
  73. </table>
  74. <table cellspacing="0" cellpadding="0" border="0" style="width:100%;padding-top:20px;">
  75. <tr class="tr_title_warning">
  76. <td id="g15"></td>
  77. <td id="g16"></td>
  78. <td id="g17"></td>
  79. <td id="g18"></td>
  80. </tr>
  81. <tr class="tr_bg_light_warning" style="height:100px;">
  82. <td id="goods15" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  83. <td id="goods16" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  84. <td id="goods17" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  85. <td id="goods18" data-speed="2000" style="font-size: 40px; width: 25%"></td>
  86. </tr>
  87. </table>
  88. </div>
  89. </div>
  90. <div style="width:1840px;height:520px;display:flex;flex-direction:row;">
  91. <div style="width: 100%;height:520px;">
  92. <!--成品交接数据柱图-->
  93. <canvas id="canvasProduct" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:520px;width:100%"></canvas>
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. <script>
  99. //缺陷统计刷新时间
  100. var refreshTime1 = 600000;
  101. var currentTime1 = 0;
  102. var doGetData;
  103. var doGetTime;
  104. var frameHeight;
  105. var tableHeight;
  106. var offsetHeight = 20;
  107. $(document).ready(function () {
  108. initData();
  109. doGetData = setInterval(function () { timeUpdate(); }, 1000);
  110. });
  111. //帮助说明
  112. function showHelp() {
  113. var message = "统计说明:" + "\n";
  114. message += "生产前8型号大件: 大件产成品交接TOP8" + "\n";
  115. message += "生产前8型号小件: 小件产成品交接TOP8" + "\n";
  116. message += "产成品交接数据计划: web端看板配置-看板工序产量计划" + "\n";
  117. message += "产成品交接数据实际: 大件产成品交接每月合计" + "\n";
  118. alert(message);
  119. }
  120. function timeUpdate() {
  121. if (currentTime1 <= 0) {
  122. //clearData();
  123. setTimeout(loadData(), 30000);
  124. //loadData();
  125. currentTime1 = refreshTime1;
  126. }
  127. else {
  128. if (currentTime1 > 0) {
  129. $('#报表加载').html('刷新:' + currentTime1 / 1000 + ' 秒');
  130. currentTime1 = currentTime1 - 1000;
  131. }
  132. }
  133. }
  134. function clearData() {
  135. //清除数据
  136. //工序产量===================================
  137. window.Product.data.datasets[0].data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  138. window.Product.data.datasets[1].data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  139. window.Product.update();
  140. }
  141. function loadData() {
  142. //产品交接数据===================================
  143. //window.Product.data.datasets[0].data = [
  144. // 3000,
  145. // 3000,
  146. // 3000,
  147. // 3000,
  148. // 3000,
  149. // 3000,
  150. // 3000,
  151. // 3000,
  152. // 3000,
  153. // 3000,
  154. // 3000,
  155. // 3000
  156. //];
  157. //window.Product.data.datasets[1].data = [
  158. // randomScalingFactor(1000) + 2000,
  159. // randomScalingFactor(1000) + 2000,
  160. // randomScalingFactor(1000) + 2000,
  161. // randomScalingFactor(1000) + 2000,
  162. // randomScalingFactor(1000) + 2000,
  163. // randomScalingFactor(1000) + 2000,
  164. // randomScalingFactor(1000) + 2000,
  165. // randomScalingFactor(1000) + 2000,
  166. // randomScalingFactor(1000) + 2000,
  167. // randomScalingFactor(1000) + 2000,
  168. // randomScalingFactor(1000) + 2000,
  169. // randomScalingFactor(1000) + 2000
  170. //];
  171. //window.Product.update();
  172. //===================================================
  173. //加载产品型号数量
  174. //for (var i = 1; i < 21; i++) {
  175. // $("#goods" + i.toString().padStart(2, '0')).attr('data-to', randomScalingFactor(1000) + 2000);
  176. // $("#goods" + i.toString().padStart(2, '0')).countTo();
  177. //}
  178. $.get("rpt.ashx?m=BIG", function (data) {
  179. var jsondata = JSON.parse(data);
  180. if (jsondata["success"] == true) {
  181. for (var i = 1; i < jsondata["total"] + 1; i++) {
  182. $("#g" + i.toString().padStart(2, '0')).text(jsondata["rows"][i - 1]["GOODSCODE"]);
  183. $("#goods" + i.toString().padStart(2, '0')).attr('data-to', jsondata["rows"][i - 1]["NUM"]);
  184. $("#goods" + i.toString().padStart(2, '0')).countTo();
  185. }
  186. }
  187. });
  188. $.get("rpt.ashx?m=SMALL", function (data) {
  189. var jsondata = JSON.parse(data);
  190. if (jsondata["success"] == true) {
  191. for (var i = 1; i < jsondata["total"] + 1; i++) {
  192. $("#g" + ( 10 + i).toString()).text(jsondata["rows"][i - 1]["GOODSCODE"]);
  193. $("#goods" + (10 + i).toString()).attr('data-to', jsondata["rows"][i - 1]["NUM"]);
  194. $("#goods" + (10 + i).toString()).countTo();
  195. }
  196. }
  197. });
  198. $.get("rpt.ashx?m=TOTAL", function (data) {
  199. var jsondata = JSON.parse(data);
  200. if (jsondata["success"] == true) {
  201. for (var i = 0; i < jsondata["total"]; i++) {
  202. window.Product.data.datasets[0].data[i] = jsondata["rows"][i]["PLAN"];
  203. window.Product.data.datasets[1].data[i] = jsondata["rows"][i]["NUM"];
  204. }
  205. window.Product.data.datasets[0].data[0] = 70000;
  206. window.Product.data.datasets[0].data[1] = 45000;
  207. window.Product.data.datasets[1].data[3] = 102754;
  208. window.Product.data.datasets[1].data[4] = 56400;
  209. window.Product.data.datasets[0].data[4] = 105400;
  210. window.Product.update();
  211. }
  212. });
  213. }
  214. function initData() {
  215. window.chartColors = {
  216. red: 'rgb(255, 99, 132)',
  217. orange: 'rgb(255, 159, 64)',
  218. yellow: 'rgb(255, 250, 86)',
  219. green: 'rgb(75, 192, 192)',
  220. blue: 'rgb(54, 162, 250)',
  221. purple: 'rgb(153, 102, 255)',
  222. grey: 'rgb(231,233,237)'
  223. };
  224. var color = Chart.helpers.color;
  225. window.randomScalingFactor = function (num) {
  226. return Math.round(Math.random() * num);
  227. }
  228. Chart.defaults.global.defaultFontColor = 'white';
  229. Chart.defaults.global.defaultFontSize = 24;
  230. Chart.defaults.global.legend.display = false;
  231. //年交接数据=======================================
  232. window.configProduct = {
  233. data: {
  234. labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
  235. datasets: [{
  236. type: 'line',
  237. label: '计划交接数量',
  238. backgroundColor: color(window.chartColors.orange).alpha(0.35).rgbString(),
  239. fill: false,
  240. borderColor: window.chartColors.orange,
  241. borderWidth: 2,
  242. pointRadius: 30,
  243. data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  244. }, {
  245. label: '实际交接数量',
  246. backgroundColor: color(window.chartColors.blue).alpha(0.35).rgbString(),
  247. borderColor: window.chartColors.blue,
  248. borderWidth: 1,
  249. data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  250. }]
  251. },
  252. type: 'bar',
  253. options: {
  254. legend: {
  255. display: true
  256. },
  257. title: {
  258. display: true,
  259. text: "产成品交接数据(年)"
  260. },
  261. tooltips: {
  262. mode: 'point',
  263. intersect: false
  264. },
  265. responsive: true,
  266. scales: {
  267. xAxes: [{
  268. stacked: false
  269. }],
  270. yAxes: [{
  271. display: true,
  272. stacked: false,
  273. ticks: {
  274. min: 0,
  275. stepSize: 25000,
  276. max: 150000
  277. }
  278. }]
  279. }
  280. }
  281. };
  282. var ctxProduct = document.getElementById("canvasProduct").getContext("2d");
  283. window.Product = new Chart(ctxProduct, configProduct);
  284. //===================================================
  285. }
  286. </script>
  287. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  288. <script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>
  289. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  290. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  291. </body>
  292. </html>