136 lines
2.8 KiB
Vue
136 lines
2.8 KiB
Vue
<template>
|
|
<CChartLine
|
|
:datasets="defaultDatasets"
|
|
:options="defaultOptions"
|
|
:labels="[
|
|
'Mo',
|
|
'Tu',
|
|
'We',
|
|
'Th',
|
|
'Fr',
|
|
'Sa',
|
|
'Su',
|
|
'Mo',
|
|
'Tu',
|
|
'We',
|
|
'Th',
|
|
'Fr',
|
|
'Sa',
|
|
'Su',
|
|
'Mo',
|
|
'Tu',
|
|
'We',
|
|
'Th',
|
|
'Fr',
|
|
'Sa',
|
|
'Su',
|
|
'Mo',
|
|
'Tu',
|
|
'We',
|
|
'Th',
|
|
'Fr',
|
|
'Sa',
|
|
'Su'
|
|
]"
|
|
/>
|
|
</template>
|
|
|
|
<script>
|
|
// import { CChartLine } from '@coreui/vue-chartjs'
|
|
// import { getStyle, hexToRgba } from '@coreui/utils/src'
|
|
import CoreUtils from '~/mixins/CoreUtils'
|
|
|
|
function random(min, max) {
|
|
return Math.floor(Math.random() * (max - min + 1) + min)
|
|
}
|
|
|
|
export default {
|
|
name: 'MainChartExample',
|
|
mixins: [CoreUtils],
|
|
layout: 'admin',
|
|
computed: {
|
|
defaultDatasets() {
|
|
const brandSuccess = this.getStyle('success2') || '#4dbd74'
|
|
const brandInfo = this.getStyle('info') || '#20a8d8'
|
|
const brandDanger = this.getStyle('danger') || '#f86c6b'
|
|
|
|
const elements = 27
|
|
const data1 = []
|
|
const data2 = []
|
|
const data3 = []
|
|
|
|
for (let i = 0; i <= elements; i++) {
|
|
data1.push(random(50, 200))
|
|
data2.push(random(80, 100))
|
|
data3.push(65)
|
|
}
|
|
return [
|
|
{
|
|
label: 'My First dataset',
|
|
backgroundColor: this.hexToRgba(brandInfo, 10),
|
|
borderColor: brandInfo,
|
|
pointHoverBackgroundColor: brandInfo,
|
|
borderWidth: 2,
|
|
data: data1
|
|
},
|
|
{
|
|
label: 'My Second dataset',
|
|
backgroundColor: 'transparent',
|
|
borderColor: brandSuccess,
|
|
pointHoverBackgroundColor: brandSuccess,
|
|
borderWidth: 2,
|
|
data: data2
|
|
},
|
|
{
|
|
label: 'My Third dataset',
|
|
backgroundColor: 'transparent',
|
|
borderColor: brandDanger,
|
|
pointHoverBackgroundColor: brandDanger,
|
|
borderWidth: 1,
|
|
borderDash: [8, 5],
|
|
data: data3
|
|
}
|
|
]
|
|
},
|
|
defaultOptions() {
|
|
return {
|
|
maintainAspectRatio: false,
|
|
legend: {
|
|
display: false
|
|
},
|
|
scales: {
|
|
xAxes: [
|
|
{
|
|
gridLines: {
|
|
drawOnChartArea: false
|
|
}
|
|
}
|
|
],
|
|
yAxes: [
|
|
{
|
|
ticks: {
|
|
beginAtZero: true,
|
|
maxTicksLimit: 5,
|
|
stepSize: Math.ceil(250 / 5),
|
|
max: 250
|
|
},
|
|
gridLines: {
|
|
display: true
|
|
}
|
|
}
|
|
]
|
|
},
|
|
elements: {
|
|
point: {
|
|
radius: 0,
|
|
hitRadius: 10,
|
|
hoverRadius: 4,
|
|
hoverBorderWidth: 3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|