Newer
Older
sanitationFront / src / views / overview / components / wasteTransfer.vue
StephanieGitHub on 2 Feb 2021 2 KB MOD: 总览改为调用后台接口
<!--
 * @Description: 垃圾转运作业次数
 * @Author: 王晓颖
 * @Date: 2021-01-11 18:41:56
 -->
<template>
  <div style="width: 100%;height: 100%;">
    <ve-histogram :data="chartData" :legend-visible="false" :extend="extend" :settings="chartSettings" :grid="grid" height="100%" style="width: 100%;height: 100%;"/>
  </div>
</template>

<script>
import { getCleanJobCount } from '@/api/sanitation/statistics'
import { getTransferJobCount } from '@/api/sanitation/statistics'
import { getToiletJobCount } from '@/api/sanitation/statistics'
import { getToday, getLastWeek } from '@/utils/dateutils'
export default {
  name: 'WasteTransfer',
  data() {
    return {
      type: 'waste', // waste,clean,toilet
      listQuery: {
        type: 'day', // 统计方式,day按天,month按月
        startTime: getLastWeek('yyyy-MM-dd'), // 开始时间
        endTime: getToday('yyyy-MM-dd') // 结束时间
      }, // 筛选条件
      grid: {
        right: 20,
        bottom: 0,
        top: 20
      },
      extend: {
        'xAxis.0.axisLabel.rotate': 45
      },
      chartSettings: {
        labelMap: {
          'name': '日期',
          'value': '作业次数'
        },
        metrics: ['value'],
        dimension: ['name']
      },
      chartData: {
        labelMap: {
          'name': '日期',
          'value': '作业次数'
        },
        columns: ['name', 'value'],
        rows: [
          { 'name': '1月12日', 'value': 1393 },
          { 'name': '1月13日', 'value': 3530 },
          { 'name': '1月14日', 'value': 2923 },
          { 'name': '1月15日', 'value': 1723 },
          { 'name': '1月16日', 'value': 3792 },
          { 'name': '1月17日', 'value': 4593 }
        ]
      }
    }
  },
  created(){
    this.fetchData()
  },
  methods: {
    fetchData() {
      if (this.type === 'clean') {
        this.fetchCleanData()
      } else if (this.type === 'waste') {
        this.fetchWasteData()
      } else {
        this.fetchToiletData()
      }
    },
    fetchCleanData() {
      getCleanJobCount(this.listQuery).then(response => {
        const data = response.data
        this.chartData.rows = data.map(item => {
          return {
            name: item.name.substring(5),
            value: item.count
          }
        })
      })
    },
    fetchWasteData() {
      getTransferJobCount(this.listQuery).then(response => {
        const data = response.data
        this.chartData.rows = data.map(item => {
          return {
            name: item.name.substring(5),
            value: item.count
          }
        })
      })
    },
    fetchToiletData() {
      getToiletJobCount(this.listQuery).then(response => {
        const data = response.data
        this.chartData.rows = data.map(item => {
          return {
            name: item.name.substring(5),
            value: item.count
          }
        })
      })
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>

</style>