radar.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <template>
  2. <div class="data_body">
  3. <div style="width: 100%; height: 100%">
  4. <div
  5. ref="chartContainer"
  6. class="echart"
  7. style="width: 100%; height: 100%"
  8. ></div>
  9. </div>
  10. </div>
  11. </template>
  12. <script>
  13. export default {
  14. props: {
  15. workNumList: {
  16. type: Array
  17. }
  18. },
  19. data() {
  20. return {};
  21. },
  22. methods: {},
  23. mounted() {
  24. // 假设已经在Vue上挂载了echarts实例,命名为this.$echarts
  25. const chart = this.$echarts.init(this.$refs.chartContainer);
  26. // 数据示例
  27. const dataSeries = [
  28. {
  29. name: "Series 1",
  30. data: [
  31. { name: "Category 1", value: 80 },
  32. { name: "Category 2", value: 50 },
  33. { name: "Category 3", value: 60 },
  34. { name: "Category 4", value: 70 },
  35. { name: "Category 5", value: 90 }
  36. ],
  37. lineStyle: {
  38. width: 2,
  39. color: "#0080FF"
  40. }
  41. },
  42. {
  43. name: "Series 2",
  44. data: [
  45. { name: "Category 1", value: 60 },
  46. { name: "Category 2", value: 70 },
  47. { name: "Category 3", value: 80 },
  48. { name: "Category 4", value: 50 },
  49. { name: "Category 5", value: 70 }
  50. ],
  51. lineStyle: {
  52. width: 2,
  53. color: "#FF0000"
  54. }
  55. },
  56. {
  57. name: "Series 3",
  58. data: [
  59. { name: "Category 1", value: 20 },
  60. { name: "Category 2", value: 20 },
  61. { name: "Category 3", value: 20 },
  62. { name: "Category 4", value: 20 },
  63. { name: "Category 5", value: 20 }
  64. ],
  65. lineStyle: {
  66. width: 2,
  67. color: "green"
  68. }
  69. }
  70. ];
  71. // 配置选项
  72. const option = {
  73. legend: {
  74. data: dataSeries.map(series => series.name)
  75. },
  76. radar: {
  77. indicator: dataSeries[0].data.map(item => ({
  78. text: item.name,
  79. max: 100
  80. }))
  81. },
  82. series: dataSeries.map(series => ({
  83. name: series.name,
  84. type: "radar",
  85. data: [
  86. {
  87. value: series.data.map(item => item.value),
  88. areaStyle: {
  89. opacity: 0.5
  90. },
  91. lineStyle: series.lineStyle,
  92. label: {
  93. show: true,
  94. formatter: "{c}",
  95. fontSize: 12,
  96. color: "#000"
  97. },
  98. emphasis: {
  99. label: {
  100. show: true,
  101. fontSize: 14
  102. }
  103. }
  104. }
  105. ]
  106. }))
  107. };
  108. // 设置选项并渲染雷达图
  109. chart.setOption(option);
  110. }
  111. };
  112. </script>
  113. <style scoped>
  114. .data_body {
  115. height: 100%;
  116. position: relative;
  117. border-radius: 5px;
  118. margin: 0 auto;
  119. box-sizing: border-box;
  120. padding: 0;
  121. width: 100%;
  122. }
  123. </style>