echarts2_20210803133934.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. export default function getData() {
  2. var data = [{
  3. value: 100,
  4. name: 'Chrome移动版',
  5. label: {
  6. color: '#fff'
  7. },
  8. itemStyle: {
  9. },
  10. emphasis: {
  11. itemStyle: {
  12. }
  13. }
  14. },
  15. {
  16. value: 80,
  17. name: 'Google Chrome',
  18. label: {
  19. color: '#fff'
  20. },
  21. itemStyle: {
  22. },
  23. emphasis: {
  24. itemStyle: {
  25. }
  26. }
  27. },
  28. {
  29. value: 65,
  30. name: '微信浏览器',
  31. label: {
  32. color: '#fff'
  33. },
  34. itemStyle: {
  35. },
  36. emphasis: {
  37. itemStyle: {
  38. }
  39. }
  40. },
  41. {
  42. value: 65,
  43. name: '手机百度',
  44. label: {
  45. color: '#fff'
  46. },
  47. itemStyle: {
  48. },
  49. emphasis: {
  50. itemStyle: {
  51. }
  52. }
  53. },
  54. {
  55. value: 60,
  56. name: 'UC浏览器(其他)',
  57. label: {
  58. color: '#fff'
  59. },
  60. itemStyle: {
  61. },
  62. emphasis: {
  63. itemStyle: {
  64. }
  65. }
  66. },
  67. {
  68. value: 60,
  69. name: 'QQ手机浏览器',
  70. label: {
  71. color: '#fff'
  72. },
  73. itemStyle: {
  74. },
  75. emphasis: {
  76. itemStyle: {
  77. }
  78. }
  79. },
  80. {
  81. value: 50,
  82. name: 'Safari移动版',
  83. label: {
  84. color: '#fff'
  85. },
  86. itemStyle: {
  87. },
  88. emphasis: {
  89. itemStyle: {
  90. }
  91. }
  92. },
  93. {
  94. value: 90,
  95. name: '其它',
  96. label: {
  97. color: '#fff'
  98. },
  99. itemStyle: {
  100. },
  101. emphasis: {
  102. itemStyle: {
  103. }
  104. }
  105. }
  106. ];
  107. function angleText(i, num) {
  108. //每个元素的角度
  109. var everyAngle = 360 / num;
  110. //文字现在所在的角度
  111. var currentAngle = i * everyAngle + everyAngle / 2;
  112. //文字所在模块的所占角度
  113. var currentArea = (i + 1) * everyAngle;
  114. if (currentAngle <= 90) {
  115. return -currentAngle;
  116. } else if (currentAngle <= 180 && currentAngle > 90) {
  117. return 180 - currentAngle;
  118. } else if (currentAngle < 270 && currentAngle > 180) {
  119. return 180 - currentAngle;
  120. } else if (currentAngle < 360 && currentAngle >= 270) {
  121. return 360 - currentAngle;
  122. }
  123. }
  124. //有值的色图的正切处理
  125. var data3 = [];
  126. data3 = JSON.parse(JSON.stringify(data));
  127. for (var i = 0; i < data3.length; i++) {
  128. if (i === 0) {
  129. data3[i]['label']['color'] = '#333';
  130. data3[i]['itemStyle']['color'] = 'rgba(25, 255, 224)';
  131. data3[i]['emphasis']['itemStyle']['color'] = 'rgba(25, 255, 224)';
  132. data3[i]['label']['rotate'] = angleText(i, data3.length);
  133. } else {
  134. data3[i]['label']['color'] = '#fff';
  135. data3[i]['itemStyle']['color'] = '#4169E1';
  136. data3[i]['emphasis']['itemStyle']['color'] = '#6A5ACD';
  137. data3[i]['label']['rotate'] = angleText(i, data3.length);
  138. }
  139. }
  140. //最外层大圈的数据
  141. var data1 = [];
  142. data1 = JSON.parse(JSON.stringify(data));
  143. for (var i = 0; i < data1.length; i++) {
  144. data1[i].value = 1;
  145. data1[i]['label']['rotate'] = angleText(i, data1.length);
  146. if (i === 0) {
  147. data1[i]['label']['color'] = 'rgba(25, 255, 224)';
  148. }
  149. }
  150. //透明饼图的数据
  151. var data2 = [];
  152. for (var i = 0; i < data.length; i++) {
  153. if (i === 0) {
  154. data2.push({
  155. value: 1,
  156. itemStyle: {
  157. color: 'rgba(25, 255, 224,0.05)',
  158. }
  159. });
  160. } else {
  161. data2.push({
  162. value: 1,
  163. itemStyle: {
  164. color: 'transparent',
  165. }
  166. });
  167. }
  168. }
  169. return {
  170. backgroundColor: 'rgba(9, 15, 33)',
  171. grid: {},
  172. polar: {},
  173. angleAxis: {
  174. show: false,
  175. interval: 1,
  176. type: 'category',
  177. data: [],
  178. },
  179. //中间画圈圈的坐标轴
  180. radiusAxis: {
  181. show: false
  182. },
  183. series: [{
  184. type: 'pie',
  185. radius: ["68%", "90%"],
  186. hoverAnimation: false,
  187. itemStyle: {
  188. color: 'transparent'
  189. },
  190. labelLine: {
  191. normal: {
  192. show: false,
  193. length: 30,
  194. length2: 55
  195. },
  196. },
  197. label: {
  198. normal: {
  199. position: 'inside',
  200. align: 'right'
  201. }
  202. },
  203. name: "",
  204. data: data1
  205. }, {
  206. stack: 'a',
  207. type: 'pie',
  208. radius: ['75%', '42%'],
  209. roseType: 'area',
  210. zlevel: 10,
  211. itemStyle: {
  212. color: '#4169E1',
  213. },
  214. emphasis: {
  215. itemStyle: {
  216. color: '#6A5ACD'
  217. }
  218. },
  219. label: {
  220. normal: {
  221. show: true,
  222. textStyle: {
  223. fontSize: 18,
  224. color: '#fff'
  225. },
  226. position: 'inside',
  227. rotate: 30,
  228. align: 'right',
  229. fontWeight: 'bold',
  230. formatter: '{c}%'
  231. },
  232. emphasis: {
  233. show: true
  234. }
  235. },
  236. animation: false,
  237. data: data3
  238. }, {
  239. type: 'pie',
  240. zlevel: 99,
  241. radius: ["15%", "90%"],
  242. selectedOffset: 0,
  243. animation: false,
  244. hoverAnimation: false,
  245. label: {
  246. normal: {
  247. show: false,
  248. }
  249. },
  250. data: data2
  251. }]
  252. }
  253. }