index.vue 3.16 KB
<template>
  <div class="chart-container app-container nohead">
    <el-alert title="免责声明:Highcharts组件不属于NCC产品,只用于介绍第三方组件如何在《NCC快速开发平台》中使用。如果对这些组件感兴趣,请使用正版。"
      type="warning" :closable="false" class="mb-10" />
    <div style="float: right;padding-right: 10px; margin-top:20px;">
      <el-button type="primary" icon="icon-ym icon-ym-extend-bar-chart" @click="change('plain')">柱状
      </el-button>
      <el-button type="warning" icon="icon-ym icon-ym-extend-mail-forward"
        @click="change('inverted')">条形</el-button>
    </div>
    <highcharts :options="chartOptions" :callback="myCallback"
      style="height:530px;margin-top:30px;"></highcharts>
  </div>
</template>

<script>

import { Chart } from "highcharts-vue";
export default {
  name: 'extend-graphDemo-highchartsColumn',
  components: {
    highcharts: Chart
  },
  data() {
    return {
      chartOptions: {
        chart: {
          type: 'column'
        },
        title: {
          text: '月平均降雨量'
        },
        subtitle: {
          text: '网络数据'
        },
        xAxis: {
          categories: [
            '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
          ],
          crosshair: true
        },
        yAxis: {
          min: 0,
          title: {
            text: '降雨量 (mm)'
          }
        },
        tooltip: {
          // head + 每个 point + footer 拼接成完整的 table
          headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
          pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
            '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
          footerFormat: '</table>',
          shared: true,
          useHTML: true
        },
        plotOptions: {
          column: {
            borderWidth: 0
          }
        },
        credits: {
          enabled: false
        },
        series: [{
          name: '东京',
          data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }, {
          name: '纽约',
          data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
        }, {
          name: '伦敦',
          data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
        }, {
          name: '柏林',
          data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
        }]
      }

    }
  },
  mounted() { },

  methods: {
    myCallback() {
      console.log("this is callback function");
    },
    change(key) {
      switch (key) {
        case 'plain':
          this.chartOptions.chart = {
            inverted: false,
          }
          this.chartOptions.subtitle = {
            text: '柱状'
          }
          break;
        case 'inverted':
          this.chartOptions.chart = {
            inverted: true,
          }
          this.chartOptions.subtitle = {
            text: '条形'
          }

          break;
      }
    }
  }
}
</script>