lazhang-display.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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. var compAxis = {
  9. categories: namedata,
  10. crosshair: true,
  11. title: {
  12. text: '工位',
  13. style: {
  14. fontSize: '1.5em'
  15. }
  16. },
  17. labels: {
  18. style: {
  19. fontSize: '1.5em'
  20. }
  21. }
  22. };
  23. function showChart() {
  24. var data = [];
  25. var ratedata = [];
  26. var stackmax = 0;
  27. var failmax = 0;
  28. var passdata = [];
  29. var faildata = [];
  30. var passmax = 0;
  31. var failratemax=0;
  32. for (i = 0; i < passNumber.length; i++) {
  33. if (stackmax < stackeverynum[i]) {
  34. stackmax = stackeverynum[i];
  35. }
  36. if (failmax < failNumber[i]) {
  37. failmax = failNumber[i];
  38. }
  39. if (failratemax< failrate[i]) {
  40. failratemax = failrate[i];
  41. }
  42. if (passmax < passNumber[i]) {
  43. passmax = passNumber[i];
  44. }
  45. data.push(stackeverynum[i]);
  46. ratedata.push(Math.floor(failrate[i]));
  47. passdata.push(passNumber[i]);
  48. faildata.push(failNumber[i])
  49. }
  50. showEachSpot();
  51. showEachSpot1();
  52. showEachSpot2();
  53. showEachSpot3();
  54. showEachSpot4();
  55. failratemax = Math.max(failratemax, 5);
  56. stackmax = Math.max(stackmax, 5);
  57. failmax = Math.max(failmax, 5);
  58. passmax = Math.max(passmax,failmax,stackmax);
  59. stackAndFailChart = Highcharts.chart('graph-1', {
  60. chart: {
  61. zoomType: 'xy',
  62. //height: (4 / 16 * 100) + '%' // 16:9 ratio
  63. },
  64. title: {text: '各工位今日产能'},
  65. credits: {enabled: false},
  66. exporting: {enabled: false},
  67. xAxis: [compAxis],
  68. yAxis: [{
  69. labels: {
  70. format: '{value}',
  71. style: {
  72. color: "#ffffff",
  73. fontSize: '1.5em'
  74. }
  75. },
  76. min: 0,
  77. max: passmax * 1.5,
  78. title: {
  79. text: '数量',
  80. style: {
  81. color: '#ffffff',
  82. fontSize: '1em'
  83. }
  84. }
  85. },],
  86. tooltip: {shared: true},
  87. legend: {
  88. layout: 'vertical',
  89. align: 'right',
  90. x: -100,
  91. verticalAlign: 'top',
  92. y: 0,
  93. floating: true,
  94. backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
  95. },
  96. series: [{
  97. name: '良品数',
  98. type: 'column',
  99. data: passdata,
  100. }, {
  101. name: '不良品数',
  102. type: 'column',
  103. data: faildata,
  104. },
  105. {
  106. name: '堆积数',
  107. type: 'column',
  108. data: data,
  109. }]
  110. });
  111. FailChart = Highcharts.chart('graph-2', {
  112. chart: {
  113. //height: (4 / 16 * 100) + '%' // 16:9 ratio
  114. },
  115. title: {
  116. text: '各工位今日不良率'
  117. },
  118. credits: {
  119. enabled: false // 禁用版权信息
  120. },
  121. exporting: {
  122. enabled: false
  123. },
  124. xAxis: [compAxis],
  125. yAxis: [{ // Secondary yAxis
  126. title: {
  127. text: '不良率',
  128. style: {
  129. color: '#ffffff',
  130. fontSize: '1em'
  131. }
  132. },
  133. min: 0,
  134. max: 1.5 * failratemax,
  135. labels: {
  136. formatter: function () {
  137. return Math.floor(this.value) + "%";
  138. },
  139. style: {
  140. color: '#ffffff',
  141. fontSize: '20px'
  142. }
  143. },
  144. }],
  145. tooltip: {
  146. shared: true
  147. },
  148. legend: {
  149. layout: 'vertical',
  150. align: 'right',
  151. x: -120,
  152. verticalAlign: 'top',
  153. y: 0,
  154. floating: true,
  155. backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
  156. },
  157. series: [{
  158. name: '不良率',
  159. type: 'spline',
  160. data: ratedata,
  161. color: 'red',
  162. tooltip: {
  163. valueSuffix: '%'
  164. }
  165. }]
  166. });
  167. }
  168. function updateChart() {
  169. var data = [];
  170. var ratedata = [];
  171. var stackmax = 0;
  172. var failmax = 0;
  173. var passdata = [];
  174. var faildata = [];
  175. var passmax = 0;
  176. var failratemax=0;
  177. for (i = 0; i < passNumber.length; i++) {
  178. if (stackmax < stackeverynum[i]) {
  179. stackmax = stackeverynum[i];
  180. }
  181. if (failmax < failNumber[i]) {
  182. failmax = failNumber[i];
  183. }
  184. if (failratemax < failrate[i]) {
  185. failratemax= failrate[i];
  186. }
  187. if (passmax < passNumber[i]) {
  188. passmax = passNumber[i];
  189. }
  190. data.push(stackeverynum[i]);
  191. ratedata.push(Math.floor(failrate[i]));
  192. passdata.push(passNumber[i]);
  193. faildata.push(failNumber[i])
  194. }
  195. failratemax = Math.max(failratemax, 5);
  196. stackmax = Math.max(stackmax, 5);
  197. failmax = Math.max(failmax, 5);
  198. passmax = Math.max(passmax,failmax,stackmax);
  199. // https://api.hcharts.cn/highcharts#Series.addPoint;
  200. stackAndFailChart.series[0].setData(passdata);
  201. stackAndFailChart.series[1].setData(faildata);
  202. stackAndFailChart.series[2].setData(data);
  203. FailChart.series[0].setData(ratedata);
  204. if (failratemax > FailChart.yAxis[0].getExtremes().max * 1.3 || failratemax < FailChart.yAxis[0].getExtremes().max * 0.5) {
  205. FailChart.yAxis[0].setExtremes(0, failratemax * 1.5);
  206. }
  207. if (passmax > stackAndFailChart.yAxis[0].getExtremes().max * 1.3 || passmax < stackAndFailChart.yAxis[0].getExtremes().max * 0.5) {
  208. stackAndFailChart.yAxis[0].setExtremes(0, passmax * 1.5);
  209. }
  210. showEachSpot();
  211. showEachSpot1();
  212. showEachSpot2();
  213. showEachSpot3();
  214. showEachSpot4();
  215. var secNames = [];
  216. sectorID.forEach(function(val){ secNames.push(getSectorName(val)); });
  217. if(JSON.stringify(secNames) !== lastTimeSecNames){
  218. lastTimeSecNames = JSON.stringify(secNames);
  219. FailChart.xAxis[0].setCategories(secNames);
  220. stackAndFailChart.xAxis[0].setCategories(secNames);
  221. }
  222. }
  223. var lastTimeSecNames = "";
  224. var stackAndFailChart = null;
  225. var FailChart = null;