Blame view

src/views/extend/graphDemo/highchartsColumn/index.vue 3.16 KB
4424f41c   monkeyhouyi   网信执法、清单管理静态页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
  <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>