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
| <template>
| <ve-gauge :data="chartData" :settings="chartSettings"></ve-gauge>
| </template>
|
| <style lang="less">
|
| </style>
|
| <script lang="ts">
| import { Component, Prop, Vue } from 'vue-property-decorator';
|
|
| @Component({
| components: {
| },
| })
| export default class Gauge extends Vue {
|
| @Prop({ type: Number, default: 0 })
| private percent!: number;
|
| @Prop({ type: String, default: '' })
| private title!: string;
|
| get chartSettings(): any {
| const {title} = this;
| return {
| dataName: {
| item: title,
| },
| dataType: {
| item: 'percent',
| },
| seriesMap: {
| item: {
| min: 0,
| max: 1,
| axisLabel: {
| formatter(v: number) {
| return '';
| },
| },
| },
| },
| };
| }
|
| get chartData(): any {
| return {
| columns: ['type', 'value'],
| rows: [
| { type: 'item', value: this.percent / 100 },
| ],
| };
| }
| }
| </script>
|
|