dapingmu-display.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. var timeday = new Array("今日", "昨日", "本周", "本月");
  2. function getSpotHtml(htmlbody, i) {
  3. htmlbody += "<tr>";
  4. htmlbody += `<tr>
  5. <td>${timeday[i]}</td>
  6. <td>${hispass[i]}</td>
  7. <td>${hisfail[i]}</td>
  8. <td>${hisstack[i]}</td>
  9. <td>${hisrate[i]}</td>
  10. </tr>`;
  11. htmlbody += "</tr>";
  12. return htmlbody;
  13. }
  14. function getSpotHtml1(htmlbody, i) {
  15. htmlbody += "<tr>";
  16. htmlbody += `<tr>
  17. <td>${goodid[i]}</td>
  18. <td>${goodpass[i]}</td>
  19. <td>${goodfailrate[i]}</td>
  20. </tr>`;
  21. htmlbody += "</tr>";
  22. return htmlbody;
  23. }
  24. function getSpotHtml2(htmlbody, i) {
  25. htmlbody += "<tr>";
  26. htmlbody += `<tr>
  27. <td>${badid[i]}</td>
  28. <td>${badpass[i]}</td>
  29. <td>${badfailrate[i]}</td>
  30. </tr>`;
  31. htmlbody += "</tr>";
  32. return htmlbody;
  33. }
  34. function showEachSpot() {
  35. var htmlbody = "", one_person = "";
  36. var i = 0;
  37. var triGap = 4;
  38. htmlbody = "";
  39. for (i = 0; i < triGap; i++) {
  40. htmlbody = getSpotHtml(htmlbody, i);
  41. }
  42. $("#rank-one").html(htmlbody);
  43. console.log(htmlbody);
  44. }
  45. function showEachSpot1() {
  46. var htmlbody = "", one_person = "";
  47. var i = 0;
  48. var triGap = 3;
  49. htmlbody = "";
  50. for (i = 0; i < triGap; i++) {
  51. htmlbody = getSpotHtml1(htmlbody, i);
  52. }
  53. $("#rank-two").html(htmlbody);
  54. console.log(htmlbody);
  55. }
  56. function showEachSpot2() {
  57. var htmlbody = "", one_person = "";
  58. var i = 0;
  59. var triGap = 3;
  60. htmlbody = "";
  61. for (i = 0; i < triGap; i++) {
  62. htmlbody = getSpotHtml2(htmlbody, i);
  63. }
  64. $("#rank-three").html(htmlbody);
  65. console.log(htmlbody);
  66. }
  67. var i = 0, j = 0;
  68. function showChart() {
  69. var stackdata = [];
  70. var passdata = [];
  71. var faildata = [];
  72. var ratedata = [];
  73. var failmax = 0;
  74. var passmax = 0;
  75. var iddata = [];
  76. var summax = 0;
  77. var stackmax = 0;
  78. var ratemax = 0;
  79. for (i = 0; i < passNumber.length; i++) {
  80. passdata.push(passNumber[i]);
  81. faildata.push(failNumber[i]);
  82. stackdata.push(stackeverynum[i]);
  83. ratedata.push(failrate[i]);
  84. iddata.push(flownum[i]);
  85. if (ratemax < ratedata[i]) {
  86. ratemax = ratedata[i];
  87. }
  88. if (passmax < passNumber[i]) {
  89. passmax = passNumber[i];
  90. }
  91. if (failmax < passNumber[i]) {
  92. failmax = passNumber[i];
  93. }
  94. if (stackmax < passNumber[i]) {
  95. stackmax = passNumber[i];
  96. }
  97. }
  98. if (passmax < failmax) {
  99. passmax = failmax
  100. }
  101. if (passmax < stackmax) {
  102. passmax = stackmax;
  103. }
  104. showEachSpot();
  105. showEachSpot1();
  106. showEachSpot2();
  107. stackAndFailChart = Highcharts.chart('graph-1', {
  108. chart: {
  109. zoomType: 'xy',
  110. height: (4 / 16 * 100) + '%' // 16:9 ratio
  111. },
  112. title: {
  113. text: '各产线今日产能'
  114. },
  115. credits: {
  116. enabled: false // 禁用版权信息
  117. },
  118. exporting: {
  119. enabled: false
  120. },
  121. xAxis: [uaxv],
  122. yAxis: [{ // Primary yAxis
  123. labels: {
  124. format: '{value}',
  125. style: {
  126. color: Highcharts.getOptions().colors[0],
  127. fontSize: '1.5em'
  128. }
  129. },
  130. min: 0,
  131. max: passmax * 1.5,
  132. title: {
  133. style: {
  134. color: Highcharts.getOptions().colors[0],
  135. fontSize: '1em'
  136. }
  137. }
  138. },
  139. ],
  140. tooltip: {
  141. shared: true
  142. },
  143. legend: {
  144. layout: 'vertical',
  145. align: 'right',
  146. x: -100,
  147. verticalAlign: 'top',
  148. y: 0,
  149. floating: true,
  150. backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
  151. },
  152. series: [{
  153. name: '良品数',
  154. type: 'column',
  155. data: passdata,
  156. }, {
  157. name: '不良品数',
  158. type: 'column',
  159. data: faildata,
  160. },
  161. {
  162. name: '堆积数',
  163. type: 'column',
  164. data: stackdata,
  165. },]
  166. });
  167. FailChart = Highcharts.chart('graph-2', {
  168. chart: {
  169. height: (4 / 16 * 100) + '%' // 16:9 ratio
  170. }, title: {
  171. text: '各产线今日不良率'
  172. }, credits: {
  173. enabled: false // 禁用版权信息
  174. }, exporting: {
  175. enabled: false
  176. }, xAxis: [uaxv],
  177. yAxis: [{ // Secondary yAxis
  178. title: {
  179. text: '不良率',
  180. style: {
  181. color: 'red',
  182. fontSize: '1em'
  183. }
  184. },
  185. min: 0,
  186. max: 1.5 * ratemax,
  187. labels: {
  188. formatter: function () {
  189. return Math.floor(this.value) + "%";
  190. },
  191. style: {
  192. color: 'red',
  193. fontSize: '20px'
  194. }
  195. },
  196. }],
  197. tooltip: {
  198. shared: true
  199. },
  200. legend: {
  201. layout: 'vertical',
  202. align: 'right',
  203. x: -120,
  204. verticalAlign: 'top',
  205. y: 0,
  206. floating: true,
  207. backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
  208. },
  209. series: [{
  210. name: '不良率',
  211. type: 'spline',
  212. data: ratedata,
  213. color: 'red',
  214. tooltip: {
  215. valueSuffix: '%'
  216. }
  217. }]
  218. });
  219. }
  220. function updateChart() {
  221. var stackdata = [];
  222. var passdata = [];
  223. var faildata = [];
  224. var ratedata = [];
  225. var failmax = 0;
  226. var passmax = 0;
  227. var iddata = [];
  228. var summax = 0;
  229. var stackmax = 0;
  230. var ratemax = 0;
  231. for (i = 0; i < passNumber.length; i++) {
  232. passdata.push(passNumber[i]);
  233. faildata.push(failNumber[i]);
  234. stackdata.push(stackeverynum[i]);
  235. ratedata.push(failrate[i]);
  236. iddata.push(flownum[i]);
  237. if (ratemax < ratedata[i]) {
  238. ratemax = ratedata[i];
  239. }
  240. if (passmax < passNumber[i]) {
  241. passmax = passNumber[i];
  242. }
  243. if (failmax < passNumber[i]) {
  244. failmax = passNumber[i];
  245. }
  246. if (stackmax < passNumber[i]) {
  247. stackmax = passNumber[i];
  248. }
  249. }
  250. if (passmax < failmax) {
  251. passmax = failmax
  252. }
  253. if (passmax < stackmax) {
  254. passmax = stackmax;
  255. }
  256. // https://api.hcharts.cn/highcharts#Series.addPoint;
  257. stackAndFailChart.series[0].setData(passdata);
  258. stackAndFailChart.series[1].setData(faildata);
  259. stackAndFailChart.series[2].setData(stackdata);
  260. FailChart.series[0].setData(ratedata);
  261. showEachSpot();
  262. showEachSpot1();
  263. showEachSpot2();
  264. }
  265. var stackAndFailChart = null;
  266. var FailChart = null;
  267. var uaxv = {
  268. crosshair: true,
  269. labels: {
  270. style: {
  271. fontSize: '1.5em'
  272. }
  273. },
  274. categories: iddata,
  275. };