meetingPersonDistributeChart.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <div class="myChart" ref="myChart" :style="{height: height+'px'}"></div>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. }
  9. },
  10. props: {
  11. height: Number,
  12. queryData: Object
  13. },
  14. mounted() {
  15. this.initChart()
  16. },
  17. methods: {
  18. initChart() {
  19. let chart = this.$echarts.init(this.$refs.myChart)
  20. let option = {
  21. tooltip: {
  22. trigger: 'item'
  23. },
  24. legend: {
  25. right: 'right',
  26. top: '20%'
  27. },
  28. series: [
  29. {
  30. name: '人数分布',
  31. type: 'pie',
  32. radius: ['40%', '70%'],
  33. //avoidLabelOverlap: false,
  34. label: {
  35. normal: {
  36. show: true,
  37. position: "outside",
  38. align: "left",
  39. /* padding: [-5, -40, 30, -10], */
  40. /* padding: [-50, -55, 0, -10], */
  41. padding: [0, -65],
  42. formatter: "{b}\n\n{c}", //模板变量有 {a}、{b}、{c}、{d},分别表示系列名,数据名,数据值,百分比。{d}数据会根据value值计算百分比
  43. textStyle: {
  44. align: "left",
  45. baseline: "middle",
  46. fontFamily: "PingFang SC",
  47. fontSize: 14,
  48. // color: "#FFF",
  49. },
  50. },
  51. },
  52. emphasis: {
  53. label: {
  54. fontWeight: 'bold'
  55. }
  56. },
  57. labelLine: {
  58. show: true,
  59. length: 20,
  60. length2: 60,
  61. },
  62. data: [
  63. { value: 104, name: '4人' },
  64. { value: 73, name: '6人' },
  65. { value: 58, name: '8人' },
  66. { value: 46, name: '10人' },
  67. { value: 87, name: '12人' },
  68. { value: 66, name: '14人' },
  69. { value: 55, name: '18人' },
  70. ]
  71. }
  72. ]
  73. };
  74. chart.setOption(option);
  75. }
  76. }
  77. }
  78. </script>
  79. <style lang="less" scoped>
  80. </style>