dbsd_kczx_java/ant-design-vue-jeecg/src/components/chart/MiniBar.vue

76 lines
1.3 KiB
Java
Raw Normal View History

2019-02-25 15:58:05 +08:00
<template>
2019-04-14 16:20:04 +08:00
<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>
2019-02-25 15:58:05 +08:00
</div>
</template>
<script>
import moment from 'dayjs'
2019-04-14 16:20:04 +08:00
const sourceData = []
2019-02-25 15:58:05 +08:00
const beginDay = new Date().getTime()
for (let i = 0; i < 10; i++) {
2019-04-14 16:20:04 +08:00
sourceData.push({
2019-02-25 15:58:05 +08:00
x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'),
y: Math.round(Math.random() * 10)
})
}
const tooltip = [
'x*y',
(x, y) => ({
name: x,
value: y
})
]
const scale = [{
dataKey: 'x',
min: 2
}, {
dataKey: 'y',
title: '时间',
min: 1,
max: 30
}]
export default {
2019-04-14 16:20:04 +08:00
name: 'MiniBar',
props: {
dataSource: {
2019-02-25 15:58:05 +08:00
type: Array,
2019-04-14 16:20:04 +08:00
default: () => []
},
width: {
type: Number,
default: null
},
height: {
type: Number,
default: 200
2019-02-25 15:58:05 +08:00
}
},
2019-04-14 16:20:04 +08:00
created() {
if (this.dataSource.length === 0) {
this.data = sourceData
} else {
this.data = this.dataSource
2019-02-25 15:58:05 +08:00
}
},
2019-04-14 16:20:04 +08:00
data() {
2019-02-25 15:58:05 +08:00
return {
tooltip,
2019-04-14 16:20:04 +08:00
data: [],
scale
2019-02-25 15:58:05 +08:00
}
}
}
</script>
<style lang="less" scoped>
2019-02-25 15:58:05 +08:00
@import "chart";
</style>