Newer
Older
smartwell_front / src / views / dashboard / components / DeviceCountByOnline.vue
<template>
  <ve-pie :data="chartData" :extend="extend" :legend="legend" :title="title" />
</template>

<script>
import { deviceStaticByStatus } from '@/api/data/dataStatics'

export default {
  data() {
    return {
      chartData: {
        columns: ['onlineStatus', 'deviceCount'],
        rows: []
      },
      title: {
        text: '设备在线情况统计'
      },
      extend: {
        series: {
          label: { show: true, position: 'outside', formatter: '{b}:{c}' }
        }
      },
      chartSettings: {
        labelMap: {
          'onlineStatus': '在线状态',
          'deviceCount': '设备数量'
        },
        dimension: 'onlineStatus',
        metrics: 'deviceCount'
      },
      legend: {
        right: 10
      }
    }
  },
  mounted() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      deviceStaticByStatus().then(response => {
        const data = response.data
        this.chartData.rows = [
          { 'onlineStatus': '在线', 'deviceCount': data.online },
          { 'onlineStatus': '离线', 'deviceCount': data.offline }
        ]
      })
    }
  }
}
</script>