QSChart.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <div class="pie-chart-content">
  3. <div :id="refCurrent" style="width: 100%; height: 70vh"></div>
  4. </div>
  5. </template>
  6. <script>
  7. import * as echarts from "echarts";
  8. export default {
  9. props: {
  10. options: {
  11. type: Object,
  12. default: function () {
  13. return {};
  14. },
  15. },
  16. name: {
  17. type: String,
  18. default: "",
  19. },
  20. refCurrent: {
  21. type: String,
  22. default: "",
  23. },
  24. },
  25. data() {
  26. return {};
  27. },
  28. mounted() {
  29. window.addEventListener("resize", this.echartsAllSize);
  30. },
  31. destroyed() {
  32. window.removeEventListener("resize", this.echartsAllSize);
  33. },
  34. //当前监听到数据发生变化就开始渲染
  35. watch: {
  36. options() {
  37. this.myZhuEcharts(this.options);
  38. },
  39. },
  40. methods: {
  41. echartsAllSize() {
  42. let flag = false;
  43. setTimeout(() => {
  44. flag = true;
  45. if (flag) {
  46. //设置变化的大小
  47. console.log("大小变化了---------------------");
  48. let myChart = this.$echarts.init(document.getElementById(this.refCurrent));
  49. myChart.resize();
  50. }
  51. }, 1000);
  52. },
  53. myZhuEcharts(data) {
  54. //修改测试计划
  55. let myChart = this.$echarts.init(document.getElementById(this.refCurrent));
  56. // let myChart = this.$echarts.init(this.$refs.this.refCurrent);
  57. let option = {
  58. title: {
  59. text: "",
  60. },
  61. // tooltip: {
  62. // trigger: "axis",
  63. // },
  64. tooltip: {
  65. trigger: "axis",
  66. axisPointer: {
  67. type: "shadow",
  68. },
  69. // formatter: '{b} : {c} % '
  70. // formatter: function (params,trigger) {
  71. formatter: function (params) {
  72. var relVal = params[0].name;
  73. for (var i = 0, l = params.length; i < l; i++) {
  74. relVal +=
  75. "<br/>" +
  76. params[i].marker +
  77. params[i].seriesName +
  78. " : " +
  79. params[i].value +
  80. "%";
  81. }
  82. return relVal;
  83. },
  84. // return '{a} <br/>{b} : {c} <br/>百分比 : {d}%'
  85. // },
  86. },
  87. legend: {
  88. data: ["焦虑", "抑郁", "压力", "视觉整合能力", "心理健康"],
  89. },
  90. grid: {
  91. left: "3%",
  92. right: "4%",
  93. bottom: "3%",
  94. containLabel: true,
  95. },
  96. toolbox: {
  97. feature: {
  98. // saveAsImage: {},
  99. },
  100. },
  101. xAxis: {
  102. type: "category",
  103. boundaryGap: false,
  104. data: data.nameList,
  105. axisLabel: {
  106. interval: 0,
  107. rotate: "-70",
  108. formatter: function (value) {
  109. return value.substring(0, 8) + "...";
  110. },
  111. },
  112. // axisLabel: {
  113. // interval: 0,
  114. // formatter: function (value) {
  115. // return value.substring(0, 4) + "...";
  116. // },
  117. // },
  118. },
  119. yAxis: {
  120. type: "value",
  121. name: "占比(%)",
  122. },
  123. series: data.scoreList,
  124. };
  125. myChart.setOption(option);
  126. },
  127. },
  128. };
  129. </script>
  130. <style lang="less" scoped>
  131. .pie-chart-content {
  132. width: 100%;
  133. /* height: 100%; */
  134. }
  135. </style>