|
@@ -166,18 +166,24 @@
|
|
|
icon="mdi-account-multiple-outline"
|
|
icon="mdi-account-multiple-outline"
|
|
|
value="4.527"
|
|
value="4.527"
|
|
|
badge="3.200 ativos"
|
|
badge="3.200 ativos"
|
|
|
|
|
+ clickable
|
|
|
|
|
+ @click="openAlunosDialog"
|
|
|
/>
|
|
/>
|
|
|
<DashboardStatCard
|
|
<DashboardStatCard
|
|
|
title="Contratos Congelados"
|
|
title="Contratos Congelados"
|
|
|
icon="mdi-snowflake"
|
|
icon="mdi-snowflake"
|
|
|
value="57"
|
|
value="57"
|
|
|
subtitle="É hora de incentivar nossos alunos"
|
|
subtitle="É hora de incentivar nossos alunos"
|
|
|
|
|
+ clickable
|
|
|
|
|
+ @click="openContratosCongeladosDialog"
|
|
|
/>
|
|
/>
|
|
|
<DashboardStatCard
|
|
<DashboardStatCard
|
|
|
title="Contratos Cancelados"
|
|
title="Contratos Cancelados"
|
|
|
icon="mdi-cancel"
|
|
icon="mdi-cancel"
|
|
|
value="57"
|
|
value="57"
|
|
|
subtitle="É hora de incentivar nossos alunos"
|
|
subtitle="É hora de incentivar nossos alunos"
|
|
|
|
|
+ clickable
|
|
|
|
|
+ @click="openContratosCanceladosDialog"
|
|
|
/>
|
|
/>
|
|
|
<DashboardStatCard
|
|
<DashboardStatCard
|
|
|
title="Receita Geral"
|
|
title="Receita Geral"
|
|
@@ -223,11 +229,15 @@
|
|
|
badge="Alta"
|
|
badge="Alta"
|
|
|
badge-color="approved"
|
|
badge-color="approved"
|
|
|
custom-style="padding: 6px 24px"
|
|
custom-style="padding: 6px 24px"
|
|
|
|
|
+ clickable
|
|
|
|
|
+ @click="openFrequenciaMediaDialog"
|
|
|
/>
|
|
/>
|
|
|
<DashboardStatCard
|
|
<DashboardStatCard
|
|
|
title="Estoque Geral de Produtos"
|
|
title="Estoque Geral de Produtos"
|
|
|
icon="mdi-currency-usd"
|
|
icon="mdi-currency-usd"
|
|
|
value="56"
|
|
value="56"
|
|
|
|
|
+ clickable
|
|
|
|
|
+ @click="openEstoqueProdutosDialog"
|
|
|
/>
|
|
/>
|
|
|
<DashboardStatCard
|
|
<DashboardStatCard
|
|
|
title="Tarefas Pendentes"
|
|
title="Tarefas Pendentes"
|
|
@@ -240,6 +250,8 @@
|
|
|
icon="mdi-calendar-outline"
|
|
icon="mdi-calendar-outline"
|
|
|
value="2"
|
|
value="2"
|
|
|
subtitle="Estável"
|
|
subtitle="Estável"
|
|
|
|
|
+ clickable
|
|
|
|
|
+ @click="openTicketsAbertoDialog"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -247,21 +259,54 @@
|
|
|
<div v-else class="flex flex-center full-width q-pa-xl">
|
|
<div v-else class="flex flex-center full-width q-pa-xl">
|
|
|
<q-spinner color="primary" size="50px" />
|
|
<q-spinner color="primary" size="50px" />
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
import { onMounted, ref, watch } from "vue";
|
|
import { onMounted, ref, watch } from "vue";
|
|
|
|
|
+import { useQuasar } from "quasar";
|
|
|
import { useI18n } from "vue-i18n";
|
|
import { useI18n } from "vue-i18n";
|
|
|
import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
|
|
import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
|
|
|
import DashboardStatCard from "src/components/charts/DashboardStatCard.vue";
|
|
import DashboardStatCard from "src/components/charts/DashboardStatCard.vue";
|
|
|
import DashboardChartCard from "src/components/charts/DashboardChartCard.vue";
|
|
import DashboardChartCard from "src/components/charts/DashboardChartCard.vue";
|
|
|
import GroupedBarChart from "src/components/charts/normal/GroupedBarChart.vue";
|
|
import GroupedBarChart from "src/components/charts/normal/GroupedBarChart.vue";
|
|
|
import AniversariantesCard from "src/components/charts/AniversariantesCard.vue";
|
|
import AniversariantesCard from "src/components/charts/AniversariantesCard.vue";
|
|
|
|
|
+import AlunosAtivosDialog from "src/pages/dashboard/components/AlunosAtivosDialog.vue";
|
|
|
|
|
+import ContratosCongeladosDialog from "src/pages/dashboard/components/ContratosCongeladosDialog.vue";
|
|
|
|
|
+import ContratosCanceladosDialog from "src/pages/dashboard/components/ContratosCanceladosDialog.vue";
|
|
|
|
|
+import FrequenciaMediaDialog from "src/pages/dashboard/components/FrequenciaMediaDialog.vue";
|
|
|
|
|
+import EstoqueProdutosDialog from "src/pages/dashboard/components/EstoqueProdutosDialog.vue";
|
|
|
|
|
+import TicketsAbertoDialog from "src/pages/dashboard/components/TicketsAbertoDialog.vue";
|
|
|
|
|
|
|
|
const { t } = useI18n();
|
|
const { t } = useI18n();
|
|
|
|
|
|
|
|
|
|
+const $q = useQuasar();
|
|
|
const isLoading = ref(true);
|
|
const isLoading = ref(true);
|
|
|
|
|
+
|
|
|
|
|
+const openAlunosDialog = () => {
|
|
|
|
|
+ $q.dialog({ component: AlunosAtivosDialog });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const openContratosCongeladosDialog = () => {
|
|
|
|
|
+ $q.dialog({ component: ContratosCongeladosDialog });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const openContratosCanceladosDialog = () => {
|
|
|
|
|
+ $q.dialog({ component: ContratosCanceladosDialog });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const openFrequenciaMediaDialog = () => {
|
|
|
|
|
+ $q.dialog({ component: FrequenciaMediaDialog });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const openEstoqueProdutosDialog = () => {
|
|
|
|
|
+ $q.dialog({ component: EstoqueProdutosDialog });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const openTicketsAbertoDialog = () => {
|
|
|
|
|
+ $q.dialog({ component: TicketsAbertoDialog });
|
|
|
|
|
+};
|
|
|
const selectedUnit = ref(null);
|
|
const selectedUnit = ref(null);
|
|
|
const defaultPeriod = ref("month");
|
|
const defaultPeriod = ref("month");
|
|
|
const defaultEventId = ref(1);
|
|
const defaultEventId = ref(1);
|