echarts-block7.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. function loadBlock7() {
  2. const block7 = echarts.init(document.getElementById("block7"), "macarons");
  3. $.ajax({
  4. url: ajaxBaseUrl + "data/event.json",
  5. dataType: "json"
  6. }).done(function () {
  7. $("#block7").addClass("chart-done");
  8. }).done(function (data) {
  9. let total = data.total;
  10. var seriesData = [];
  11. for (var i = 0; i < data.num.length; i++) {
  12. seriesData.push({
  13. value: data.num[i].value,
  14. name: data.num[i].name,
  15. itemStyle: {
  16. normal: {
  17. borderWidth: 5,
  18. shadowBlur: 30,
  19. borderColor: new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
  20. offset: 0,
  21. color: '#7777eb'
  22. }, {
  23. offset: 1,
  24. color: '#70ffac'
  25. }]),
  26. shadowColor: 'rgba(142, 152, 241, 0.6)'
  27. }
  28. }
  29. }, {
  30. value: 4,
  31. name: '',
  32. itemStyle: {
  33. normal: {
  34. label: {
  35. show: false
  36. },
  37. labelLine: {
  38. show: false
  39. },
  40. color: 'rgba(0, 0, 0, 0)',
  41. borderColor: 'rgba(0, 0, 0, 0)',
  42. borderWidth: 0
  43. }
  44. }
  45. });
  46. }
  47. var seriesObj = [{
  48. name: '',
  49. type: 'pie',
  50. clockWise: false,
  51. radius: [70, 73],
  52. hoverAnimation: false,
  53. itemStyle: {
  54. normal: {
  55. label: {
  56. show: true,
  57. position: 'outside',
  58. color: '#ddd',
  59. formatter: '{b}',
  60. rich: {
  61. white: {
  62. color: '#ddd',
  63. align: 'center',
  64. padding: [0, 0]
  65. }
  66. }
  67. },
  68. labelLine: {
  69. show: true,
  70. linstyle: {
  71. color: '#fff'
  72. }
  73. }
  74. }
  75. },
  76. data: seriesData
  77. }];
  78. block7Opt = {
  79. tooltip: {
  80. trigger: "item",
  81. formatter: function (params) {
  82. var percent = 0;
  83. percent = ((params.value / total) * 100).toFixed(0);
  84. const marker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#e6b600;"></span>';
  85. if (params.name !== '') {
  86. return params.name + "<br />" + marker + "任务:" + params.value + " 个<br />" + marker + "占比:" + percent + "%";
  87. } else {
  88. return '';
  89. }
  90. }
  91. },
  92. title: {
  93. text: '任务总数',
  94. subtext: total,
  95. textStyle: {
  96. color: '#f2f2f2',
  97. fontSize: 24,
  98. align: 'center'
  99. },
  100. subtextStyle: {
  101. fontSize: 20,
  102. color: ['#ff9d19']
  103. },
  104. x: 'center',
  105. y: 'center',
  106. },
  107. legend: {
  108. show: false
  109. },
  110. toolbox: {
  111. show: false
  112. },
  113. series: seriesObj
  114. }
  115. block7.setOption(block7Opt);
  116. rollNum("event-rate1", 0, data.rate['办理率']);
  117. rollNum("event-rate2", 0, data.rate['办结率']);
  118. }).fail(function (jqXHR) {
  119. console.log("Ajax Fail: ", jqXHR.status, jqXHR.statusText);
  120. });
  121. }