leiDa.vue 4.7 KB

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