demo.html 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  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. <!--注浆数据表格-->
  24. <div style="width:1840px;height:680px;display:flex;flex-direction:row;">
  25. <div style="width: 48%; height: 680px;">
  26. <table cellspacing="0" cellpadding="0" border="0" style="width: 99.8%;">
  27. <tr class="tr_title_warning">
  28. <td colspan="10" style="color: white;">半检二检检验统计</td>
  29. </tr>
  30. <tr class="tr_title_warning" style="height: 50px;">
  31. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">产品型号</td>
  32. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">成型产线</td>
  33. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">检验数量</td>
  34. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">合格品数</td>
  35. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px; ">返工品数</td>
  36. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">返工合格数</td>
  37. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">综合合格数</td>
  38. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">一次合格率</td>
  39. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px; ">返工合格率</td>
  40. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px; ">综合合格率</td>
  41. </tr>
  42. </table>
  43. <div style=" height: 522px; overflow: hidden; width: 100%;">
  44. <div>
  45. <table id="dayTable_template" style="display:none;">
  46. <tr class="tr_title_warning" style="height: 50px;">
  47. <td style="width: 10%; font-size: 10px; padding: 0px 0px 0px 0px;">{产品型号}</td>
  48. <td style="width: 10%; font-size: 10px;">{成型产线}</td>
  49. <td style="width: 10%; font-size: 10px; ">{检验数量}</td>
  50. <td style="width: 10%; font-size: 10px; ">{合格品数}</td>
  51. <td style="width: 10%; font-size: 10px; ">{返工品数}</td>
  52. <td style="width: 10%; font-size: 10px; ">{返工合格数}</td>
  53. <td style="width: 10%; font-size: 10px; ">{综合合格数}</td>
  54. <td style="width: 10%; font-size: 10px; ">{一次合格率}</td>
  55. <td style="width: 10%; font-size: 10px; ">{返工合格率}</td>
  56. <td style="width: 10%; font-size: 10px; ">{综合合格率}</td>
  57. </tr>
  58. </table>
  59. </div>
  60. <table id="dayTable" style="width: 100%; ">
  61. </table>
  62. </div>
  63. </div>
  64. <div style="width: 48%; height: 340px; position: absolute; right: 40px; ">
  65. <div class="d-flex justify-content-center">
  66. <canvas id="canvasHourCL" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:340px;width:100%"></canvas>
  67. </div>
  68. </div>
  69. <div style="width: 48%; height: 340px; margin-top:365px;margin-left:35px;">
  70. <div style="color:white;font-size:20px;font-weight:600; text-align:center">工号产量</div>
  71. <canvas id="canvasDayCL" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 280px; width: 100%;margin-top:-38px;"></canvas>
  72. </div>
  73. </div>
  74. <!--缺陷统计-->
  75. <div style="width:1840px;height:230px;display:flex;flex-direction:row;">
  76. <div style="width: 25%; height: 230px;">
  77. <div style="color:white;font-size:20px;font-weight:600; text-align:center">半检二检七日趋势图</div>
  78. <canvas id="canvasDayZL" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  79. </div>
  80. <div style="width: 25%; height: 230px;">
  81. <div style="color:white;font-size:20px;font-weight:600; text-align:center">成型缺陷(今日TOP3)</div>
  82. <canvas id="canvasDefectA" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  83. </div>
  84. <div style="width: 25%; height: 230px;">
  85. <div style="color:white;font-size:20px;font-weight:600; text-align:center">半检缺陷(今日TOP3)</div>
  86. <canvas id="canvasDefectB" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  87. </div>
  88. <div style="width: 25%; height: 230px; ">
  89. <div style="color:white;font-size:20px;font-weight:600; text-align:center;">精坯库库存</div>
  90. <canvas id="canvasDefectKC" style="margin-top:15px; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <script>
  96. var mainInterval;
  97. var mainRowCount = 0;
  98. var mainInterva2;
  99. var mainRowCoun2 = 0;
  100. function loadMainTable() {
  101. if (mainInterval) {
  102. clearInterval(mainInterval);
  103. //console.log("Interval Stop!");
  104. }
  105. $.get("demo.ashx?m=MonthTabletwo", function (data) {
  106. var json = JSON.parse(data);
  107. if (json["success"] == true) {
  108. $("#dayTable").html("");
  109. for (var i = 0; i < json["rows"].length; i++) {
  110. var temp = $("#dayTable_template").html();
  111. temp = temp.replace("<tbody>", "").replace("</tbody>", "");
  112. temp = temp.replace('{产品型号}', json["rows"][i]['产品型号']);
  113. temp = temp.replace('{成型产线}', json["rows"][i]['成型产线']);
  114. temp = temp.replace('{检验数量}', json["rows"][i]['检验数量']);
  115. temp = temp.replace('{合格品数}', json["rows"][i]['合格品数']);
  116. temp = temp.replace('{返工品数}', json["rows"][i]['返工品数']);
  117. temp = temp.replace('{返工合格数}', json["rows"][i]['返工合格数']);
  118. temp = temp.replace('{综合合格数}', json["rows"][i]['综合合格数']);
  119. temp = temp.replace('{一次合格率}', json["rows"][i]['一次合格率']);
  120. temp = temp.replace('{返工合格率}', json["rows"][i]['返工合格率']);
  121. temp = temp.replace('{综合合格率}', json["rows"][i]['综合合格率']);
  122. $("#dayTable").append(temp);
  123. }
  124. var num = parseInt(json["rows"].length);
  125. for (var i = 0; i < num; i++) {
  126. //获取日半检合格率
  127. var rb = document.getElementById("dayTable").rows[i].cells[9].innerHTML;
  128. var rb1 = parseInt(rb.replace(/[^\d.]/g, ""));
  129. //判断日成检合格率
  130. if (rb1 < 95) {
  131. document.getElementById("dayTable").rows[i].cells[9].style.color = 'red';
  132. }
  133. }
  134. mainRowCount = json["rows"].length;
  135. mainInterval = setInterval(mainScroll, 3000);
  136. }
  137. });
  138. }
  139. function mainScroll() {
  140. var scrollHeight = $("#dayTable").find("tr").outerHeight();
  141. $("#dayTable").animate({ marginTop: -scrollHeight, }, 500,
  142. function () {
  143. $(this).css({ marginTop: "0px", }).find("tr:first").appendTo(this);
  144. if (--mainRowCount == -1) loadMainTable();
  145. }
  146. );
  147. }
  148. function mainScrol2() {
  149. var scrollHeight = $("#dayTabletwo").find("tr").outerHeight();
  150. $("#dayTabletwo").animate({ marginTop: -scrollHeight, }, 500,
  151. function () {
  152. $(this).css({ marginTop: "0px", }).find("tr:first").appendTo(this);
  153. if (--mainRowCoun2 == -1) loadMainTable1();
  154. }
  155. );
  156. }
  157. $(document).ready(function () {
  158. initData();
  159. doGetData = setInterval(function () { timeUpdate(); }, 300000);
  160. loadMainTable();
  161. DdfectData();
  162. setInterval(function () { DdfectData(); }, 60000);
  163. DdfectDataB();
  164. setInterval(function () { DdfectDataB(); }, 60000);
  165. ZxData();
  166. setInterval(function () { ZxData(); }, 60000);
  167. ClData();
  168. setInterval(function () { ClData(); }, 60000);
  169. ZxDataH();
  170. setInterval(function () { ZxDataH(); }, 60000);
  171. ZxData()
  172. setInterval(function () { ZxData(); }, 60000);
  173. DataKC()
  174. setInterval(function () { DataKC(); }, 60000);
  175. });
  176. //半检一件七日趋势图
  177. function ZxData() {
  178. $.get("demo.ashx?m=zx", function (data) {
  179. var json = JSON.parse(data);
  180. if (json["success"] == true) {
  181. //var BJ1 = parseFloat(json["rows"][0]["二检合格率"]);
  182. //var BJ2 = parseFloat(json["rows"][1]["二检合格率"]);
  183. //var BJ3 = parseFloat(json["rows"][2]["二检合格率"]);
  184. //var BJ4 = parseFloat(json["rows"][3]["二检合格率"]);
  185. //var BJ5 = parseFloat(json["rows"][4]["二检合格率"]);
  186. //var BJ6 = parseFloat(json["rows"][5]["二检合格率"]);
  187. //var BJ7 = parseFloat(json["rows"][6]["二检合格率"]);
  188. //var day1 = json["rows"][0]["日期"];
  189. //var day2 = json["rows"][1]["日期"];
  190. //var day3 = json["rows"][2]["日期"];
  191. //var day4 = json["rows"][3]["日期"];
  192. //var day5 = json["rows"][4]["日期"];
  193. //var day6 = json["rows"][5]["日期"];
  194. //var day7 = json["rows"][6]["日期"];
  195. //var count1 = parseFloat(json["rows"][0]["二检数量"]);
  196. //var count2 = parseFloat(json["rows"][1]["二检数量"]);
  197. //var count3 = parseFloat(json["rows"][2]["二检数量"]);
  198. //var count4 = parseFloat(json["rows"][3]["二检数量"]);
  199. //var count5 = parseFloat(json["rows"][4]["二检数量"]);
  200. //var count6 = parseFloat(json["rows"][5]["二检数量"]);
  201. //var count7 = parseFloat(json["rows"][6]["二检数量"]);
  202. //window.DayZL.data.datasets[0].data = [BJ1, BJ2, BJ3, BJ4, BJ5, BJ6, BJ7];
  203. //window.DayZL.data.datasets[1].data = [count1, count2, count3, count4, count5, count6, count7];
  204. //window.DayZL.data.labels = [day1, day2, day3, day4, day5, day6, day7];
  205. // 首先清空数组
  206. window.DayZL.data.datasets[0].data = [];
  207. window.DayZL.data.datasets[1].data = [];
  208. window.DayZL.data.labels = [];
  209. for (var i=0; i < json["rows"].length;i++) {
  210. var BJ = parseFloat(json["rows"][i]["二检合格率"]);
  211. var day = json["rows"][i]["日期"];
  212. var count = parseFloat(json["rows"][i]["二检数量"]);
  213. window.DayZL.data.datasets[0].data.push(BJ);
  214. window.DayZL.data.datasets[1].data.push(count);
  215. window.DayZL.data.labels.push(day);
  216. }
  217. window.DayZL.update();
  218. }
  219. });
  220. }
  221. //精坯库库存
  222. function DataKC() {
  223. $.get("demo.ashx?m=kc", function (data) {
  224. var json = JSON.parse(data);
  225. if (json["success"] == true) {
  226. var count1 = parseFloat(json["rows"][0]["数量"]);
  227. var goodtype1 = json["rows"][0]["产品类别"];
  228. var count2 = 0;
  229. var goodtype2 = '';
  230. if (json["rows"].counts > 1) {
  231. count2 = parseFloat(json["rows"][1]["数量"]);
  232. goodtype2 = json["rows"][1]["产品类别"];
  233. }
  234. window.Defectkc.data.datasets[0].data = [count1, count2];
  235. window.Defectkc.data.labels = [goodtype1, goodtype2]
  236. window.Defectkc.update();
  237. }
  238. });
  239. }
  240. //每小时产量折线图
  241. function ZxDataH() {
  242. $.get("demo.ashx?m=h", function (data) {
  243. var json = JSON.parse(data);
  244. if (json["success"] == true) {
  245. var BJ1 = parseFloat(json["rows"][0]["一检产量"]);
  246. var BJ2 = parseFloat(json["rows"][1]["一检产量"]);
  247. var BJ3 = parseFloat(json["rows"][2]["一检产量"]);
  248. var BJ4 = parseFloat(json["rows"][3]["一检产量"]);
  249. var BJ5 = parseFloat(json["rows"][4]["一检产量"]);
  250. var BJ6 = parseFloat(json["rows"][5]["一检产量"]);
  251. var BJ7 = parseFloat(json["rows"][6]["一检产量"]);
  252. var BJ8 = parseFloat(json["rows"][7]["一检产量"]);
  253. var BJ9 = parseFloat(json["rows"][8]["一检产量"]);
  254. var BJ10 = parseFloat(json["rows"][9]["一检产量"]);
  255. var BJ11 = parseFloat(json["rows"][10]["一检产量"]);
  256. var BJ12 = parseFloat(json["rows"][11]["一检产量"]);
  257. var BJ13 = parseFloat(json["rows"][12]["一检产量"]);
  258. var BJ14 = parseFloat(json["rows"][13]["一检产量"]);
  259. var YQ1 = parseFloat(json["rows"][0]["预期产量"]);
  260. var YQ2 = parseFloat(json["rows"][1]["预期产量"]);
  261. var YQ3 = parseFloat(json["rows"][2]["预期产量"]);
  262. var YQ4 = parseFloat(json["rows"][3]["预期产量"]);
  263. var YQ5 = parseFloat(json["rows"][4]["预期产量"]);
  264. var YQ6 = parseFloat(json["rows"][5]["预期产量"]);
  265. var YQ7 = parseFloat(json["rows"][6]["预期产量"]);
  266. var YQ8 = parseFloat(json["rows"][7]["预期产量"]);
  267. var YQ9 = parseFloat(json["rows"][8]["预期产量"]);
  268. var YQ10 = parseFloat(json["rows"][9]["预期产量"]);
  269. var YQ11 = parseFloat(json["rows"][10]["预期产量"]);
  270. var YQ12 = parseFloat(json["rows"][11]["预期产量"]);
  271. var YQ13 = parseFloat(json["rows"][12]["预期产量"]);
  272. var YQ14 = parseFloat(json["rows"][13]["预期产量"]);
  273. var day1 = json["rows"][0]["日期"];
  274. var day2 = json["rows"][1]["日期"];
  275. var day3 = json["rows"][2]["日期"];
  276. var day4 = json["rows"][3]["日期"];
  277. var day5 = json["rows"][4]["日期"];
  278. var day6 = json["rows"][5]["日期"];
  279. var day7 = json["rows"][6]["日期"];
  280. var day8 = json["rows"][7]["日期"];
  281. var day9 = json["rows"][8]["日期"];
  282. var day10 = json["rows"][9]["日期"];
  283. var day11 = json["rows"][10]["日期"];
  284. var day12 = json["rows"][11]["日期"];
  285. var day13 = json["rows"][12]["日期"];
  286. var day14 = json["rows"][13]["日期"];
  287. window.DayCLH.data.datasets[0].data = [BJ1, BJ2, BJ3, BJ4, BJ5, BJ6, BJ7, BJ8, BJ9, BJ10, BJ11, BJ12, BJ13, BJ14];
  288. window.DayCLH.data.datasets[1].data = [YQ1, YQ2, YQ3, YQ4, YQ5, YQ6, YQ7, YQ8, YQ9, YQ10, YQ11, YQ12, YQ13, YQ14];
  289. window.DayCLH.data.labels = [day1, day2, day3, day4, day5, day6, day7, day8, day9, day10, day11, day12, day13,day14];
  290. window.DayCLH.update();
  291. }
  292. });
  293. }
  294. //一检工号产量
  295. function ClData() {
  296. $.get("demo.ashx?m=cl", function (data) {
  297. var json = JSON.parse(data);
  298. let a = [];
  299. let b = [];
  300. if (json["success"] == true) {
  301. //var num = parseInt(json["rows"][0]["ROWNUM"]);
  302. var num = parseInt(json["rows"].length);
  303. for (var i = 0; i < num; i++) {
  304. a.push(parseInt(json["rows"][i]["产量"]));
  305. b.push(json["rows"][i]["工号"]);
  306. }
  307. window.DayCL.data.datasets[0].data = a;
  308. window.DayCL.data.labels = b;
  309. window.DayCL.update();
  310. }
  311. });
  312. }
  313. function DdfectData() {
  314. $.get("demo.ashx?m=defect", function (data) {
  315. var json = JSON.parse(data);
  316. if (json["success"] == true) {
  317. var defect2=""
  318. var defectname2=0
  319. var defect3 = ""
  320. var defectname3 = 0
  321. var defect1 = parseFloat(json["rows"][0]["数量"]);
  322. var defectname1 = json["rows"][0]["缺陷名称"];
  323. if (json["rows"].length > 1) {
  324. defect2 = parseFloat(json["rows"][1]["数量"]);
  325. defectname2 = json["rows"][1]["缺陷名称"];
  326. }
  327. if (json["rows"].length > 2) {
  328. defect3 = parseFloat(json["rows"][2]["数量"]);
  329. defectname3 = json["rows"][2]["缺陷名称"];
  330. }
  331. window.DefectA.data.datasets[0].data = [defect1, defect2, defect3];
  332. window.DefectA.data.labels = [defectname1, defectname2, defectname3]
  333. window.DefectA.update();
  334. }
  335. });
  336. }
  337. //毛坯库库存
  338. function DataKC() {
  339. $.get("demo.ashx?m=kc", function (data) {
  340. var json = JSON.parse(data);
  341. if (json["success"] == true) {
  342. var count1 = parseFloat(json["rows"][0]["数量"]);
  343. var goodtype1 = json["rows"][0]["产品类别"];
  344. var count2 = 0;
  345. var goodtype2 = '';
  346. if (json["rows"].counts > 1) {
  347. count2 = parseFloat(json["rows"][1]["数量"]);
  348. goodtype2 = json["rows"][1]["产品类别"];
  349. }
  350. window.Defectkc.data.datasets[0].data = [count1, count2];
  351. window.Defectkc.data.labels = [goodtype1, goodtype2]
  352. window.Defectkc.update();
  353. }
  354. });
  355. }
  356. function DdfectDataB() {
  357. $.get("demo.ashx?m=defectb", function (data) {
  358. var json = JSON.parse(data);
  359. if (json["success"] == true) {
  360. var defect2 = ""
  361. var defectname2 = 0
  362. var defect3 = ""
  363. var defectname3 = 0
  364. var defect1 = parseFloat(json["rows"][0]["数量"]);
  365. var defectname1 = json["rows"][0]["缺陷名称"];
  366. if (json["rows"].length > 1) {
  367. defect2 = parseFloat(json["rows"][1]["数量"]);
  368. defectname2 = json["rows"][1]["缺陷名称"];
  369. }
  370. if (json["rows"].length > 2) {
  371. defect3 = parseFloat(json["rows"][2]["数量"]);
  372. defectname3 = json["rows"][2]["缺陷名称"];
  373. }
  374. window.DefectB.data.datasets[0].data = [defect1, defect2, defect3];
  375. window.DefectB.data.labels = [defectname1, defectname2, defectname3]
  376. window.DefectB.update();
  377. }
  378. });
  379. }
  380. function timeUpdate() {
  381. loadData();
  382. }
  383. function loadData() {
  384. //成型各项趋势图
  385. //window.DayZL.data.datasets[0].data = [
  386. // randomScalingFactor(1) + 80,
  387. // randomScalingFactor(1) + 80,
  388. // randomScalingFactor(1) + 80,
  389. // randomScalingFactor(1) + 80,
  390. // randomScalingFactor(1) + 80,
  391. // randomScalingFactor(1) + 80,
  392. // randomScalingFactor(1) + 80
  393. //];
  394. //window.DayZL.data.datasets[1].data = [
  395. // randomScalingFactor(1) + 70,
  396. // randomScalingFactor(1) + 70,
  397. // randomScalingFactor(1) + 70,
  398. // randomScalingFactor(1) + 70,
  399. // randomScalingFactor(1) + 70,
  400. // randomScalingFactor(1) + 70,
  401. // randomScalingFactor(1) + 70
  402. //];
  403. //window.DayZL.update();
  404. //成型缺陷top5
  405. //window.DefectA.data.datasets[0].data = [
  406. // randomScalingFactor(8),
  407. // randomScalingFactor(8),
  408. // randomScalingFactor(8)
  409. //];
  410. //window.DefectA.update();
  411. //成检缺陷top5
  412. //window.DefectB.data.datasets[0].data = [
  413. // randomScalingFactor(8),
  414. // randomScalingFactor(8),
  415. // randomScalingFactor(8)
  416. //];
  417. //window.DefectB.update();
  418. //产量计划达成
  419. //window.MonthCL.data.datasets[0].data = [
  420. // randomScalingFactor(1000),
  421. // randomScalingFactor(1000)
  422. //];
  423. //window.MonthCL.update();
  424. }
  425. function initData() {
  426. window.chartColors = {
  427. red: 'rgb(255, 99, 132)',
  428. orange: 'rgb(255, 159, 64)',
  429. yellow: 'rgb(255, 250, 86)',
  430. green: 'rgb(75, 192, 192)',
  431. blue: 'rgb(54, 162, 250)',
  432. purple: 'rgb(153, 102, 255)',
  433. grey: 'rgb(231,233,237)'
  434. };
  435. var color = Chart.helpers.color;
  436. window.randomScalingFactor = function (num) {
  437. return Math.round(Math.random() * num);
  438. }
  439. Chart.defaults.global.defaultFontColor = 'white';
  440. Chart.defaults.global.defaultFontSize = 18;
  441. Chart.defaults.global.legend.display = false;
  442. //半检一检各项趋势图=====================================
  443. window.configDayZL = {
  444. data: {
  445. labels: ["01", "02", "03", "04", "05", "06", "07"],
  446. datasets: [{
  447. type: 'line',
  448. label: "合格率",
  449. yAxesGroup: 'A',
  450. yAxisID: 'A',
  451. backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
  452. borderColor: window.chartColors.red,
  453. borderWidth: 2,
  454. pointRadius: 15,
  455. data: [0, 0, 0, 0, 0, 0, 0],
  456. fill: false
  457. }, {
  458. label: '产量',
  459. yAxesGroup: 'B',
  460. yAxisID: 'B',
  461. backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
  462. borderColor: window.chartColors.blue,
  463. borderWidth: 1,
  464. data: [100, 100, 100, 100, 100, 100, 100],
  465. fill: false
  466. }]
  467. },
  468. type: 'bar',
  469. options: {
  470. legend: {
  471. display: true
  472. },
  473. title: {
  474. display: false,
  475. text: '质量统计'
  476. },
  477. tooltips: {
  478. mode: 'index',
  479. intersect: false,
  480. },
  481. hover: {
  482. mode: 'nearest',
  483. intersect: true
  484. },
  485. scales: {
  486. xAxes: [{
  487. display: true,
  488. scaleLabel: {
  489. display: false,
  490. labelString: ''
  491. }
  492. }],
  493. yAxes: [{
  494. display: true,
  495. id: 'B',
  496. name: 'B',
  497. scalePositionLeft: true,
  498. position: 'left',
  499. scaleLabel: {
  500. display: false,
  501. labelString: 'Value'
  502. },
  503. ticks: {
  504. min: 0,
  505. stepSize: 500,
  506. max: 3000
  507. }
  508. }
  509. , {
  510. display: true,
  511. id: 'A',
  512. name: 'A',
  513. scalePositionLeft: false,
  514. position: 'right',
  515. scaleLabel: {
  516. display: false,
  517. labelString: 'Value2'
  518. },
  519. ticks: {
  520. min: 90,
  521. stepSize: 2,
  522. max: 100
  523. }
  524. }]
  525. }
  526. }
  527. };
  528. var ctxDayZL = document.getElementById("canvasDayZL").getContext("2d");
  529. window.DayZL = new Chart(ctxDayZL, configDayZL);
  530. //===================================================
  531. //成型缺陷TOP5===========================================
  532. window.configDefectA = {
  533. data: {
  534. labels: ['1', '2', '3'],
  535. datasets: [{
  536. label: '工序',
  537. backgroundColor: [
  538. color(window.chartColors.red).alpha(0.35).rgbString(),
  539. color(window.chartColors.blue).alpha(0.35).rgbString(),
  540. color(window.chartColors.green).alpha(0.35).rgbString(),
  541. color(window.chartColors.orange).alpha(0.35).rgbString(),
  542. color(window.chartColors.purple).alpha(0.35).rgbString()
  543. ],
  544. fill: false,
  545. borderColor: [
  546. window.chartColors.red,
  547. window.chartColors.blue,
  548. window.chartColors.green,
  549. window.chartColors.orange,
  550. window.chartColors.purple
  551. ],
  552. borderWidth: 2,
  553. pointRadius: 30,
  554. data: [0, 0, 0]
  555. }]
  556. },
  557. type: 'pie',
  558. options: {
  559. legend: {
  560. display: true
  561. },
  562. title: {
  563. display: false,
  564. text: "甲班缺陷"
  565. },
  566. tooltips: {
  567. mode: 'point',
  568. intersect: false
  569. },
  570. responsive: true
  571. }
  572. };
  573. var ctxDefectA = document.getElementById("canvasDefectA").getContext("2d");
  574. window.DefectA = new Chart(ctxDefectA, configDefectA);
  575. //===================================================
  576. //成检缺陷TOP5===========================================
  577. window.configDefectB = {
  578. data: {
  579. labels: ['缺陷1', '缺陷2', '缺陷3'],
  580. datasets: [{
  581. label: '工序',
  582. backgroundColor: [
  583. color(window.chartColors.red).alpha(0.35).rgbString(),
  584. color(window.chartColors.blue).alpha(0.35).rgbString(),
  585. color(window.chartColors.green).alpha(0.35).rgbString(),
  586. color(window.chartColors.orange).alpha(0.35).rgbString(),
  587. color(window.chartColors.purple).alpha(0.35).rgbString()
  588. ],
  589. fill: false,
  590. borderColor: [
  591. window.chartColors.red,
  592. window.chartColors.blue,
  593. window.chartColors.green,
  594. window.chartColors.orange,
  595. window.chartColors.purple
  596. ],
  597. borderWidth: 2,
  598. pointRadius: 30,
  599. data: [0, 0, 0]
  600. }]
  601. },
  602. type: 'pie',
  603. options: {
  604. legend: {
  605. display: true
  606. },
  607. title: {
  608. display: false,
  609. text: "甲班缺陷"
  610. },
  611. tooltips: {
  612. mode: 'point',
  613. intersect: false
  614. },
  615. responsive: true
  616. }
  617. };
  618. var ctxDefectB = document.getElementById("canvasDefectB").getContext("2d");
  619. window.DefectB = new Chart(ctxDefectB, configDefectB);
  620. //===================================================
  621. //甲班缺陷===========================================
  622. //window.configMonthCL = {
  623. // data: {
  624. // labels: ['实际产量', '目标产量'],
  625. // datasets: [{
  626. // label: '工序',
  627. // backgroundColor: [
  628. // color(window.chartColors.red).alpha(0.35).rgbString(),
  629. // color(window.chartColors.blue).alpha(0.35).rgbString(),
  630. // color(window.chartColors.green).alpha(0.35).rgbString(),
  631. // color(window.chartColors.orange).alpha(0.35).rgbString(),
  632. // color(window.chartColors.purple).alpha(0.35).rgbString()
  633. // ],
  634. // fill: false,
  635. // borderColor: [
  636. // window.chartColors.red,
  637. // window.chartColors.blue,
  638. // window.chartColors.green,
  639. // window.chartColors.orange,
  640. // window.chartColors.purple
  641. // ],
  642. // borderWidth: 2,
  643. // pointRadius: 30,
  644. // data: [0, 0]
  645. // }]
  646. // },
  647. // type: 'doughnut',
  648. // options: {
  649. // legend: {
  650. // display: true
  651. // },
  652. // title: {
  653. // display: false,
  654. // text: ""
  655. // },
  656. // tooltips: {
  657. // mode: 'point',
  658. // intersect: false
  659. // },
  660. // responsive: true
  661. // }
  662. //};
  663. //var ctxMonthCL = document.getElementById("canvasMonthCL").getContext("2d");
  664. //window.MonthCL = new Chart(ctxMonthCL, configMonthCL);
  665. //===================================================
  666. //侧漏气产量柱状图=====================================
  667. window.canvasDayCL = {
  668. data: {
  669. labels: ["01", "02", "03", "04", "05", "06", "07"],
  670. datasets: [
  671. {
  672. label: "产量",
  673. fill: false,
  674. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  675. borderColor: window.chartColors.blue,
  676. borderWidth: 2,
  677. pointRadius: 15,
  678. data: [0, 0, 0, 0, 0, 0, 0, 0]
  679. }
  680. ]
  681. },
  682. type: 'bar',
  683. options: {
  684. legend: {
  685. display: true
  686. },
  687. title: {
  688. display: true,
  689. text: ""
  690. },
  691. tooltips: {
  692. mode: 'point',
  693. intersect: false
  694. },
  695. responsive: true,
  696. scales: {
  697. xAxes: [{
  698. stacked: false
  699. }],
  700. yAxes: [{
  701. display: true,
  702. stacked: false,
  703. ticks: {
  704. min: 0,
  705. stepSize: 100,
  706. max: 500
  707. }
  708. }]
  709. }
  710. }
  711. };
  712. var ctxDayCL = document.getElementById("canvasDayCL").getContext("2d");
  713. window.DayCL = new Chart(ctxDayCL, canvasDayCL);
  714. //===================================================
  715. //每小时产量=========================================
  716. window.canvasHourCL = {
  717. data: {
  718. labels: [0,0,0,0,0,0],
  719. datasets: [{
  720. label: "实际产量",
  721. fill: false,
  722. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  723. borderColor: window.chartColors.blue,
  724. borderWidth: 2,
  725. pointRadius: 12,
  726. data: [0,0,0,0,0,0]
  727. }, {
  728. label: "预期产量",
  729. fill: false,
  730. backgroundColor: color(window.chartColors.red).alpha(0.6).rgbString(),
  731. borderColor: window.chartColors.red,
  732. borderWidth: 2,
  733. pointRadius: 12,
  734. data: [0,0,0,0,0,0]
  735. }
  736. ]
  737. },
  738. type: 'line',
  739. options: {
  740. responsive: true,
  741. legend: {
  742. display: true
  743. },
  744. title: {
  745. display: true,
  746. text: '每小时产量'
  747. },
  748. tooltips: {
  749. mode: 'index',
  750. intersect: false,
  751. },
  752. hover: {
  753. mode: 'nearest',
  754. intersect: true
  755. },
  756. scales: {
  757. xAxes: [{
  758. display: true,
  759. scaleLabel: {
  760. display: false,
  761. labelString: ''
  762. }
  763. }],
  764. yAxes: [{
  765. display: true,
  766. scaleLabel: {
  767. display: false,
  768. labelString: 'Value'
  769. },
  770. ticks: {
  771. min: 0,
  772. stepSize: 50,
  773. max: 300
  774. }
  775. }]
  776. }
  777. }
  778. };
  779. var ctxHourCL = document.getElementById("canvasHourCL").getContext("2d");
  780. window.DayCLH = new Chart(ctxHourCL, canvasHourCL);
  781. //===================================================
  782. //毛坯库库存===========================================
  783. window.canvasDefectKC = {
  784. data: {
  785. labels: ['1', '2', '3'],
  786. datasets: [{
  787. label: '工序',
  788. backgroundColor: [
  789. color(window.chartColors.red).alpha(0.35).rgbString(),
  790. color(window.chartColors.blue).alpha(0.35).rgbString(),
  791. color(window.chartColors.green).alpha(0.35).rgbString(),
  792. color(window.chartColors.orange).alpha(0.35).rgbString(),
  793. color(window.chartColors.purple).alpha(0.35).rgbString()
  794. ],
  795. fill: false,
  796. borderColor: [
  797. window.chartColors.red,
  798. window.chartColors.blue,
  799. window.chartColors.green,
  800. window.chartColors.orange,
  801. window.chartColors.purple
  802. ],
  803. borderWidth: 2,
  804. pointRadius: 30,
  805. data: [0, 0, 0]
  806. }]
  807. },
  808. type: 'pie',
  809. options: {
  810. legend: {
  811. display: true
  812. },
  813. title: {
  814. display: false,
  815. text: "甲班缺陷"
  816. },
  817. tooltips: {
  818. mode: 'point',
  819. intersect: false
  820. },
  821. responsive: true
  822. }
  823. };
  824. var ctxDefectKc = document.getElementById("canvasDefectKC").getContext("2d");
  825. window.Defectkc = new Chart(ctxDefectKc, canvasDefectKC);
  826. //===================================================
  827. }
  828. </script>
  829. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  830. <script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>
  831. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  832. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  833. </body>
  834. </html>