Blame view

src/components/widgets/chart/MiniChart.vue 1.51 KB
93a68cfa1   Jatinder Singh   first commit
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
  
  <template>
    <v-card>
      <v-card-text>
        <div class="layout row ma-0 align-center justify-space-between">
          <div class="text-box">
            <div class="subheading pb-2">{{title}}</div>
            <span class="grey--text">{{subTitle}} <v-icon small :color="iconColor">{{icon}}</v-icon></span>
          </div>
          <div class="chart">
            <e-chart 
              :path-option="computeChartOption"
              height="68px"
              width="100%"
              >
            </e-chart>
          </div>
        </div>
      </v-card-text>
    </v-card>     
  </template>
  
  <script>
  import EChart from '@/components/chart/echart';
  export default {
    components: {
      EChart
    },
    props: {
      title: String,
      subTitle: String,
      icon: String,
      iconColor: {
        type: String,
        default: 'success',
      },
      type: String,
      chartColor: String,
      data: Array,
    },
    data () {
      return {
        defaultOption: [
          ['dataset.source', this.data],
          ['xAxis.show', false],
          ['yAxis.show', false],
          ['color', [this.chartColor]],
        ]
      };
    },
  
    computed: {
      computeChartOption () {
        switch (this.type) {
          case 'bar':
            this.defaultOption.push(['series[0].type', 'bar']);
            break;
          case 'area':
            this.defaultOption.push(['series[0].type', 'line']);
            this.defaultOption.push(['series[0].areaStyle', {}]);
            break;
          default:
            break;
        }
        return this.defaultOption;
      }
    }
  
  };
  </script>
  
  <style>
  
  </style>