demo.html 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655
  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. <!--缺陷1-4-->
  24. <div style="width:1840px;height:30%;display:flex;flex-direction:row;">
  25. <div style="width: 25%; height: 30%;">
  26. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP1(位置TOP3)</div>
  27. <canvas id="canvasDefectA1" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  28. </div>
  29. <div style="width: 25%; height: 30%;">
  30. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP2(位置TOP3)</div>
  31. <canvas id="canvasDefectA2" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  32. </div>
  33. <div style="width: 25%; height: 30%;">
  34. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP3(位置TOP3)</div>
  35. <canvas id="canvasDefectA3" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  36. </div>
  37. <div style="width: 25%; height: 30%;">
  38. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP4(位置TOP3)</div>
  39. <canvas id="canvasDefectA4" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  40. </div>
  41. </div>
  42. <!--缺陷5-8-->
  43. <div style="width:1840px;height:30%;display:flex;flex-direction:row;">
  44. <div style="width: 25%; height: 30%;">
  45. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP5(位置TOP3)</div>
  46. <canvas id="canvasDefectA5" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  47. </div>
  48. <div style="width: 25%; height: 30%;">
  49. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP6(位置TOP3)</div>
  50. <canvas id="canvasDefectA6" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  51. </div>
  52. <div style="width: 25%; height: 30%;">
  53. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP7(位置TOP3)</div>
  54. <canvas id="canvasDefectA7" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  55. </div>
  56. <div style="width: 25%; height: 30%;">
  57. <div style="color:white;font-size:20px;font-weight:600; text-align:center">缺陷TOP8(位置TOP3)</div>
  58. <canvas id="canvasDefectA8" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
  59. </div>
  60. </div>
  61. <!--近7日质量折线图-->
  62. <div style="width:1840px;height:40%;display:flex;flex-direction:row;">
  63. <div style="width: 100%; height: 80%;">
  64. <div style="color:white;font-size:20px;font-weight:600; text-align:center">质量统计(7日)</div>
  65. <canvas id="canvasDayZL" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 100%; width: 100%"></canvas>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <script>
  71. $(document).ready(function () {
  72. initData();
  73. doGetData = setInterval(function () { timeUpdate(); }, 2000);
  74. });
  75. function timeUpdate() {
  76. loadData();
  77. }
  78. function loadData() {
  79. //缺陷位置top3
  80. window.DefectA1.data.datasets[0].data = [
  81. randomScalingFactor(8),
  82. randomScalingFactor(8),
  83. randomScalingFactor(8),
  84. randomScalingFactor(8)
  85. ];
  86. window.DefectA1.update();
  87. window.DefectA2.data.datasets[0].data = [
  88. randomScalingFactor(8),
  89. randomScalingFactor(8),
  90. randomScalingFactor(8),
  91. randomScalingFactor(8)
  92. ];
  93. window.DefectA2.update();
  94. window.DefectA3.data.datasets[0].data = [
  95. randomScalingFactor(8),
  96. randomScalingFactor(8),
  97. randomScalingFactor(8),
  98. randomScalingFactor(8)
  99. ];
  100. window.DefectA3.update();
  101. window.DefectA4.data.datasets[0].data = [
  102. randomScalingFactor(8),
  103. randomScalingFactor(8),
  104. randomScalingFactor(8),
  105. randomScalingFactor(8)
  106. ];
  107. window.DefectA4.update();
  108. window.DefectA5.data.datasets[0].data = [
  109. randomScalingFactor(8),
  110. randomScalingFactor(8),
  111. randomScalingFactor(8),
  112. randomScalingFactor(8)
  113. ];
  114. window.DefectA5.update();
  115. window.DefectA6.data.datasets[0].data = [
  116. randomScalingFactor(8),
  117. randomScalingFactor(8),
  118. randomScalingFactor(8),
  119. randomScalingFactor(8)
  120. ];
  121. window.DefectA6.update();
  122. window.DefectA7.data.datasets[0].data = [
  123. randomScalingFactor(8),
  124. randomScalingFactor(8),
  125. randomScalingFactor(8),
  126. randomScalingFactor(8)
  127. ];
  128. window.DefectA7.update();
  129. window.DefectA8.data.datasets[0].data = [
  130. randomScalingFactor(8),
  131. randomScalingFactor(8),
  132. randomScalingFactor(8),
  133. randomScalingFactor(8)
  134. ];
  135. window.DefectA8.update();
  136. //质量统计
  137. window.DayZL.data.datasets[0].data = [
  138. randomScalingFactor(30) + 70,
  139. randomScalingFactor(30) + 70,
  140. randomScalingFactor(30) + 70,
  141. randomScalingFactor(30) + 70,
  142. randomScalingFactor(30) + 70,
  143. randomScalingFactor(30) + 70,
  144. randomScalingFactor(30) + 70
  145. ];
  146. window.DayZL.data.datasets[1].data = [
  147. randomScalingFactor(10) + 60,
  148. randomScalingFactor(10) + 60,
  149. randomScalingFactor(10) + 60,
  150. randomScalingFactor(10) + 60,
  151. randomScalingFactor(10) + 60,
  152. randomScalingFactor(10) + 60,
  153. randomScalingFactor(10) + 60
  154. ];
  155. window.DayZL.update();
  156. }
  157. function initData() {
  158. window.chartColors = {
  159. red: 'rgb(255, 99, 132)',
  160. orange: 'rgb(255, 159, 64)',
  161. yellow: 'rgb(255, 250, 86)',
  162. green: 'rgb(75, 192, 192)',
  163. blue: 'rgb(54, 162, 250)',
  164. purple: 'rgb(153, 102, 255)',
  165. grey: 'rgb(231,233,237)'
  166. };
  167. var color = Chart.helpers.color;
  168. window.randomScalingFactor = function (num) {
  169. return Math.round(Math.random() * num);
  170. }
  171. Chart.defaults.global.defaultFontColor = 'white';
  172. Chart.defaults.global.defaultFontSize = 18;
  173. Chart.defaults.global.legend.display = false;
  174. //甲班缺陷===========================================
  175. window.configDefectA1 = {
  176. data: {
  177. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3','其它'],
  178. datasets: [{
  179. label: '工序',
  180. backgroundColor: [
  181. color(window.chartColors.red).alpha(0.35).rgbString(),
  182. color(window.chartColors.blue).alpha(0.35).rgbString(),
  183. color(window.chartColors.green).alpha(0.35).rgbString(),
  184. color(window.chartColors.orange).alpha(0.35).rgbString(),
  185. color(window.chartColors.purple).alpha(0.35).rgbString()
  186. ],
  187. fill: false,
  188. borderColor: [
  189. window.chartColors.red,
  190. window.chartColors.blue,
  191. window.chartColors.green,
  192. window.chartColors.orange,
  193. window.chartColors.purple
  194. ],
  195. borderWidth: 2,
  196. pointRadius: 30,
  197. data: [0, 0, 0, 0]
  198. }]
  199. },
  200. type: 'pie',
  201. options: {
  202. legend: {
  203. display: true
  204. },
  205. title: {
  206. display: false,
  207. text: "缺陷TOP1"
  208. },
  209. tooltips: {
  210. mode: 'point',
  211. intersect: false
  212. },
  213. responsive: true
  214. }
  215. };
  216. var ctxDefectA1 = document.getElementById("canvasDefectA1").getContext("2d");
  217. window.DefectA1 = new Chart(ctxDefectA1, configDefectA1);
  218. //===================================================
  219. //甲班缺陷===========================================
  220. window.configDefectA2 = {
  221. data: {
  222. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  223. datasets: [{
  224. label: '工序',
  225. backgroundColor: [
  226. color(window.chartColors.red).alpha(0.35).rgbString(),
  227. color(window.chartColors.blue).alpha(0.35).rgbString(),
  228. color(window.chartColors.green).alpha(0.35).rgbString(),
  229. color(window.chartColors.orange).alpha(0.35).rgbString(),
  230. color(window.chartColors.purple).alpha(0.35).rgbString()
  231. ],
  232. fill: false,
  233. borderColor: [
  234. window.chartColors.red,
  235. window.chartColors.blue,
  236. window.chartColors.green,
  237. window.chartColors.orange,
  238. window.chartColors.purple
  239. ],
  240. borderWidth: 2,
  241. pointRadius: 30,
  242. data: [0, 0, 0, 0]
  243. }]
  244. },
  245. type: 'pie',
  246. options: {
  247. legend: {
  248. display: true
  249. },
  250. title: {
  251. display: false,
  252. text: "缺陷TOP1"
  253. },
  254. tooltips: {
  255. mode: 'point',
  256. intersect: false
  257. },
  258. responsive: true
  259. }
  260. };
  261. var ctxDefectA2 = document.getElementById("canvasDefectA2").getContext("2d");
  262. window.DefectA2 = new Chart(ctxDefectA2, configDefectA2);
  263. //===================================================
  264. //甲班缺陷===========================================
  265. window.configDefectA3 = {
  266. data: {
  267. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  268. datasets: [{
  269. label: '工序',
  270. backgroundColor: [
  271. color(window.chartColors.red).alpha(0.35).rgbString(),
  272. color(window.chartColors.blue).alpha(0.35).rgbString(),
  273. color(window.chartColors.green).alpha(0.35).rgbString(),
  274. color(window.chartColors.orange).alpha(0.35).rgbString(),
  275. color(window.chartColors.purple).alpha(0.35).rgbString()
  276. ],
  277. fill: false,
  278. borderColor: [
  279. window.chartColors.red,
  280. window.chartColors.blue,
  281. window.chartColors.green,
  282. window.chartColors.orange,
  283. window.chartColors.purple
  284. ],
  285. borderWidth: 2,
  286. pointRadius: 30,
  287. data: [0, 0, 0, 0]
  288. }]
  289. },
  290. type: 'pie',
  291. options: {
  292. legend: {
  293. display: true
  294. },
  295. title: {
  296. display: false,
  297. text: "缺陷TOP1"
  298. },
  299. tooltips: {
  300. mode: 'point',
  301. intersect: false
  302. },
  303. responsive: true
  304. }
  305. };
  306. var ctxDefectA3 = document.getElementById("canvasDefectA3").getContext("2d");
  307. window.DefectA3 = new Chart(ctxDefectA3, configDefectA3);
  308. //===================================================
  309. //甲班缺陷===========================================
  310. window.configDefectA4 = {
  311. data: {
  312. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  313. datasets: [{
  314. label: '工序',
  315. backgroundColor: [
  316. color(window.chartColors.red).alpha(0.35).rgbString(),
  317. color(window.chartColors.blue).alpha(0.35).rgbString(),
  318. color(window.chartColors.green).alpha(0.35).rgbString(),
  319. color(window.chartColors.orange).alpha(0.35).rgbString(),
  320. color(window.chartColors.purple).alpha(0.35).rgbString()
  321. ],
  322. fill: false,
  323. borderColor: [
  324. window.chartColors.red,
  325. window.chartColors.blue,
  326. window.chartColors.green,
  327. window.chartColors.orange,
  328. window.chartColors.purple
  329. ],
  330. borderWidth: 2,
  331. pointRadius: 30,
  332. data: [0, 0, 0, 0]
  333. }]
  334. },
  335. type: 'pie',
  336. options: {
  337. legend: {
  338. display: true
  339. },
  340. title: {
  341. display: false,
  342. text: "缺陷TOP1"
  343. },
  344. tooltips: {
  345. mode: 'point',
  346. intersect: false
  347. },
  348. responsive: true
  349. }
  350. };
  351. var ctxDefectA4 = document.getElementById("canvasDefectA4").getContext("2d");
  352. window.DefectA4 = new Chart(ctxDefectA4, configDefectA4);
  353. //===================================================
  354. //甲班缺陷===========================================
  355. window.configDefectA5 = {
  356. data: {
  357. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  358. datasets: [{
  359. label: '工序',
  360. backgroundColor: [
  361. color(window.chartColors.red).alpha(0.35).rgbString(),
  362. color(window.chartColors.blue).alpha(0.35).rgbString(),
  363. color(window.chartColors.green).alpha(0.35).rgbString(),
  364. color(window.chartColors.orange).alpha(0.35).rgbString(),
  365. color(window.chartColors.purple).alpha(0.35).rgbString()
  366. ],
  367. fill: false,
  368. borderColor: [
  369. window.chartColors.red,
  370. window.chartColors.blue,
  371. window.chartColors.green,
  372. window.chartColors.orange,
  373. window.chartColors.purple
  374. ],
  375. borderWidth: 2,
  376. pointRadius: 30,
  377. data: [0, 0, 0, 0]
  378. }]
  379. },
  380. type: 'pie',
  381. options: {
  382. legend: {
  383. display: true
  384. },
  385. title: {
  386. display: false,
  387. text: "缺陷TOP1"
  388. },
  389. tooltips: {
  390. mode: 'point',
  391. intersect: false
  392. },
  393. responsive: true
  394. }
  395. };
  396. var ctxDefectA5 = document.getElementById("canvasDefectA5").getContext("2d");
  397. window.DefectA5 = new Chart(ctxDefectA5, configDefectA5);
  398. //===================================================
  399. //甲班缺陷===========================================
  400. window.configDefectA6 = {
  401. data: {
  402. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  403. datasets: [{
  404. label: '工序',
  405. backgroundColor: [
  406. color(window.chartColors.red).alpha(0.35).rgbString(),
  407. color(window.chartColors.blue).alpha(0.35).rgbString(),
  408. color(window.chartColors.green).alpha(0.35).rgbString(),
  409. color(window.chartColors.orange).alpha(0.35).rgbString(),
  410. color(window.chartColors.purple).alpha(0.35).rgbString()
  411. ],
  412. fill: false,
  413. borderColor: [
  414. window.chartColors.red,
  415. window.chartColors.blue,
  416. window.chartColors.green,
  417. window.chartColors.orange,
  418. window.chartColors.purple
  419. ],
  420. borderWidth: 2,
  421. pointRadius: 30,
  422. data: [0, 0, 0, 0]
  423. }]
  424. },
  425. type: 'pie',
  426. options: {
  427. legend: {
  428. display: true
  429. },
  430. title: {
  431. display: false,
  432. text: "缺陷TOP1"
  433. },
  434. tooltips: {
  435. mode: 'point',
  436. intersect: false
  437. },
  438. responsive: true
  439. }
  440. };
  441. var ctxDefectA6 = document.getElementById("canvasDefectA6").getContext("2d");
  442. window.DefectA6 = new Chart(ctxDefectA6, configDefectA6);
  443. //===================================================
  444. //甲班缺陷===========================================
  445. window.configDefectA7 = {
  446. data: {
  447. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  448. datasets: [{
  449. label: '工序',
  450. backgroundColor: [
  451. color(window.chartColors.red).alpha(0.35).rgbString(),
  452. color(window.chartColors.blue).alpha(0.35).rgbString(),
  453. color(window.chartColors.green).alpha(0.35).rgbString(),
  454. color(window.chartColors.orange).alpha(0.35).rgbString(),
  455. color(window.chartColors.purple).alpha(0.35).rgbString()
  456. ],
  457. fill: false,
  458. borderColor: [
  459. window.chartColors.red,
  460. window.chartColors.blue,
  461. window.chartColors.green,
  462. window.chartColors.orange,
  463. window.chartColors.purple
  464. ],
  465. borderWidth: 2,
  466. pointRadius: 30,
  467. data: [0, 0, 0, 0]
  468. }]
  469. },
  470. type: 'pie',
  471. options: {
  472. legend: {
  473. display: true
  474. },
  475. title: {
  476. display: false,
  477. text: "缺陷TOP1"
  478. },
  479. tooltips: {
  480. mode: 'point',
  481. intersect: false
  482. },
  483. responsive: true
  484. }
  485. };
  486. var ctxDefectA7 = document.getElementById("canvasDefectA7").getContext("2d");
  487. window.DefectA7 = new Chart(ctxDefectA7, configDefectA7);
  488. //===================================================
  489. //甲班缺陷===========================================
  490. window.configDefectA8 = {
  491. data: {
  492. labels: ['缺陷位置1', '缺陷位置2', '缺陷位置3', '其它'],
  493. datasets: [{
  494. label: '工序',
  495. backgroundColor: [
  496. color(window.chartColors.red).alpha(0.35).rgbString(),
  497. color(window.chartColors.blue).alpha(0.35).rgbString(),
  498. color(window.chartColors.green).alpha(0.35).rgbString(),
  499. color(window.chartColors.orange).alpha(0.35).rgbString(),
  500. color(window.chartColors.purple).alpha(0.35).rgbString()
  501. ],
  502. fill: false,
  503. borderColor: [
  504. window.chartColors.red,
  505. window.chartColors.blue,
  506. window.chartColors.green,
  507. window.chartColors.orange,
  508. window.chartColors.purple
  509. ],
  510. borderWidth: 2,
  511. pointRadius: 30,
  512. data: [0, 0, 0, 0]
  513. }]
  514. },
  515. type: 'pie',
  516. options: {
  517. legend: {
  518. display: true
  519. },
  520. title: {
  521. display: false,
  522. text: "缺陷TOP1"
  523. },
  524. tooltips: {
  525. mode: 'point',
  526. intersect: false
  527. },
  528. responsive: true
  529. }
  530. };
  531. var ctxDefectA8 = document.getElementById("canvasDefectA8").getContext("2d");
  532. window.DefectA8 = new Chart(ctxDefectA8, configDefectA8);
  533. //===================================================
  534. //质量统计=========================================
  535. window.configDayZL = {
  536. data: {
  537. labels: ["01", "02", "03", "04", "05", "06", "07"],
  538. datasets: [{
  539. label: "计划合格率",
  540. backgroundColor: color(window.chartColors.orange).alpha(0.6).rgbString(),
  541. borderColor: window.chartColors.orange,
  542. borderWidth: 2,
  543. pointRadius: 15,
  544. data: [0, 0, 0, 0, 0, 0, 0],
  545. fill: false,
  546. }, {
  547. label: "实际合格率",
  548. fill: false,
  549. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  550. borderColor: window.chartColors.blue,
  551. borderWidth: 2,
  552. pointRadius: 15,
  553. data: [0, 0, 0, 0, 0, 0, 0]
  554. }]
  555. },
  556. type: 'line',
  557. options: {
  558. responsive: true,
  559. legend: {
  560. display: true
  561. },
  562. title: {
  563. display: false,
  564. text: '质量统计'
  565. },
  566. tooltips: {
  567. mode: 'index',
  568. intersect: false,
  569. },
  570. hover: {
  571. mode: 'nearest',
  572. intersect: true
  573. },
  574. scales: {
  575. xAxes: [{
  576. display: true,
  577. scaleLabel: {
  578. display: false,
  579. labelString: ''
  580. }
  581. }],
  582. yAxes: [{
  583. display: true,
  584. scaleLabel: {
  585. display: false,
  586. labelString: 'Value'
  587. },
  588. ticks: {
  589. min: 40,
  590. stepSize: 20,
  591. max: 100
  592. }
  593. }]
  594. }
  595. }
  596. };
  597. var ctxDayZL = document.getElementById("canvasDayZL").getContext("2d");
  598. window.DayZL = new Chart(ctxDayZL, configDayZL);
  599. //===================================================
  600. }
  601. </script>
  602. <script src="/Plugins/chartjs-2.8.0/chart-2.8.min.js"></script>
  603. <script src="/Plugins/chartjs-2.8.0/chartjs-plugin-datalabels.js"></script>
  604. <script src="/Plugins/chartjs-2.8.0/utils.js"></script>
  605. <script src="/Plugins/circleChart/circleChart.min.js"></script>
  606. </body>
  607. </html>