carbonPrintEmissionChart.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <script>
  2. import apiCarbonCar from "@/api/carbon/apiCarbonCar";
  3. import apiCarbonPrint from "@/api/carbon/apiCarbonPrint";
  4. export default {
  5. data() {
  6. return {
  7. option: {
  8. legend: {
  9. data: [
  10. '中迅',
  11. '北京规划院',
  12. '郑分',
  13. '广分',
  14. '上分',
  15. '成分',
  16. ],
  17. selected: {
  18. '中迅': false,
  19. '北京规划院': true,
  20. '郑分': false,
  21. '广分': false,
  22. '上分': false,
  23. '成分': false,
  24. }
  25. },
  26. grid: {
  27. left: '0%', //默认10%
  28. right: '1%', //默认10%
  29. bottom: '15%', //默认60
  30. top: '15%',
  31. containLabel: true
  32. //grid区域是否包含坐标轴的刻度标签
  33. },
  34. xAxis: {
  35. data: []
  36. },
  37. yAxis: [
  38. {
  39. name: '排放量',
  40. type: 'value',
  41. nameTextStyle: {
  42. padding: [10, 0, 10, -12]
  43. },
  44. },
  45. ],
  46. dataZoom: [
  47. {
  48. type: 'slider',
  49. start: 0,
  50. end: 100,
  51. height: 12,
  52. },
  53. {
  54. type: 'inside',
  55. start: 0,
  56. end: 100,
  57. }
  58. ],
  59. tooltip: {
  60. trigger: 'axis',
  61. axisPointer: {
  62. type: 'shadow'
  63. },
  64. textStyle: {
  65. color: '#fff',
  66. align: 'left',
  67. fontSize: 14
  68. },
  69. axisLine: {//x坐标轴轴线
  70. show: true,
  71. lineStyle: {//x坐标轴轴线样式
  72. color: '#000',//'#ccc' | 'rgb(128, 128, 128)' | 'rgba(128, 128, 128, 0.5)',设置标签颜色
  73. }
  74. },
  75. backgroundColor: 'rgba(0,0,0,0.8)',
  76. },
  77. series: [
  78. {
  79. name: '中迅',
  80. data: [],
  81. type: 'line',
  82. smooth: true,
  83. showSymbol:false,
  84. symbolSize: 6,
  85. lineStyle: {
  86. color: "#FDB65B",
  87. width: 1,
  88. },
  89. itemStyle: {
  90. color: "#FDB65B"
  91. },
  92. emphasis: {
  93. scale:1.5
  94. }
  95. },
  96. {
  97. name: '北京规划院',
  98. data: [],
  99. type: 'line',
  100. smooth: true,
  101. showSymbol:false,
  102. lineStyle: {
  103. color: "#62CC97",
  104. width: 3,
  105. },
  106. itemStyle: {
  107. color: "#62CC97"
  108. },
  109. emphasis: {
  110. scale:1.5
  111. },
  112. },
  113. {
  114. name: '郑分',
  115. data: [],
  116. type: 'line',
  117. smooth: true,
  118. showSymbol:false,
  119. lineStyle: {
  120. color: "#4D94FF",
  121. width: 1,
  122. },
  123. itemStyle: {
  124. color: "#4D94FF"
  125. },
  126. emphasis: {
  127. scale:1.5
  128. },
  129. },
  130. {
  131. name: '广分',
  132. data: [],
  133. type: 'line',
  134. smooth: true,
  135. showSymbol:false,
  136. lineStyle: {
  137. color: "#4DF5FF",
  138. width: 1,
  139. },
  140. itemStyle: {
  141. color: "#4DF5FF"
  142. },
  143. emphasis: {
  144. scale:1.5
  145. },
  146. },
  147. {
  148. name: '上分',
  149. data: [],
  150. type: 'line',
  151. smooth: true,
  152. showSymbol:false,
  153. lineStyle: {
  154. color: "#FF6E4D",
  155. width: 1,
  156. },
  157. itemStyle: {
  158. color: "#FF6E4D"
  159. },
  160. emphasis: {
  161. scale:1.5
  162. },
  163. },
  164. {
  165. name: '成分',
  166. data: [],
  167. type: 'line',
  168. smooth: true,
  169. showSymbol:false,
  170. lineStyle: {
  171. color: "#8B4DFF",
  172. width: 1,
  173. },
  174. itemStyle: {
  175. color: "#8B4DFF"
  176. },
  177. emphasis: {
  178. scale:1.5
  179. },
  180. }
  181. ]
  182. },
  183. }
  184. },
  185. props: {
  186. height: Number,
  187. queryData: Object
  188. },
  189. mounted() {
  190. this.$nextTick(()=>{
  191. this.initChart();
  192. })
  193. },
  194. methods: {
  195. initChart() {
  196. let chart = this.$echarts.init(this.$refs.myChart)
  197. this.chart = chart;
  198. this.$util.chartsResize(this.chart);
  199. chart.setOption(this.option)
  200. this.getData()
  201. },
  202. getData() {
  203. return apiCarbonPrint.getPrintInfo(this.queryData).then(res=>{
  204. let data = this.$util.dataUtil.covertDataToEcharts(res, ['zhongxun','guihuayuanBJ','zhengfen','guangfen','shangfen','chengfen'])
  205. this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data)
  206. })
  207. }
  208. }
  209. }
  210. </script>
  211. <template>
  212. <div id="personTrendChart" style="width: 100%" :style="{height: height+'px'}" ref="myChart" ></div>
  213. </template>
  214. <style lang="less" scoped>
  215. </style>