|
|
@@ -187,79 +187,6 @@
|
|
|
subtitle="0 pagamentos pendentes"
|
|
|
/>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="flex full-width gap">
|
|
|
- <div class="flex flex-grow">
|
|
|
- <CardIconChart
|
|
|
- :title="t('dashboard.charts.tickets_by_type.title')"
|
|
|
- :icon="'mdi-ticket-account'"
|
|
|
- class="flex-grow"
|
|
|
- >
|
|
|
- <template #chart>
|
|
|
- <BarChart
|
|
|
- :data="eventTicketsByTypeChart"
|
|
|
- :data-set-label="t('events.tickets.plural')"
|
|
|
- :label-x="t('events.tickets.types_singular')"
|
|
|
- :label-y="t('common.terms.quantity')"
|
|
|
- :show-legend="true"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </CardIconChart>
|
|
|
- </div>
|
|
|
- <div class="flex flex-grow">
|
|
|
- <CardIconChart
|
|
|
- :title="t('dashboard.charts.participants_by_document.title')"
|
|
|
- :icon="'mdi-badge-account'"
|
|
|
- class="flex-grow"
|
|
|
- >
|
|
|
- <template #chart>
|
|
|
- <DoughnutChart
|
|
|
- :data="eventParticipantsByCNPJAndCPF"
|
|
|
- :data-set-label="t('events.attendance.participant_plural')"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </CardIconChart>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="flex full-width gap">
|
|
|
- <div class="flex flex-grow">
|
|
|
- <CardIconChart
|
|
|
- :title="t('dashboard.charts.sales_over_time.title')"
|
|
|
- :icon="'mdi-chart-line'"
|
|
|
- class="flex-grow"
|
|
|
- >
|
|
|
- <template #chart>
|
|
|
- <LineChart
|
|
|
- :data="salesOverTimeLineChart"
|
|
|
- :data-set-label="t('ui.navigation.sales')"
|
|
|
- :label-x="t('common.terms.month')"
|
|
|
- :label-y="
|
|
|
- t('dashboard.charts.sales_over_time.y_label', {
|
|
|
- currency: 'R$',
|
|
|
- })
|
|
|
- "
|
|
|
- />
|
|
|
- </template>
|
|
|
- </CardIconChart>
|
|
|
- </div>
|
|
|
- <div class="flex flex-grow">
|
|
|
- <CardIconChart
|
|
|
- :title="t('dashboard.charts.registration_source.title')"
|
|
|
- :icon="'mdi-chart-pie'"
|
|
|
- class="flex-grow"
|
|
|
- >
|
|
|
- <template #chart>
|
|
|
- <PieChart
|
|
|
- :data="eventSourcePieChart"
|
|
|
- :data-set-label="
|
|
|
- t('dashboard.charts.registration_source.source')
|
|
|
- "
|
|
|
- />
|
|
|
- </template>
|
|
|
- </CardIconChart>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
|
|
|
<div v-else class="flex flex-center full-width q-pa-xl">
|
|
|
@@ -269,27 +196,11 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { onMounted, ref, watch, defineAsyncComponent } from "vue";
|
|
|
+import { onMounted, ref, watch } from "vue";
|
|
|
import { useI18n } from "vue-i18n";
|
|
|
import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
|
|
|
import DashboardStatCard from "src/components/charts/DashboardStatCard.vue";
|
|
|
|
|
|
-const CardIconChart = defineAsyncComponent(
|
|
|
- () => import("src/components/charts/CardIconChart.vue"),
|
|
|
-);
|
|
|
-const BarChart = defineAsyncComponent(
|
|
|
- () => import("src/components/charts/normal/BarChart.vue"),
|
|
|
-);
|
|
|
-const DoughnutChart = defineAsyncComponent(
|
|
|
- () => import("src/components/charts/normal/DoughnutChart.vue"),
|
|
|
-);
|
|
|
-const LineChart = defineAsyncComponent(
|
|
|
- () => import("src/components/charts/normal/LineChart.vue"),
|
|
|
-);
|
|
|
-const PieChart = defineAsyncComponent(
|
|
|
- () => import("src/components/charts/normal/PieChart.vue"),
|
|
|
-);
|
|
|
-
|
|
|
const { t } = useI18n();
|
|
|
|
|
|
const isLoading = ref(true);
|