207 lines
3.6 KiB
Vue
207 lines
3.6 KiB
Vue
|
|
<script setup>
|
||
|
|
const colors = {
|
||
|
|
series1: '#7367F0',
|
||
|
|
series2: '#8F85F3',
|
||
|
|
series3: '#ABA4F6',
|
||
|
|
}
|
||
|
|
|
||
|
|
const bodyColor = 'rgba(var(--v-theme-on-background), var(--v-medium-emphasis-opacity))'
|
||
|
|
const labelColor = 'rgba(var(--v-theme-on-background), var(--v-disabled-opacity))'
|
||
|
|
const borderColor = 'rgba(var(--v-border-color), var(--v-border-opacity))'
|
||
|
|
|
||
|
|
const series = [
|
||
|
|
{
|
||
|
|
name: 'Delivery rate',
|
||
|
|
type: 'column',
|
||
|
|
data: [
|
||
|
|
5,
|
||
|
|
4.5,
|
||
|
|
4,
|
||
|
|
3,
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: 'Delivery time',
|
||
|
|
type: 'column',
|
||
|
|
data: [
|
||
|
|
4,
|
||
|
|
3.5,
|
||
|
|
3,
|
||
|
|
2.5,
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: 'Delivery exceptions',
|
||
|
|
type: 'column',
|
||
|
|
data: [
|
||
|
|
3.5,
|
||
|
|
3,
|
||
|
|
2.5,
|
||
|
|
2,
|
||
|
|
],
|
||
|
|
},
|
||
|
|
]
|
||
|
|
|
||
|
|
const chartOptions = {
|
||
|
|
chart: {
|
||
|
|
type: 'bar',
|
||
|
|
parentHeightOffset: 0,
|
||
|
|
stacked: false,
|
||
|
|
toolbar: { show: false },
|
||
|
|
zoom: { enabled: false },
|
||
|
|
},
|
||
|
|
plotOptions: {
|
||
|
|
bar: {
|
||
|
|
horizontal: false,
|
||
|
|
columnWidth: '50%',
|
||
|
|
borderRadiusApplication: 'end',
|
||
|
|
borderRadius: 4,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
dataLabels: { enabled: false },
|
||
|
|
xaxis: {
|
||
|
|
tickAmount: 10,
|
||
|
|
categories: [
|
||
|
|
'Carrier A',
|
||
|
|
'Carrier B',
|
||
|
|
'Carrier C',
|
||
|
|
'Carrier D',
|
||
|
|
],
|
||
|
|
labels: {
|
||
|
|
style: {
|
||
|
|
colors: labelColor,
|
||
|
|
fontSize: '13px',
|
||
|
|
fontFamily: 'Public Sans',
|
||
|
|
fontWeight: 400,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
axisBorder: { show: false },
|
||
|
|
axisTicks: { show: false },
|
||
|
|
},
|
||
|
|
yaxis: {
|
||
|
|
tickAmount: 4,
|
||
|
|
max: 5,
|
||
|
|
labels: {
|
||
|
|
style: {
|
||
|
|
colors: labelColor,
|
||
|
|
fontSize: '13px',
|
||
|
|
fontFamily: 'Public Sans',
|
||
|
|
fontWeight: 400,
|
||
|
|
},
|
||
|
|
formatter(o) {
|
||
|
|
return o
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
legend: {
|
||
|
|
position: 'bottom',
|
||
|
|
markers: {
|
||
|
|
width: 8,
|
||
|
|
height: 8,
|
||
|
|
offsetX: -3,
|
||
|
|
radius: 12,
|
||
|
|
},
|
||
|
|
height: 33,
|
||
|
|
offsetY: 10,
|
||
|
|
itemMargin: {
|
||
|
|
horizontal: 10,
|
||
|
|
vertical: 0,
|
||
|
|
},
|
||
|
|
fontSize: '13px',
|
||
|
|
fontFamily: 'Public Sans',
|
||
|
|
fontWeight: 400,
|
||
|
|
labels: {
|
||
|
|
colors: bodyColor,
|
||
|
|
useSeriesColors: false,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
grid: {
|
||
|
|
borderColor,
|
||
|
|
strokeDashArray: 6,
|
||
|
|
},
|
||
|
|
colors: [
|
||
|
|
colors.series1,
|
||
|
|
colors.series2,
|
||
|
|
colors.series3,
|
||
|
|
],
|
||
|
|
fill: { opacity: 1 },
|
||
|
|
responsive: [
|
||
|
|
{
|
||
|
|
breakpoint: 1400,
|
||
|
|
options: {
|
||
|
|
chart: { height: 275 },
|
||
|
|
legend: {
|
||
|
|
fontSize: '13px',
|
||
|
|
offsetY: 10,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
{
|
||
|
|
breakpoint: 576,
|
||
|
|
options: {
|
||
|
|
chart: { height: 300 },
|
||
|
|
legend: {
|
||
|
|
itemMargin: {
|
||
|
|
vertical: 5,
|
||
|
|
horizontal: 10,
|
||
|
|
},
|
||
|
|
offsetY: 7,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
}
|
||
|
|
|
||
|
|
const moreList = [
|
||
|
|
{
|
||
|
|
title: 'View More',
|
||
|
|
value: 'View More',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: 'Delete',
|
||
|
|
value: 'Delete',
|
||
|
|
},
|
||
|
|
]
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<template>
|
||
|
|
<VCard>
|
||
|
|
<VCardItem class="pb-0">
|
||
|
|
<VCardTitle>Carrier Performance</VCardTitle>
|
||
|
|
|
||
|
|
<template #append>
|
||
|
|
<MoreBtn :menu-list="moreList" />
|
||
|
|
</template>
|
||
|
|
</VCardItem>
|
||
|
|
|
||
|
|
<VCardText>
|
||
|
|
<VueApexCharts
|
||
|
|
:options="chartOptions"
|
||
|
|
:series="series"
|
||
|
|
height="300"
|
||
|
|
class="carrier-chart my-2"
|
||
|
|
/>
|
||
|
|
</VCardText>
|
||
|
|
</VCard>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<style lang="scss">
|
||
|
|
@use "@core-scss/template/libs/apex-chart.scss";
|
||
|
|
|
||
|
|
.carrier-chart {
|
||
|
|
.apexcharts-legend {
|
||
|
|
.apexcharts-legend-series {
|
||
|
|
border: 1px solid rgba(var(--v-border-color), var(--v-border-opacity));
|
||
|
|
border-radius: 6px;
|
||
|
|
margin-block-end: 0.3125rem !important;
|
||
|
|
margin-inline: 0 1rem !important;
|
||
|
|
padding-inline: 0.75rem;
|
||
|
|
|
||
|
|
&:last-child {
|
||
|
|
margin-inline: 0 !important;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</style>
|