|
1
2
3
4
5
6
7
8
9
10
|
<template>
<div :style="{'width':width==null?'auto':width+'px'}">
<v-chart :forceFit="width==null" :height="height" :data="data" padding="0">
<v-tooltip/>
<v-bar position="x*y"/>
</v-chart>
</div>
</template>
<script>
|
|
11
|
import moment from 'dayjs'
|
|
12
|
|
|
13
14
|
const sourceData = []
const beginDay = new Date().getTime()
|
|
15
|
|
|
16
17
18
19
20
21
|
for (let i = 0; i < 10; i++) {
sourceData.push({
x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'),
y: Math.round(Math.random() * 10)
})
}
|
|
22
|
|
|
23
24
25
26
27
28
29
|
const tooltip = [
'x*y',
(x, y) => ({
name: x,
value: y
})
]
|
|
30
|
|
|
31
32
33
34
35
36
37
38
39
|
const scale = [{
dataKey: 'x',
min: 2
}, {
dataKey: 'y',
title: '时间',
min: 1,
max: 30
}]
|
|
40
|
|
|
41
42
43
44
45
46
|
export default {
name: 'MiniBar',
props: {
dataSource: {
type: Array,
default: () => []
|
|
47
|
},
|
|
48
49
50
|
width: {
type: Number,
default: null
|
|
51
|
},
|
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
height: {
type: Number,
default: 200
}
},
created() {
if (this.dataSource.length === 0) {
this.data = sourceData
} else {
this.data = this.dataSource
}
},
data() {
return {
tooltip,
data: [],
scale
|
|
69
70
|
}
}
|
|
71
|
}
|
|
72
73
74
|
</script>
<style lang="less" scoped>
|
|
75
|
@import "chart";
|
|
76
|
</style>
|