ConsoleNet.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <template>
  2. <div id="ConsoleNet" style="width: 100%; height: 100%; background: #FFFFFF; text-align: center">
  3. <ve-line ref="ConsoleNet" :data="chartData" :extend="extend" :settings="chartSettings" :events="chartEvents" width="100%" height="100%" ></ve-line>
  4. </div>
  5. </template>
  6. <script>
  7. import moment from "moment/moment";
  8. export default {
  9. name: 'ConsoleNet',
  10. data() {
  11. return {
  12. chartData: {
  13. columns: ['time','out','in'],
  14. rows: []
  15. },
  16. chartSettings: {
  17. area: true,
  18. labelMap: {
  19. 'in': '下载',
  20. 'out': '上传'
  21. },
  22. },
  23. extend: {
  24. title: {
  25. show: true,
  26. text: "网络",
  27. left: "center",
  28. top: 20,
  29. },
  30. grid: {
  31. show: true,
  32. right: "30px",
  33. containLabel: true,
  34. },
  35. xAxis: {
  36. time: "time",
  37. max: 'dataMax',
  38. boundaryGap: ['20%', '20%'],
  39. axisLabel: {
  40. formatter:(v)=>{
  41. return moment(v).format("HH:mm:ss");
  42. },
  43. showMaxLabel: true,
  44. },
  45. },
  46. yAxis: {
  47. type: 'value',
  48. min: 0,
  49. max: 1000,
  50. splitNumber: 6,
  51. position: "left",
  52. silent: true,
  53. },
  54. tooltip: {
  55. trigger: 'axis',
  56. formatter: (data)=>{
  57. let in_sel = true;
  58. let out_sel = true;
  59. for (let key in this.extend.legend.selected) {
  60. if (key == "上传") {
  61. out_sel = this.extend.legend.selected[key];
  62. }
  63. if (key == "下载") {
  64. in_sel = this.extend.legend.selected[key];
  65. }
  66. }
  67. if (out_sel && in_sel) {
  68. return (
  69. data[1].marker +
  70. "下载:" +
  71. parseFloat(data[1].data[1]).toFixed(2) +
  72. "Mbps" +
  73. "</br> " +
  74. data[0].marker +
  75. "上传:" +
  76. parseFloat(data[0].data[1]).toFixed(2) +
  77. "Mbps"
  78. );
  79. } else if (out_sel)
  80. return (
  81. data[0].marker +
  82. "上传:" +
  83. parseFloat(data[0].data[1]).toFixed(2) +
  84. "Mbps"
  85. );
  86. else if (in_sel)
  87. return (
  88. data[0].marker +
  89. "下载:" +
  90. parseFloat(data[0].data[1]).toFixed(2) +
  91. "Mbps"
  92. );
  93. return "";
  94. }
  95. },
  96. legend: {
  97. left: "center",
  98. bottom: "15px",
  99. selected: {},
  100. }
  101. },
  102. chartEvents: {
  103. legendselectchanged: (item) => {
  104. this.extend.legend.selected = item.selected;
  105. }
  106. }
  107. };
  108. },
  109. mounted() {
  110. this.$nextTick(_ => {
  111. setTimeout(()=>{
  112. this.$refs.ConsoleNet.echarts.resize()
  113. }, 100)
  114. })
  115. },
  116. destroyed() {
  117. },
  118. methods: {
  119. setData: function(data, total) {
  120. this.chartData .rows = data;
  121. this.extend.yAxis.max= total;
  122. }
  123. }
  124. };
  125. </script>