workBusChart.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <div class="myChart" ref="myChart" :style="{height: height+'px'}">
  3. </div>
  4. </template>
  5. <script>
  6. import ApiWorkBus from "@/api/work/apiWorkBus";
  7. export default {
  8. data() {
  9. return {
  10. option: {
  11. legend: {
  12. data: [
  13. '平均出车时长',
  14. '出车次数',
  15. ]
  16. },
  17. grid: {
  18. left: '2%', //默认10%
  19. right: '3%', //默认10%
  20. bottom: '13%', //默认60
  21. top: '15%',
  22. containLabel: true
  23. //grid区域是否包含坐标轴的刻度标签
  24. },
  25. xAxis: {
  26. type: 'category',
  27. data: []
  28. },
  29. yAxis: [
  30. {
  31. name: '出车次数',
  32. type: 'value',
  33. position: 'left',
  34. axisLine: {
  35. show: true,
  36. },
  37. nameTextStyle: {
  38. padding: [10, 0, 10, 0]
  39. },
  40. },
  41. {
  42. name: '出车时长(h)',
  43. type: 'value',
  44. axisLine: {
  45. show: true,
  46. },
  47. nameTextStyle: {
  48. padding: [10, 20, 10, 0]
  49. },
  50. },
  51. ],
  52. tooltip: {
  53. trigger: 'axis',
  54. axisPointer: {
  55. type: 'shadow'
  56. },
  57. textStyle: {
  58. color: '#fff',
  59. align: 'left',
  60. fontSize: 14
  61. },
  62. axisLine: {//x坐标轴轴线
  63. show: true,
  64. lineStyle: {//x坐标轴轴线样式
  65. color: '#000',//'#ccc' | 'rgb(128, 128, 128)' | 'rgba(128, 128, 128, 0.5)',设置标签颜色
  66. }
  67. },
  68. backgroundColor: 'rgba(0,0,0,0.8)',
  69. },
  70. dataZoom: this.$constant.ECHARTS_DATAZOOM,
  71. series: [
  72. {
  73. name: '平均出车时长',
  74. data: [],
  75. type: 'bar',
  76. barWidth: '15%',
  77. backgroundStyle: {
  78. color: 'rgba(180, 180, 180, 0.2)'
  79. },
  80. itemStyle: {
  81. color: '#80D4FF'
  82. }
  83. },
  84. {
  85. name: '出车次数',
  86. data: [],
  87. type: 'bar',
  88. yAxisIndex: 1,
  89. barWidth: '15%',
  90. backgroundStyle: {
  91. color: 'rgba(180, 180, 180, 0.2)'
  92. },
  93. itemStyle: {
  94. color: '#FFDF80'
  95. }
  96. },
  97. ]
  98. },
  99. }
  100. },
  101. props: {
  102. height: Number,
  103. queryData: Object
  104. },
  105. mounted() {
  106. this.init()
  107. },
  108. methods: {
  109. init() {
  110. let chart = this.$echarts.init(this.$refs.myChart)
  111. this.chart = chart;
  112. chart.setOption(this.option)
  113. this.getData()
  114. },
  115. getData() {
  116. return ApiWorkBus.getBusInfo(this.queryData).then(res=>{
  117. let data = this.$util.dataUtil.covertDataToEcharts(res, ['averageDuration','numberTrips'])
  118. this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data)
  119. })
  120. }
  121. }
  122. }
  123. </script>
  124. <style lang="less" scoped>
  125. </style>