realTimeChart.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <div ref="realTimeChart" style="width: 100%; height: 100%"></div>
  3. </template>
  4. <script>
  5. import * as echarts from "echarts";
  6. import api from "@/api/Overview/index";
  7. import { ElMessage } from "element-plus";
  8. export default {
  9. props: {},
  10. data() {
  11. return {
  12. chart: null,
  13. };
  14. },
  15. mounted() {
  16. this.eptrendIco();
  17. },
  18. beforeUnmount() {
  19. window.removeEventListener("resize", this.chart);
  20. },
  21. watch: {
  22. "$store.state.siteId"() {
  23. this.eptrendIco();
  24. },
  25. },
  26. methods: {
  27. eptrendIco() {
  28. api
  29. .eptrendIco({
  30. siteId: this.$store.state.siteId,
  31. })
  32. .then((requset) => {
  33. if (requset.status === "SUCCESS") {
  34. this.initChart(requset.data);
  35. } else {
  36. ElMessage.success({
  37. message: requset.msg,
  38. type: "success",
  39. });
  40. }
  41. });
  42. },
  43. //次数分布折线图
  44. initChart(data) {
  45. var chart = echarts.init(this.$refs.realTimeChart);
  46. var option;
  47. var dataAll = [];
  48. data.map((val) => {
  49. dataAll.push({
  50. name: val.name,
  51. type: "line",
  52. smooth: false,
  53. data: val.list,
  54. symbolSize: 6,
  55. });
  56. });
  57. option = {
  58. color: ["#F66167", "#31E9FF"],
  59. tooltip: {
  60. trigger: "axis",
  61. },
  62. // 图列组件
  63. legend: {
  64. itemHeight: 8, //改变圆圈大小
  65. itemWidth: 26, //改变圆圈大小
  66. itemGap: 30,
  67. textStyle: {
  68. color: "#fff",
  69. },
  70. left: "30%",
  71. bottom: "0",
  72. },
  73. grid: {
  74. left: "0%",
  75. right: "0%",
  76. bottom: "15%",
  77. top: "20%",
  78. containLabel: true,
  79. },
  80. xAxis: {
  81. type: "category",
  82. boundaryGap: true,
  83. data: data[0].listDate.map((val) => {
  84. return val.split(":")[0] + ":" + val.split(":")[1];
  85. }),
  86. axisTick: {
  87. show: false, //去除刻度线
  88. },
  89. axisLabel: {
  90. color: "#fff", // 文本颜色
  91. },
  92. axisLine: {
  93. show: false, // 去除轴线
  94. },
  95. },
  96. yAxis: {
  97. name: "MW",
  98. nameTextStyle: {
  99. color: "#fff",
  100. fontSize: 10,
  101. },
  102. type: "value",
  103. axisTick: {
  104. show: false, //去除刻度线
  105. },
  106. axisLabel: {
  107. color: "#fff", // 文本颜色
  108. },
  109. axisLine: {
  110. show: false, // 去除轴线
  111. },
  112. splitNumber: 5,
  113. splitLine: {
  114. show: true,
  115. lineStyle: {
  116. color: "rgba(255,255,255,0.1)",
  117. },
  118. },
  119. },
  120. series: dataAll,
  121. };
  122. chart.setOption(option, true);
  123. window.addEventListener("resize", () => {
  124. chart.resize();
  125. });
  126. this.chart = chart;
  127. },
  128. },
  129. };
  130. </script>