wordCloud.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <div class="wrap-container sn-container" id="wordcloud">
  3. <div class="sn-content">
  4. <!-- <div class="sn-title"></div>-->
  5. <div class="sn-body">
  6. <div class="wrap-container">
  7. <div class="chart" id="chart_right1"></div>
  8. </div>
  9. </div>
  10. </div>
  11. </div>
  12. </template>
  13. <script>
  14. import '@/assets/js/echarts-wordcloud.min'
  15. import screenfull from "screenfull";
  16. export default {
  17. name: "wordCloud",
  18. data() {
  19. return {
  20. timer: null
  21. }
  22. },
  23. mounted() {
  24. this.getEchartRight1();
  25. this.timer = setInterval(() => {
  26. this.getEchartRight1();
  27. }, 5000)
  28. },
  29. methods: {
  30. getEchartRight1() {
  31. let myChart = echarts.init(document.getElementById('chart_right1'));
  32. let option = {
  33. toolbox: {
  34. feature: {
  35. mytool: {
  36. show: true,
  37. title: "全屏",
  38. icon: 'path://M181 357.5V181.2h176.4c14.3 0 25.9-11.6 25.9-25.9v-31.1c0-14.3-11.6-25.9-25.9-25.9H118c-11 0-20 9-20 20v239.4c0 14.3 11.6 25.9 25.9 25.9H155c14.4-0.1 26-11.7 26-26.1zM668.6 181.2H845v176.4c0 14.3 11.6 25.9 25.9 25.9H902c14.3 0 25.9-11.6 25.9-25.9V118.2c0-11-9-20-20-20H668.6c-14.3 0-25.9 11.6-25.9 25.9v31.1c0 14.3 11.6 26 25.9 26zM357.4 845.2H181V668.8c0-14.3-11.6-25.9-25.9-25.9H124c-14.3 0-25.9 11.6-25.9 25.9v239.4c0 11 9 20 20 20h239.4c14.3 0 25.9-11.6 25.9-25.9v-31.1c-0.1-14.4-11.7-26-26-26zM845 668.8v176.4H668.6c-14.3 0-25.9 11.6-25.9 25.9v31.1c0 14.3 11.6 25.9 25.9 25.9H908c11 0 20-9 20-20V668.8c0-14.3-11.6-25.9-25.9-25.9H871c-14.4 0-26 11.6-26 25.9z',
  39. onclick: function () {
  40. const element = document.getElementById('chart_right1');
  41. if (!screenfull.isEnabled) {//判断是否支持全屏
  42. this.$message({
  43. message: '您的浏览器暂时不支持全屏切换',
  44. type: 'warning'
  45. })
  46. return false
  47. }
  48. screenfull.toggle(element)
  49. },
  50. }
  51. },
  52. },
  53. series: [{
  54. type: 'wordCloud',
  55. gridSize: 1,
  56. sizeRange: [12, 50],
  57. rotationRange: [-90, 90],
  58. rotationStep: 45,
  59. shape: 'diamond',
  60. width: '90%',
  61. textPadding: 0,
  62. autoSize: {
  63. enable: true,
  64. minSize: 6
  65. },
  66. textStyle: {
  67. normal: {
  68. textBorderColor: 'rgba(255,255,255,0.3)',
  69. textBorderWidth: 1,
  70. color: () => {
  71. return 'rgb(' + [
  72. Math.round(Math.random() * 160),
  73. Math.round(Math.random() * 160),
  74. Math.round(Math.random() * 160)
  75. ].join(',') + ')';
  76. }
  77. },
  78. emphasis: {
  79. fontSize: 20,
  80. }
  81. },
  82. data: [{
  83. name: '钟南山',
  84. value: 810
  85. }, {
  86. name: '武汉',
  87. value: 520
  88. },{
  89. name: "隔离",
  90. value: 928
  91. },{
  92. name: "白衣天使",
  93. value: 906
  94. },{
  95. name: "健康码",
  96. value: 825
  97. },{
  98. name: "口罩",
  99. value: 514
  100. },{
  101. name: "火神山",
  102. value: 486
  103. },{
  104. name: "清零",
  105. value: 53
  106. },{
  107. name: "驰援",
  108. value: 927
  109. },{
  110. name: "方舱医院",
  111. value: 1308
  112. },{
  113. name: "一级响应",
  114. value: 693
  115. },{
  116. name: "休舱",
  117. value: 611
  118. },{
  119. name: "集中救治",
  120. value: 512
  121. },{
  122. name: "中国速度",
  123. value: 382
  124. },{
  125. name: "大国担当",
  126. value: 312
  127. },{
  128. name: "制造自信",
  129. value: 187
  130. },{
  131. name: "科学防治",
  132. value: 163
  133. },{
  134. name: "依法防控",
  135. value: 104
  136. },{
  137. name: "中国加油",
  138. value: 3
  139. },{
  140. name: "致敬",
  141. value: 31
  142. },{
  143. name: "最美逆行",
  144. value: 941
  145. },{
  146. name: "会师武汉",
  147. value: 585
  148. },{
  149. name: "战胜疫情",
  150. value: 473
  151. },{
  152. name: "捐赠",
  153. value: 358
  154. },{
  155. name: "共渡难关",
  156. value: 246
  157. },{
  158. name: "共抗疫情",
  159. value: 207
  160. },{
  161. name: "众志成城",
  162. value: 194
  163. },{
  164. name: "山河无恙",
  165. value: 104
  166. },{
  167. name: "守望相助",
  168. value: 87
  169. },{
  170. name: "大爱无疆",
  171. value: 415
  172. },{
  173. name: "隔离",
  174. value: 253
  175. },{
  176. name: "隔空喊话",
  177. value: 211
  178. },{
  179. name: "人类命运共同体",
  180. value: 116
  181. },{
  182. name: "人民战疫",
  183. value: 1309
  184. }]
  185. }]
  186. }
  187. myChart.setOption(option, true);
  188. window.addEventListener('resize', () => {
  189. myChart.resize();
  190. });
  191. },
  192. },
  193. beforeDestroy() {
  194. clearInterval(this.timer);
  195. }
  196. };
  197. </script>
  198. <style lang="scss" scoped>
  199. .sn-container {
  200. width: 99%;
  201. height: 98.4%;
  202. .chart {
  203. height: 99%;
  204. width: 98.4%;
  205. //margin-top: 1%;
  206. //margin-right: 1%;
  207. }
  208. }
  209. </style>