demo2.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  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 href="/Plugins/animate/animate.min.css" rel="stylesheet" />
  9. <link rel="stylesheet" href="../DashBoard.css?v3" />
  10. <script src="/Plugins/jquery-3.4.1/jquery-3.4.1.min.js"></script>
  11. <script src="/Plugins/animate/xanimate.js"></script>
  12. <script src="/Plugins/xrequest/xrequest.min.js"></script>
  13. <title>东科软件</title>
  14. </head>
  15. <body style="background-color:black;">
  16. <div class="box_1920_1080">
  17. <div class="box_title" style="display:flex;flex-direction:row;">
  18. <div style="width:30%;text-align:left;"></div>
  19. <div style="width: 40%; text-align: center; font-size: 38px; font-weight: 700">成检次品区看板</div>
  20. <div style="width:30%;text-align:right;"><span class="box_title_loading" style="font-size:32px;" id="报表加载"></span></div>
  21. </div>
  22. <div class="box_body" style="display: flex; flex-direction: column;">
  23. <!--近30天次品折线图-->
  24. <div style="width:1840px;height:300px;display:flex;flex-direction:row;">
  25. <div style="width: 100%; height: 300px;">
  26. <div style="color:white;font-size:20px;font-weight:600; text-align:center">三十日次品产量趋势图</div>
  27. <canvas id="canvasDayZL" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 270px; width: 100%"></canvas>
  28. </div>
  29. </div>
  30. <!--月次品缺陷表格-->
  31. <div style="width:1840px;height:720px;display:flex;flex-direction:row;">
  32. <div style="width: 48%; height: 360px;">
  33. <table cellspacing="0" cellpadding="0" border="0" style="width: 99.8%;">
  34. <tr class="tr_title_warning">
  35. <td colspan="10" style="color: white;">月次品缺陷数据汇总TOP5</td>
  36. </tr>
  37. <tr class="tr_title_warning" style="height: 46px;">
  38. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">缺陷名称</td>
  39. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">出窑数</td>
  40. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">缺陷数</td>
  41. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">缺陷占比</td>
  42. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px; ">同月比</td>
  43. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">上月比</td>
  44. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">对比趋势</td>
  45. </tr>
  46. </table>
  47. <div style=" height: 260px; overflow: hidden; width: 100%;">
  48. <div>
  49. <table id="dayTable_template" style="display:none;">
  50. <tr class="tr_title_warning" style="height: 46px;">
  51. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">{缺陷名称}</td>
  52. <td style="width: 14.2%; font-size: 10px;">{出窑数}</td>
  53. <td style="width: 14.2%; font-size: 10px; ">{缺陷数}</td>
  54. <td style="width: 14.2%; font-size: 10px; ">{缺陷占比}</td>
  55. <td style="width: 14.2%; font-size: 10px; ">{同月比}</td>
  56. <td style="width: 14.2%; font-size: 10px; ">{上月比}</td>
  57. <td style="width: 14.2%; font-size: 10px; ">{对比趋势}</td>
  58. </tr>
  59. </table>
  60. </div>
  61. <table id="dayTable" style="width: 100%;">
  62. </table>
  63. </div>
  64. </div>
  65. <div style="width: 48%; height: 360px; margin-top: 334px; margin-left: -883.5px;">
  66. <table cellspacing="0" cellpadding="0" border="0" style="width: 99.8%;">
  67. <tr class="tr_title_warning">
  68. <td colspan="10" style="color: white;">月次品缺陷位置数据汇总TOP5</td>
  69. </tr>
  70. <tr class="tr_title_warning" style="height: 46px;">
  71. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">缺陷位置名称</td>
  72. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">出窑数</td>
  73. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">缺陷数</td>
  74. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">缺陷占比</td>
  75. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px; ">同月比</td>
  76. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">上月比</td>
  77. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">对比趋势</td>
  78. </tr>
  79. </table>
  80. <div style=" height: 260px; overflow: hidden; width: 100%;">
  81. <div>
  82. <table id="dayTable_templatedefect" style="display:none;">
  83. <tr class="tr_title_warning" style="height: 46px;">
  84. <td style="width: 14.2%; font-size: 10px; padding: 0px 0px 0px 0px;">{缺陷位置名称}</td>
  85. <td style="width: 14.2%; font-size: 10px;">{出窑数}</td>
  86. <td style="width: 14.2%; font-size: 10px; ">{缺陷数}</td>
  87. <td style="width: 14.2%; font-size: 10px; ">{缺陷占比}</td>
  88. <td style="width: 14.2%; font-size: 10px; ">{同月比}</td>
  89. <td style="width: 14.2%; font-size: 10px; ">{上月比}</td>
  90. <td style="width: 14.2%; font-size: 10px; ">{对比趋势}</td>
  91. </tr>
  92. </table>
  93. </div>
  94. <table id="TableDefect" style="width: 100%; ">
  95. </table>
  96. </div>
  97. </div>
  98. <div style="width: 50%; height: 672px; right: 40px; margin-left: 35px;">
  99. <table cellspacing="0" cellpadding="0" border="0" style="width: 99.8%;">
  100. <tr class="tr_title_warning">
  101. <td colspan="10" style="color: white;">月次品产品数据汇总TOP10</td>
  102. </tr>
  103. <tr class="tr_title_warning" style="height: 54.2px;">
  104. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">产品名称</td>
  105. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">出窑数</td>
  106. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">次品数</td>
  107. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">次品占比</td>
  108. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px; ">同月比</td>
  109. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">上月比</td>
  110. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">对比趋势</td>
  111. </tr>
  112. </table>
  113. <div style=" height: 600px; overflow: hidden; width: 100%;">
  114. <div>
  115. <table id="dayTable_templatedetail" style="display:none;">
  116. <tr class="tr_title_warning" style="height: 54.4px;">
  117. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{产品名称}</td>
  118. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{出窑数}</td>
  119. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{次品数}</td>
  120. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{次品占比}</td>
  121. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{同月比}</td>
  122. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{上月比}</td>
  123. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{对比趋势}</td>
  124. </tr>
  125. </table>
  126. </div>
  127. <table id="TableDefectDetail" style="width: 100%; ">
  128. </table>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. <script>
  135. var mainInterval;
  136. var mainRowCount = 0;
  137. var mainInterva2;
  138. var mainRowCoun2 = 0;
  139. function loadMainTable() {
  140. $.get("demo2.ashx?m=MonthTabletwo", function (data) {
  141. var json = JSON.parse(data);
  142. if (json["success"] == true) {
  143. $("#dayTable").html("");
  144. for (var i = 0; i < json["rows"].length; i++) {
  145. var temp = $("#dayTable_template").html();
  146. temp = temp.replace("<tbody>", "").replace("</tbody>", "");
  147. temp = temp.replace('{缺陷名称}', json["rows"][i]['缺陷名称']);
  148. temp = temp.replace('{出窑数}', json["rows"][i]['出窑数']);
  149. temp = temp.replace('{缺陷数}', json["rows"][i]['缺陷数']);
  150. temp = temp.replace('{缺陷占比}', json["rows"][i]['缺陷占比']);
  151. temp = temp.replace('{同月比}', json["rows"][i]['同月比']);
  152. temp = temp.replace('{上月比}', json["rows"][i]['上月比']);
  153. temp = temp.replace('{对比趋势}', json["rows"][i]['对比趋势']);
  154. $("#dayTable").append(temp);
  155. }
  156. }
  157. var num = parseInt(json["rows"].length);
  158. for (var i = 0; i < num; i++) {
  159. var a = document.getElementById("dayTable").rows[i].cells[6].innerHTML;
  160. if (a == '下降↓') {
  161. document.getElementById("dayTable").rows[i].cells[6].style.color = '#3bf738';
  162. }
  163. else {
  164. document.getElementById("dayTable").rows[i].cells[6].style.color = 'red';
  165. }
  166. }
  167. });
  168. }
  169. function loadMainTableD() {
  170. $.get("demo2.ashx?m=MonthTableD", function (data) {
  171. var json = JSON.parse(data);
  172. if (json["success"] == true) {
  173. $("#TableDefect").html("");
  174. for (var i = 0; i < json["rows"].length; i++) {
  175. var temp = $("#dayTable_templatedefect").html();
  176. temp = temp.replace("<tbody>", "").replace("</tbody>", "");
  177. temp = temp.replace('{缺陷位置名称}', json["rows"][i]['缺陷位置名称']);
  178. temp = temp.replace('{出窑数}', json["rows"][i]['出窑数']);
  179. temp = temp.replace('{缺陷数}', json["rows"][i]['缺陷数']);
  180. temp = temp.replace('{缺陷占比}', json["rows"][i]['缺陷占比']);
  181. temp = temp.replace('{同月比}', json["rows"][i]['同月比']);
  182. temp = temp.replace('{上月比}', json["rows"][i]['上月比']);
  183. temp = temp.replace('{对比趋势}', json["rows"][i]['对比趋势']);
  184. $("#TableDefect").append(temp);
  185. }
  186. }
  187. var num = parseInt(json["rows"].length);
  188. for (var i = 0; i < num; i++) {
  189. var a = document.getElementById("TableDefect").rows[i].cells[6].innerHTML;
  190. if (a == '下降↓') {
  191. document.getElementById("TableDefect").rows[i].cells[6].style.color = '#3bf738';
  192. }
  193. else {
  194. document.getElementById("TableDefect").rows[i].cells[6].style.color = 'red';
  195. }
  196. }
  197. });
  198. }
  199. function loadMainDetail() {
  200. $.get("demo2.ashx?m=MonthTableDetail", function (data) {
  201. var json = JSON.parse(data);
  202. if (json["success"] == true) {
  203. $("#TableDefectDetail").html("");
  204. for (var i = 0; i < json["rows"].length; i++) {
  205. var temp = $("#dayTable_templatedetail").html();
  206. temp = temp.replace("<tbody>", "").replace("</tbody>", "");
  207. temp = temp.replace('{产品名称}', json["rows"][i]['产品名称']);
  208. temp = temp.replace('{出窑数}', json["rows"][i]['出窑数']);
  209. temp = temp.replace('{次品数}', json["rows"][i]['次品数']);
  210. temp = temp.replace('{次品占比}', json["rows"][i]['次品占比']);
  211. temp = temp.replace('{同月比}', json["rows"][i]['同月比']);
  212. temp = temp.replace('{上月比}', json["rows"][i]['上月比']);
  213. temp = temp.replace('{对比趋势}', json["rows"][i]['对比趋势']);
  214. $("#TableDefectDetail").append(temp);
  215. }
  216. }
  217. var num = parseInt(json["rows"].length);
  218. for (var i = 0; i < num; i++) {
  219. var a = document.getElementById("TableDefectDetail").rows[i].cells[6].innerHTML;
  220. if (a == '下降↓') {
  221. document.getElementById("TableDefectDetail").rows[i].cells[6].style.color = '#3bf738';
  222. }
  223. else if ((a == '上升↑')) {
  224. document.getElementById("TableDefectDetail").rows[i].cells[6].style.color = 'red';
  225. }
  226. else {
  227. document.getElementById("TableDefectDetail").rows[i].cells[6].style.color = 'blue';
  228. }
  229. }
  230. });
  231. }
  232. $(document).ready(function () {
  233. initData();
  234. doGetData = setInterval(function () { timeUpdate(); }, 300000);
  235. loadMainTable();
  236. setInterval(function () { loadMainTable(); }, 600000);
  237. loadMainTableD();
  238. setInterval(function () { loadMainTableD(); }, 600000);
  239. loadMainDetail();
  240. setInterval(function () { loadMainDetail(); }, 600000);
  241. ZxData();
  242. setInterval(function () { ZxData(); }, 600000);
  243. });
  244. //七日次品产量趋势图
  245. function ZxData() {
  246. $.get("demo2.ashx?m=zx", function (data) {
  247. var json = JSON.parse(data);
  248. let a = [];
  249. let b = [];
  250. let c = [];
  251. if (json["success"] == true) {
  252. var num = parseInt(json["rows"].length);
  253. for (var i = 0; i < num; i++) {
  254. a.push(parseFloat(json["rows"][i]["次品率"]));
  255. b.push(json["rows"][i]["日期"]);
  256. c.push(parseFloat(json["rows"][i]["次品数量"]));
  257. }
  258. window.DayZL.data.datasets[0].data = a;
  259. window.DayZL.data.datasets[1].data = c;
  260. window.DayZL.data.labels = b;
  261. window.DayZL.update();
  262. }
  263. });
  264. }
  265. function timeUpdate() {
  266. loadData();
  267. }
  268. function loadData() {
  269. }
  270. function initData() {
  271. window.chartColors = {
  272. red: 'rgb(255, 99, 132)',
  273. orange: 'rgb(255, 159, 64)',
  274. yellow: 'rgb(255, 250, 86)',
  275. green: 'rgb(75, 192, 192)',
  276. blue: 'rgb(54, 162, 250)',
  277. purple: 'rgb(153, 102, 255)',
  278. grey: 'rgb(231,233,237)'
  279. };
  280. var color = Chart.helpers.color;
  281. window.randomScalingFactor = function (num) {
  282. return Math.round(Math.random() * num);
  283. }
  284. Chart.defaults.global.defaultFontColor = 'white';
  285. Chart.defaults.global.defaultFontSize = 18;
  286. Chart.defaults.global.legend.display = false;
  287. //半检一检各项趋势图=====================================
  288. window.configDayZL = {
  289. data: {
  290. labels: ["01", "02", "03", "04", "05", "06", "07"],
  291. datasets: [{
  292. type: 'line',
  293. label: "次品率",
  294. yAxesGroup: 'A',
  295. yAxisID: 'A',
  296. backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
  297. borderColor: window.chartColors.red,
  298. borderWidth: 2,
  299. pointRadius: 15,
  300. data: [0, 0, 0, 0, 0, 0, 0],
  301. fill: false
  302. }, {
  303. label: '次品数',
  304. yAxesGroup: 'B',
  305. yAxisID: 'B',
  306. backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
  307. borderColor: window.chartColors.blue,
  308. borderWidth: 1,
  309. data: [100, 100, 100, 100, 100, 100, 100],
  310. fill: false
  311. }]
  312. },
  313. type: 'bar',
  314. options: {
  315. legend: {
  316. display: true
  317. },
  318. title: {
  319. display: false,
  320. text: '质量统计'
  321. },
  322. tooltips: {
  323. mode: 'index',
  324. intersect: false,
  325. },
  326. hover: {
  327. mode: 'nearest',
  328. intersect: true
  329. },
  330. scales: {
  331. xAxes: [{
  332. display: true,
  333. scaleLabel: {
  334. display: false,
  335. labelString: ''
  336. }
  337. }],
  338. yAxes: [{
  339. display: true,
  340. id: 'B',
  341. name: 'B',
  342. scalePositionLeft: true,
  343. position: 'left',
  344. scaleLabel: {
  345. display: false,
  346. labelString: 'Value'
  347. },
  348. ticks: {
  349. min: 0,
  350. stepSize: 40,
  351. max: 200
  352. }
  353. }
  354. , {
  355. display: true,
  356. id: 'A',
  357. name: 'A',
  358. scalePositionLeft: false,
  359. position: 'right',
  360. scaleLabel: {
  361. display: false,
  362. labelString: 'Value2'
  363. },
  364. ticks: {
  365. min: 0,
  366. stepSize: 2,
  367. max: 10
  368. }
  369. }]
  370. }
  371. }
  372. };
  373. var ctxDayZL = document.getElementById("canvasDayZL").getContext("2d");
  374. window.DayZL = new Chart(ctxDayZL, configDayZL);
  375. //===================================================
  376. }
  377. </script>
  378. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  379. <script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>
  380. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  381. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  382. </body>
  383. </html>