Newer
Older
smartwell_front / src / views / dataStatics / components / gasData.vue
StephanieGitHub on 13 Aug 2021 2 KB 增加燃液一体化设备
<template>
  <ve-line ref="linechart" :title="title" :data="chartData" :settings="chartSettings" :tooltip="options.tooltip"/>
</template>

<script>
  import { getStaticData } from '@/api/data'
  import { compare } from '@/utils/compare'
  import 'v-charts/lib/style.css'

  export default {
    name: 'GasData',
    data() {
      this.title = {
        text: '燃气监测曲线图'
      }
      this.chartSettings = {
        // xAxisType: 'time',
        labelMap: {
          'strength': '燃气(%LEL)',
          'strengthVOL': '燃气(%VOL)',
          'uptime': '上报时间'
        }, // 别名
        metrics: ['strength'], // 指标
        dimension: ['uptime']// 维度
      }
      return {
        listQuery: {
          wellCode: '', // 关键字
          watchType: 'gas', // 监控数据
          beginTime: '', // 开始时间
          endTime: '', // 结束时间
          offset: 1,
          limit: 100000,
          sort: '',
          order: ''
        },
        options: {
          tooltip: {
            // formatter: '{b}<br/>{a} : {c0.split(\',\')[1]}<br/>燃气浓度(%VOL){c0.split(\',\')[1]}'
            formatter: function(params) {
              let res = params.name + '<br/>'
              const value = parseFloat(params.data[1])
              res += params.seriesName + ' : ' + value.toFixed(2)
              if (value > 20) {
                res += '<br/>燃气(%VOL)' + (value / 20.0).toFixed(2)
              }
              return res
            }
          }
        },
        chartData: {
          columns: ['uptime', 'strength'],
          rows: []
        }
      }
    },
    methods: {
      fetchData(params) {
        this.listQuery.wellCode = params.wellCode
        this.listQuery.beginTime = params.beginTime
        this.listQuery.endTime = params.endTime
        getStaticData(this.listQuery).then(response => {
          if (response.data.length === 0) {
            this.$message.error('该井此段时间内无燃气数据,请修改监测指标或查询范围')
          }
          const data = response.data.map(item => {
            return {
              strength: item.strength,
              strengthVOL: (item.strength / 20.0).toFixed(2),
              uptime: item.uptime
            }
          })
          this.chartData.rows = data.sort(compare('uptime'))
          this.$refs['linechart'].echarts.resize()
        })
      }
    }
  }
</script>