Adicionada compressão Brotli/Gzip, auto-import de Vue e PrimeVue, e análise visual do bundle para otimização de produção e Remove AppLayout duplicado de cada área (therapist, admin, configuracoes, account, supervisor, billing, features) e consolida sob um único pai no router/index.js. Adiciona RouterPassthrough para grupos de rota sem layout intermediário. Remove debug ativo (console.trace em router.push e queries Supabase em todo watch de rota) que degradava performance para todos os usuários.
This commit is contained in:
@@ -14,11 +14,13 @@
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
import AppLayout from '@/layout/AppLayout.vue';
|
||||
|
||||
const configuracoesRoutes = {
|
||||
path: '/configuracoes',
|
||||
component: AppLayout,
|
||||
// ConfiguracoesPage já tem <router-view> próprio — serve de layout intermediário.
|
||||
// Não precisa de RouterPassthrough.
|
||||
export default {
|
||||
path: 'configuracoes',
|
||||
component: () => import('@/layout/ConfiguracoesPage.vue'),
|
||||
redirect: { name: 'ConfiguracoesAgenda' },
|
||||
|
||||
meta: {
|
||||
requiresAuth: true,
|
||||
@@ -27,94 +29,84 @@ const configuracoesRoutes = {
|
||||
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
component: () => import('@/layout/ConfiguracoesPage.vue'),
|
||||
redirect: { name: 'ConfiguracoesAgenda' },
|
||||
|
||||
children: [
|
||||
{
|
||||
path: 'agenda',
|
||||
name: 'ConfiguracoesAgenda',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesAgendaPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'bloqueios',
|
||||
name: 'ConfiguracoesBloqueios',
|
||||
component: () => import('@/layout/configuracoes/BloqueiosPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'agendador',
|
||||
name: 'ConfiguracoesAgendador',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesAgendadorPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'pagamento',
|
||||
name: 'ConfiguracoesPagamento',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesPagamentoPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'precificacao',
|
||||
name: 'ConfiguracoesPrecificacao',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesPrecificacaoPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'descontos',
|
||||
name: 'ConfiguracoesDescontos',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesDescontosPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'excecoes-financeiras',
|
||||
name: 'ConfiguracoesExcecoesFinanceiras',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesExcecoesFinanceirasPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'convenios',
|
||||
name: 'ConfiguracoesConvenios',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesConveniosPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'email-templates',
|
||||
name: 'ConfiguracoesEmailTemplates',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesEmailTemplatesPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'empresa',
|
||||
name: 'ConfiguracoesMinhaEmpresa',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesMinhaEmpresaPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'canais',
|
||||
name: 'ConfiguracoesCanais',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesCanaisPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'whatsapp',
|
||||
name: 'ConfiguracoesWhatsapp',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesWhatsappPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'whatsapp-twilio',
|
||||
name: 'ConfiguracoesWhatsappTwilio',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesTwilioWhatsappPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'sms',
|
||||
name: 'ConfiguracoesSms',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesSmsPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'sms-canal',
|
||||
name: 'ConfiguracoesSmsCanal',
|
||||
component: () => import('@/views/pages/notifications/SmsChannelSetupPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'recursos-extras',
|
||||
name: 'ConfiguracoesRecursosExtras',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesRecursosExtrasPage.vue')
|
||||
}
|
||||
]
|
||||
path: 'agenda',
|
||||
name: 'ConfiguracoesAgenda',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesAgendaPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'bloqueios',
|
||||
name: 'ConfiguracoesBloqueios',
|
||||
component: () => import('@/layout/configuracoes/BloqueiosPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'agendador',
|
||||
name: 'ConfiguracoesAgendador',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesAgendadorPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'pagamento',
|
||||
name: 'ConfiguracoesPagamento',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesPagamentoPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'precificacao',
|
||||
name: 'ConfiguracoesPrecificacao',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesPrecificacaoPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'descontos',
|
||||
name: 'ConfiguracoesDescontos',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesDescontosPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'excecoes-financeiras',
|
||||
name: 'ConfiguracoesExcecoesFinanceiras',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesExcecoesFinanceirasPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'convenios',
|
||||
name: 'ConfiguracoesConvenios',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesConveniosPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'email-templates',
|
||||
name: 'ConfiguracoesEmailTemplates',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesEmailTemplatesPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'empresa',
|
||||
name: 'ConfiguracoesMinhaEmpresa',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesMinhaEmpresaPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'canais',
|
||||
name: 'ConfiguracoesCanais',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesCanaisPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'whatsapp',
|
||||
name: 'ConfiguracoesWhatsapp',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesWhatsappPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'whatsapp-twilio',
|
||||
name: 'ConfiguracoesWhatsappTwilio',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesTwilioWhatsappPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'sms',
|
||||
name: 'ConfiguracoesSms',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesSmsPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'sms-canal',
|
||||
name: 'ConfiguracoesSmsCanal',
|
||||
component: () => import('@/views/pages/notifications/SmsChannelSetupPage.vue')
|
||||
},
|
||||
{
|
||||
path: 'recursos-extras',
|
||||
name: 'ConfiguracoesRecursosExtras',
|
||||
component: () => import('@/layout/configuracoes/ConfiguracoesRecursosExtrasPage.vue')
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
export default configuracoesRoutes;
|
||||
|
||||
Reference in New Issue
Block a user