Newer
Older
qd_cnooc_front / src / views / gasDashboard / components / gasCountByDeviceBar.vue
Stephanie on 15 Nov 2022 2 KB fix<views>: 动力管线首页修改
<template>
  <div class="container">
    <function-area ref="func" :today-show="false" select="week" @change="fetchData"/>
    <ve-histogram v-loading="loading" :data="chartData" :grid="grid" :title="title" :extend="extend" :settings="chartSettings"/>
  </div>
</template>

<script>
import 'echarts/lib/component/visualMap'
import { gasUsed } from '@/api/gasOverview'
import FunctionArea from './FunctionArea'

export default {
  name: 'GasCountByDeviceBar',
  components: { FunctionArea },
  data() {
    return {
      grid: {
        left: 40,
        top: 100,
        bottom: 5
      },
      title: {
        text: '用气量统计'
      },
      chartSettings: {
        itemStyle: {
          barCategoryGap: 10
        },
        labelMap: {
          'devcode': '设备',
          'count': '用气量'
        },
        dimension: ['devcode'],
        metrics: ['count']
      },
      extend: {
        legend: {
          show: true
        },
        xAxis: {
          axisLabel: {
            rotate: 30,
            margin: 30,
            textStyle: {
              align: 'center'
            }
          }
        },
        yAxis: {
          name: '用气量(m³)',
          position: 'left'
        },
        series: {
          label: { show: true, position: 'top', formatter: '{c}' },
          barWidth: 25
        },
        tooltip: { trigger: 'item', formatter: '{b}<br/>用气量:{c}m³' }
      },
      loading: false,
      timeRange: [],
      chartData: {
        columns: ['devcode', 'count'],
        rows: []
      }
    }
  },
  mounted() {
    this.$refs.func.init()
  },
  methods: {
    fetchData(timeRange) {
      const params = {
        beginTime: timeRange[0] + ' 00:00:00',
        endTime: timeRange[1] + ' 23:59:59'
      }
      // this.loading = true
      gasUsed(params).then(response => {
        const data = []
        for (const key in response.data) {
          data.push({ devcode: key, count: response.data[key] })
        }
        this.chartData.rows = data.map(item => {
          debugger
          item.count = item.count === '' ? 0 : parseFloat(item.count).toFixed(2)
          return item
        })
        // this.isShow = false
      })
    }
  }
}
</script>
<style lang="scss" scoped>
  .container{
    position:relative;
    .function{
      width:calc(100% - 120px);
      height: 28px;
      display: flex;
      justify-content: center;
    }
  }
  .statistic-container {
    .el-button{
      padding: 5px 10px;
    }
    /*margin-bottom: 10px;*/
    text-align: center;
    .chart-tool-button {
      padding: 5px;
      line-height: 16px;
      margin-top: 5px;
      font-size: 14px;
    }
    .chart-tool-button:hover {
      background-color: #8cc5ff;
      cursor: pointer;
      color: white;
    }
    .chart-tool-button:active {
      background-color: #8cc5ff;
      color: white;
    }
  }
  .selected {
    background-color: #8cc5ff;
    color: white;
  }
</style>