index.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /**
  2. * Created by xuxueli on 17/4/24.
  3. */
  4. $(function () {
  5. // filter Time
  6. var rangesConf = {};
  7. rangesConf[I18n.daterangepicker_ranges_today] = [moment().startOf('day'), moment().endOf('day')];
  8. rangesConf[I18n.daterangepicker_ranges_yesterday] = [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')];
  9. rangesConf[I18n.daterangepicker_ranges_this_month] = [moment().startOf('month'), moment().endOf('month')];
  10. rangesConf[I18n.daterangepicker_ranges_last_month] = [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')];
  11. rangesConf[I18n.daterangepicker_ranges_recent_week] = [moment().subtract(1, 'weeks').startOf('day'), moment().endOf('day')];
  12. rangesConf[I18n.daterangepicker_ranges_recent_month] = [moment().subtract(1, 'months').startOf('day'), moment().endOf('day')];
  13. $('#filterTime').daterangepicker({
  14. autoApply: false,
  15. singleDatePicker: false,
  16. showDropdowns: false, // 是否显示年月选择条件
  17. timePicker: true, // 是否显示小时和分钟选择条件
  18. timePickerIncrement: 10, // 时间的增量,单位为分钟
  19. timePicker24Hour: true,
  20. opens: 'left', //日期选择框的弹出位置
  21. ranges: rangesConf,
  22. locale: {
  23. format: 'YYYY-MM-DD HH:mm:ss',
  24. separator: ' - ',
  25. customRangeLabel: I18n.daterangepicker_custom_name,
  26. applyLabel: I18n.system_ok,
  27. cancelLabel: I18n.system_cancel,
  28. fromLabel: I18n.daterangepicker_custom_starttime,
  29. toLabel: I18n.daterangepicker_custom_endtime,
  30. daysOfWeek: I18n.daterangepicker_custom_daysofweek.split(','), // '日', '一', '二', '三', '四', '五', '六'
  31. monthNames: I18n.daterangepicker_custom_monthnames.split(','), // '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
  32. firstDay: 1
  33. },
  34. startDate: rangesConf[I18n.daterangepicker_ranges_recent_month][0],
  35. endDate: rangesConf[I18n.daterangepicker_ranges_recent_month][1]
  36. }, function (start, end, label) {
  37. freshChartDate(start, end);
  38. });
  39. freshChartDate(rangesConf[I18n.daterangepicker_ranges_recent_month][0], rangesConf[I18n.daterangepicker_ranges_recent_month][1]);
  40. /**
  41. * fresh Chart Date
  42. *
  43. * @param startDate
  44. * @param endDate
  45. */
  46. function freshChartDate(startDate, endDate) {
  47. $.ajax({
  48. type: 'POST',
  49. url: base_url + '/chartInfo',
  50. data: {
  51. 'startDate': startDate.format('YYYY-MM-DD HH:mm:ss'),
  52. 'endDate': endDate.format('YYYY-MM-DD HH:mm:ss')
  53. },
  54. dataType: "json",
  55. success: function (data) {
  56. if (data.code == 200) {
  57. lineChartInit(data)
  58. pieChartInit(data);
  59. } else {
  60. layer.open({
  61. title: I18n.system_tips,
  62. btn: [I18n.system_ok],
  63. content: (data.msg || I18n.job_dashboard_report_loaddata_fail),
  64. icon: '2'
  65. });
  66. }
  67. }
  68. });
  69. }
  70. /**
  71. * line Chart Init
  72. */
  73. function lineChartInit(data) {
  74. var option = {
  75. title: {
  76. text: I18n.job_dashboard_date_report
  77. },
  78. tooltip: {
  79. trigger: 'axis',
  80. axisPointer: {
  81. type: 'cross',
  82. label: {
  83. backgroundColor: '#6a7985'
  84. }
  85. }
  86. },
  87. legend: {
  88. data: [I18n.joblog_status_suc, I18n.joblog_status_fail, I18n.joblog_status_running]
  89. },
  90. toolbox: {
  91. feature: {
  92. /*saveAsImage: {}*/
  93. }
  94. },
  95. grid: {
  96. left: '3%',
  97. right: '4%',
  98. bottom: '3%',
  99. containLabel: true
  100. },
  101. xAxis: [
  102. {
  103. type: 'category',
  104. boundaryGap: false,
  105. data: data.content.triggerDayList
  106. }
  107. ],
  108. yAxis: [
  109. {
  110. type: 'value'
  111. }
  112. ],
  113. series: [
  114. {
  115. name: I18n.joblog_status_suc,
  116. type: 'line',
  117. stack: 'Total',
  118. areaStyle: {normal: {}},
  119. data: data.content.triggerDayCountSucList
  120. },
  121. {
  122. name: I18n.joblog_status_fail,
  123. type: 'line',
  124. stack: 'Total',
  125. label: {
  126. normal: {
  127. show: true,
  128. position: 'top'
  129. }
  130. },
  131. areaStyle: {normal: {}},
  132. data: data.content.triggerDayCountFailList
  133. },
  134. {
  135. name: I18n.joblog_status_running,
  136. type: 'line',
  137. stack: 'Total',
  138. areaStyle: {normal: {}},
  139. data: data.content.triggerDayCountRunningList
  140. }
  141. ],
  142. color: ['#00A65A', '#c23632', '#F39C12']
  143. };
  144. var lineChart = echarts.init(document.getElementById('lineChart'));
  145. lineChart.setOption(option);
  146. }
  147. /**
  148. * pie Chart Init
  149. */
  150. function pieChartInit(data) {
  151. var option = {
  152. title: {
  153. text: I18n.job_dashboard_rate_report,
  154. /*subtext: 'subtext',*/
  155. x: 'center'
  156. },
  157. tooltip: {
  158. trigger: 'item',
  159. formatter: "{b} : {c} ({d}%)"
  160. },
  161. legend: {
  162. orient: 'vertical',
  163. left: 'left',
  164. data: [I18n.joblog_status_suc, I18n.joblog_status_fail, I18n.joblog_status_running]
  165. },
  166. series: [
  167. {
  168. //name: '分布比例',
  169. type: 'pie',
  170. radius: '55%',
  171. center: ['50%', '60%'],
  172. data: [
  173. {
  174. name: I18n.joblog_status_suc,
  175. value: data.content.triggerCountSucTotal
  176. },
  177. {
  178. name: I18n.joblog_status_fail,
  179. value: data.content.triggerCountFailTotal
  180. },
  181. {
  182. name: I18n.joblog_status_running,
  183. value: data.content.triggerCountRunningTotal
  184. }
  185. ],
  186. itemStyle: {
  187. emphasis: {
  188. shadowBlur: 10,
  189. shadowOffsetX: 0,
  190. shadowColor: 'rgba(0, 0, 0, 0.5)'
  191. }
  192. }
  193. }
  194. ],
  195. color: ['#00A65A', '#c23632', '#F39C12']
  196. };
  197. var pieChart = echarts.init(document.getElementById('pieChart'));
  198. pieChart.setOption(option);
  199. }
  200. });