ApexChartDailySalesStates.vue
1.31 KB
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
<script lang="ts" setup>
import { useTheme } from 'vuetify'
import { getHeatMapChartConfig } from '@core/libs/apex-chart/apexCharConfig'
const vuetifyTheme = useTheme()
const chartConfig = computed(() => getHeatMapChartConfig(vuetifyTheme.current.value))
interface YRange {
min: number
max: number
}
const generateDataHeat = (count: number, yrange: YRange) => {
let i = 0
const series = []
while (i < count) {
const x = `w${(i + 1).toString()}`
const y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min
series.push({
x,
y,
})
i += 1
}
return series
}
const series = [
{
name: 'SUN',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
{
name: 'MON',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
{
name: 'TUE',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
{
name: 'WED',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
{
name: 'THU',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
{
name: 'FRI',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
{
name: 'SAT',
data: generateDataHeat(24, { min: 0, max: 60 }),
},
]
</script>
<template>
<VueApexCharts
type="heatmap"
height="350"
:options="chartConfig"
:series="series"
/>
</template>