index1.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <el-row>
  3. <div id="index1" ref="echartD" style="width:100%;height:30vh;"></div>
  4. </el-row>
  5. </template>
  6. <script>
  7. import * as echarts from "echarts";
  8. export default {
  9. // props: ["resData"],
  10. props: {
  11. dataMap: { type: Number, default: () => 0 },
  12. dataNumber: { type: Number, default: () => 0 },
  13. color: { type: String, default: () => "#468EFD" },
  14. size: { type: Number, default: () => 20 },
  15. tick: { type: Boolean, default: () => true },
  16. with: { type: Number, default: () => 200 },
  17. },
  18. data() {
  19. return {};
  20. },
  21. watch: {
  22. dataMap(val) {
  23. this.getData(val);
  24. },
  25. dataNumber(val) {
  26. this.getData(val);
  27. },
  28. },
  29. mounted() {
  30. this.getData();
  31. },
  32. methods: {
  33. getData() {
  34. let data = [
  35. {
  36. name:"已处置",
  37. value:this.dataMap.toFixed(2)
  38. },
  39. {
  40. name:"未处置",
  41. value:(1-this.dataMap).toFixed(2)
  42. }
  43. ]
  44. echarts.init(this.$refs.echartD).setOption({
  45. color: [
  46. this.color,
  47. '#FF0087',
  48. ],
  49. title: {
  50. text: (this.dataMap * 100).toFixed(2) + '%',
  51. y:'center',
  52. x:'center',
  53. textStyle: {
  54. fontSize: this.size,
  55. fontWeight: "700",
  56. color:this.color,
  57. fontFamily: '"DS", "DS-B", "DS-BB", "DS-BS"',
  58. },
  59. },
  60. tooltip: {
  61. trigger: "item",
  62. formatter: function(params) {
  63. return (
  64. params.name +
  65. ":" +
  66. params.value +
  67. "<br>占比:" +
  68. (params.value * 100).toFixed(2) +
  69. "%"
  70. );
  71. }
  72. },
  73. series: [
  74. {
  75. name: '',
  76. type: 'pie',
  77. radius: ['40%', '60%'],
  78. emphasis: {
  79. label: {
  80. show: true,
  81. fontSize: '20',
  82. fontWeight: 'bold'
  83. }
  84. },
  85. data: data
  86. }
  87. ]
  88. });
  89. window.addEventListener("resize", function() {
  90. myChart.resize();
  91. });
  92. },
  93. }
  94. };
  95. </script>
  96. <style lang="scss" scoped></style>