echarts-block5.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. function loadBlock5() {
  2. const block5 = echarts.init(document.getElementById("block5"), "macarons");
  3. let color = ['#f845f1', '#ad46f3', '#5045f6', '#4777f5', '#44aff0', '#45dbf7', '#f6d54a', '#f69846', '#ff4343', '#f845f1'];
  4. $.ajax({
  5. url: ajaxBaseUrl + "data/event-distributed.json",
  6. dataType: "json"
  7. }).done(function () {
  8. $("#block5").addClass("chart-done");
  9. }).done(function (data) {
  10. var total = 0;
  11. for (let i = 0; i < data.length; i++) {
  12. total += data[i].value;
  13. }
  14. let block5Opt = {
  15. tooltip: {
  16. trigger: "item",
  17. formatter: function (params) {
  18. var percent = 0;
  19. percent = ((params.value / total) * 100).toFixed(0);
  20. const marker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#e6b600;"></span>';
  21. if (params.name !== '') {
  22. return params.name + "<br />" + marker + "数量:" + params.value + "</br>" + marker + "占比:" + percent + "%";
  23. } else {
  24. return '';
  25. }
  26. }
  27. },
  28. calculable: true,
  29. series: [{
  30. type: "pie",
  31. radius: [8, 90],
  32. avoidLabelOverlap: false,
  33. startAngle: 0,
  34. center: ["50%", "50%"],
  35. roseType: "area",
  36. selectedMode: "single",
  37. label: {
  38. normal: {
  39. show: true,
  40. formatter: "{b}"
  41. },
  42. emphasis: {
  43. show: true
  44. }
  45. },
  46. labelLine: {
  47. normal: {
  48. show: true,
  49. smooth: false,
  50. length: 5,
  51. length2: 10
  52. },
  53. emphasis: {
  54. "show": true
  55. }
  56. },
  57. data: []
  58. }]
  59. };
  60. block5.setOption(block5Opt);
  61. var seriesData = [];
  62. for (var i = 0; i < data.length; i++) {
  63. seriesData.push({
  64. value: data[i].value,
  65. name: data[i].name,
  66. itemStyle: {
  67. normal: {
  68. color: color[i]
  69. }
  70. }
  71. });
  72. }
  73. block5.setOption({
  74. series: [{
  75. data: seriesData
  76. }]
  77. });
  78. }).fail(function (jqXHR) {
  79. console.log("Ajax Fail: ", jqXHR.status, jqXHR.statusText);
  80. });
  81. }