MelissaBloqueios: pagina nativa 2-col com nacionais + municipais + bloqueios
Tira "Bloqueios" do MelissaConfiguracoes (era embed cfg-bloqueios -> BloqueiosPage.vue) e cria a /melissa/bloqueios nativa Melissa. Sidebar (mbq-side): - Card "Resumo" — 3 mini-stats coloridos (Nacionais blue, Municipais orange, Bloqueios red) + nav de ano (chevron < ANO > ) - Card "Adicionar" — 2 CTAs (Feriado municipal secundario + Novo bloqueio primary) - Card "Como funciona" — FAQ 3-bullets explicando os tipos Main (50/50 desktop, com Bloqueios full-row abaixo): - Card Nacionais — read-only (gerado automaticamente), tags Movel - Card Municipais — CRUD via dialog (nome + data + observacao) - Card Bloqueios — CRUD via dialog (titulo + datas + horas + obs + recorrente). Border-left colorido por tipo (azul/laranja/vermelho). - Items com data + titulo + observacao inline + acoes (edit/trash) Cards aplicam o pattern dos anteriores: min-h 300, max-h 100%, body overflow-y: auto. Bloqueios spans 2-col com .mbq-w--full. Logica espelhada do BloqueiosPage (composable useFeriados + agenda_bloqueios). Compativel com /configuracoes/bloqueios legacy. Wire-up: - MelissaLayout: import + render `<MelissaBloqueios>` quando secaoAberta === 'bloqueios' - 'bloqueios' sai de MELISSA_CONFIG_ALIASES, entra em MELISSA_NON_CONFIG_SLUGS - SECOES.bloqueios adicionado (icone pi-ban) - MelissaConfiguracoes: cfg-bloqueios removido de COMPONENT_MAP, ROUTE_ALIASES e do grupo Agenda (resta cfg-agenda + cfg-agendador) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -38,8 +38,7 @@ const emit = defineEmits(['close']);
|
||||
// rotaToSecao() lê alias OU key direta; secaoToRota() devolve alias se
|
||||
// existir, senão a key como-é.
|
||||
const ROUTE_ALIASES = {
|
||||
aparencia: 'aparencia',
|
||||
bloqueios: 'cfg-bloqueios'
|
||||
aparencia: 'aparencia'
|
||||
};
|
||||
// URLs antigas (/melissa/fundo, /melissa/relogio, /melissa/cronometro)
|
||||
// agora caem no slug unificado "aparencia" — pagina Layout Melissa
|
||||
@@ -73,7 +72,7 @@ function secaoToRota(key) {
|
||||
// Mantém o user dentro do overlay Melissa em vez de navegar pra fora.
|
||||
const COMPONENT_MAP = {
|
||||
'cfg-agenda': defineAsyncComponent(() => import('@/layout/configuracoes/ConfiguracoesAgendaPage.vue')),
|
||||
'cfg-bloqueios': defineAsyncComponent(() => import('@/layout/configuracoes/BloqueiosPage.vue')),
|
||||
// 'cfg-bloqueios' removido — virou pagina nativa MelissaBloqueios em /melissa/bloqueios
|
||||
'cfg-agendador': defineAsyncComponent(() => import('@/layout/configuracoes/ConfiguracoesAgendadorPage.vue')),
|
||||
'cfg-pagamento': defineAsyncComponent(() => import('@/layout/configuracoes/ConfiguracoesPagamentoPage.vue')),
|
||||
'cfg-precificacao': defineAsyncComponent(() => import('@/layout/configuracoes/ConfiguracoesPrecificacaoPage.vue')),
|
||||
@@ -153,7 +152,7 @@ const grupos = [
|
||||
icon: 'pi pi-calendar',
|
||||
items: [
|
||||
{ key: 'cfg-agenda', label: 'Agenda', desc: 'Horários semanais, exceções, duração e intervalo padrão.', icon: 'pi pi-calendar' },
|
||||
{ key: 'cfg-bloqueios', label: 'Bloqueios', desc: 'Feriados nacionais, municipais e períodos bloqueados.', icon: 'pi pi-ban' },
|
||||
// "Bloqueios" virou pagina nativa em /melissa/bloqueios (MelissaBloqueios)
|
||||
{ key: 'cfg-agendador', label: 'Agendador Online', desc: 'Link público para pacientes solicitarem horários.', icon: 'pi pi-calendar-clock' }
|
||||
]
|
||||
},
|
||||
|
||||
@@ -38,6 +38,7 @@ import MelissaPlano from './MelissaPlano.vue';
|
||||
import MelissaNegocio from './MelissaNegocio.vue';
|
||||
import MelissaAlterarPlano from './MelissaAlterarPlano.vue';
|
||||
import MelissaSeguranca from './MelissaSeguranca.vue';
|
||||
import MelissaBloqueios from './MelissaBloqueios.vue';
|
||||
import MelissaEmbed from './MelissaEmbed.vue';
|
||||
import MelissaCadastrosRecebidos from './MelissaCadastrosRecebidos.vue';
|
||||
import MelissaAgendamentosRecebidos from './MelissaAgendamentosRecebidos.vue';
|
||||
@@ -176,6 +177,8 @@ const SECOES = {
|
||||
negocio: { label: 'Meu Negócio', icon: 'pi pi-briefcase', descricao: 'Identidade, fiscal, endereco, contato, redes — gamificacao no aside.' },
|
||||
// Pagina nativa de seguranca (MelissaSeguranca) — saiu do MelissaConfiguracoes
|
||||
seguranca: { label: 'Segurança', icon: 'pi pi-shield', descricao: 'Trocar senha + boas praticas + estado da sessao.' },
|
||||
// Pagina nativa de bloqueios (MelissaBloqueios) — saiu do MelissaConfiguracoes
|
||||
bloqueios: { label: 'Bloqueios e Feriados', icon: 'pi pi-ban', descricao: 'Feriados nacionais (auto), municipais e bloqueios manuais.' },
|
||||
// Pagina nativa de alterar plano (MelissaAlterarPlano) — substitui /therapist/upgrade
|
||||
'alterar-plano': { label: 'Alterar Plano', icon: 'pi pi-arrow-up-right', descricao: 'Escolha um plano pessoal pra ativar todos os recursos.' },
|
||||
// Onda 1 — pages embedadas via MelissaEmbed (1-coluna, hero glass)
|
||||
@@ -203,13 +206,13 @@ const MELISSA_NON_CONFIG_SLUGS = new Set([
|
||||
'tags', 'grupos', 'cadastros-recebidos', 'medicos', 'agendamentos-recebidos',
|
||||
'link-externo', 'notificacoes', 'financeiro', 'financeiro-lancamentos',
|
||||
'documentos', 'documentos-templates', 'relatorios',
|
||||
'perfil', 'plano', 'negocio', 'seguranca', 'alterar-plano',
|
||||
'perfil', 'plano', 'negocio', 'seguranca', 'bloqueios', 'alterar-plano',
|
||||
...MELISSA_EMBED_KEYS
|
||||
]);
|
||||
// Aliases "bonitos" + INLINE_KEYS reconhecidos pelo MelissaConfiguracoes.
|
||||
// Mantidos sincronizados com o ROUTE_ALIASES/INLINE_KEYS de lá.
|
||||
const MELISSA_CONFIG_ALIASES = new Set([
|
||||
'aparencia', 'bloqueios',
|
||||
'aparencia',
|
||||
'fundo', 'relogio', 'cronometro'
|
||||
]);
|
||||
function isMelissaConfigRoute(slug) {
|
||||
@@ -2244,6 +2247,11 @@ function onKeydown(e) {
|
||||
@close="fecharSecao"
|
||||
/>
|
||||
|
||||
<MelissaBloqueios
|
||||
v-if="layoutReady && secaoAberta === 'bloqueios'"
|
||||
@close="fecharSecao"
|
||||
/>
|
||||
|
||||
<MelissaConfiguracoes
|
||||
v-if="layoutReady && isMelissaConfigRoute(secaoAberta)"
|
||||
:secao-rota="secaoAberta"
|
||||
|
||||
Reference in New Issue
Block a user