leiDa.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <template>
  2. <view class="container" v-if="indicator.length>0">
  3. <echarts class="container100" ref="echarts" :option="option" canvasId="echartsT"></echarts>
  4. </view>
  5. </template>
  6. <script>
  7. import echarts from "@/components/echarts-uniapp/echarts-uniapp.vue"
  8. export default {
  9. name: "leiDa",
  10. props: ["indicator", "reference", "scoreList"],
  11. components: {
  12. echarts
  13. },
  14. data() {
  15. return {
  16. option: {},
  17. // indicator:[]
  18. }
  19. },
  20. watch: {
  21. indicator: {
  22. immediate: true,
  23. handler(newValue, oldValue) {
  24. this.drawLine();
  25. }
  26. }
  27. },
  28. mounted() {},
  29. methods: {
  30. drawLine() {
  31. let _this = this;
  32. // let legendData =
  33. // _this.reference?.length > 0 ? ["你的分数", "参考值"] : ["你的分数"];
  34. // _this.option = {
  35. // color: ["#67F9D8", "#FFE434", "#56A3F1", "#FF917C"],
  36. // title: {
  37. // text: "",
  38. // left: "left",
  39. // },
  40. // legend: {
  41. // data: legendData,
  42. // orient: "vertical",
  43. // left: "left",
  44. // },
  45. // radar: [{
  46. // center: ["25%", "50%"],
  47. // radius: 20,
  48. // startAngle: 2,
  49. // splitNumber: 1,
  50. // shape: "circle",
  51. // axisName: {
  52. // formatter: "【{value}】",
  53. // color: "#428BD4",
  54. // },
  55. // splitArea: {
  56. // areaStyle: {
  57. // color: ["#77EADF", "#26C3BE", "#64AFE9", "#428BD4"],
  58. // shadowColor: "rgba(0, 0, 0, 0.2)",
  59. // shadowBlur: 10,
  60. // },
  61. // },
  62. // axisLine: {
  63. // lineStyle: {
  64. // color: "rgba(211, 253, 250, 0.8)",
  65. // },
  66. // },
  67. // splitLine: {
  68. // lineStyle: {
  69. // color: "rgba(211, 253, 250, 0.8)",
  70. // },
  71. // },
  72. // },
  73. // {
  74. // indicator: _this.indicator,
  75. // center: ["50%", "50%"],
  76. // radius: 80,
  77. // axisName: {
  78. // color: "#fff",
  79. // backgroundColor: "#666",
  80. // borderRadius: 3,
  81. // padding: [3, 5],
  82. // },
  83. // },
  84. // ],
  85. // series: [{
  86. // type: "radar",
  87. // radarIndex: 1,
  88. // data: [{
  89. // value: _this.scoreList,
  90. // name: "你的分数",
  91. // symbol: "rect",
  92. // symbolSize: 12,
  93. // lineStyle: {
  94. // type: "dashed",
  95. // },
  96. // label: {
  97. // show: true,
  98. // formatter: function(params) {
  99. // return params.value;
  100. // },
  101. // },
  102. // },
  103. // {
  104. // value: _this.reference,
  105. // name: "参考值",
  106. // label: {
  107. // show: true,
  108. // formatter: function(params) {
  109. // return params.value;
  110. // },
  111. // },
  112. // areaStyle: {
  113. // color: {
  114. // type: 'linear',
  115. // x: 0,
  116. // y: 0,
  117. // x2: 0,
  118. // y2: 1,
  119. // colorStops: [{
  120. // offset: 0,
  121. // color: 'rgba(58,132,255, 0.5)' // 0% 处的颜色
  122. // }, {
  123. // offset: 1,
  124. // color: 'rgba(58,132,255, 0)' // 100% 处的颜色
  125. // }],
  126. // global: false // 缺省为 false
  127. // }
  128. // },
  129. // // areaStyle: {
  130. // // color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
  131. // // {
  132. // // color: "rgba(255, 145, 124, 0.1)",
  133. // // offset: 0,
  134. // // },
  135. // // {
  136. // // color: "rgba(255, 145, 124, 0.9)",
  137. // // offset: 1,
  138. // // },
  139. // // ]),
  140. // // },
  141. // },
  142. // ],
  143. // }, ],
  144. // }
  145. // console.log("==66666=====>", _this.scoreList)
  146. // console.log(_this.option)
  147. var option = {
  148. title: {
  149. text: 'Basic Radar Chart'
  150. },
  151. legend: {
  152. data: ['Allocated Budget', 'Actual Spending']
  153. },
  154. radar: {
  155. // shape: 'circle',
  156. indicator: [{
  157. name: 'Sales',
  158. max: 6500
  159. },
  160. {
  161. name: 'Administration',
  162. max: 16000
  163. },
  164. {
  165. name: 'Information Technology',
  166. max: 30000
  167. },
  168. {
  169. name: 'Customer Support',
  170. max: 38000
  171. },
  172. {
  173. name: 'Development',
  174. max: 52000
  175. },
  176. {
  177. name: 'Marketing',
  178. max: 25000
  179. }
  180. ]
  181. },
  182. series: [{
  183. name: 'Budget vs spending',
  184. type: 'radar',
  185. data: [{
  186. value: [4200, 3000, 20000, 35000, 50000, 18000],
  187. name: 'Allocated Budget'
  188. },
  189. {
  190. value: [5000, 14000, 28000, 26000, 42000, 21000],
  191. name: 'Actual Spending'
  192. }
  193. ]
  194. }]
  195. };
  196. }
  197. }
  198. }
  199. </script>
  200. <style>
  201. .container {
  202. /* width: 750rpx; */
  203. height: 320px;
  204. }
  205. .container100 {
  206. width: 100%;
  207. height: 100%;
  208. }
  209. </style>