lazhang-display.js 7.4 KB

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