demo.html 27 KB

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