leiDa.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  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. color: ["#FF917C", "#77EADF", "#56A3F1", "#FF917C"],
  150. title: {
  151. text: '报告图表'
  152. },
  153. legend: {},
  154. radar: {
  155. center: ["50%", "55%"],
  156. radius: 100,
  157. axisName: {
  158. color: '#999999',
  159. },
  160. indicator: this.indicator,
  161. splitNumber: 4,
  162. splitArea: {
  163. areaStyle: {
  164. color: ["#ffd5cf", "#ffdfda", "#ffe9e6", "#fff4f2"],
  165. shadowColor: "rgba(0, 0, 0, 0.2)",
  166. shadowBlur: 10,
  167. },
  168. },
  169. axisLine: {
  170. lineStyle: {
  171. color: '#FFBA92'
  172. }
  173. },
  174. splitLine: {
  175. lineStyle: {
  176. color: '#FFBA92'
  177. }
  178. },
  179. },
  180. series: [{
  181. name: 'Budget vs spending',
  182. type: 'radar',
  183. data: [{
  184. value: [45, 45, 45, 45, 45, 45, 45, 45, 45, 45, ],
  185. name: '最大值'
  186. },
  187. {
  188. value: this.scoreList,
  189. name: '你的得分'
  190. }
  191. ]
  192. }]
  193. };
  194. this.option = option;
  195. }
  196. }
  197. }
  198. </script>
  199. <style>
  200. .container {
  201. box-sizing: border-box;
  202. width: 100%;
  203. height: 650rpx;
  204. padding: 25rpx;
  205. }
  206. .container100 {
  207. width: 100%;
  208. height: 100%;
  209. }
  210. </style>