From 41c44272a3659e33eb637a43e8976b5fe1abf896 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Mon, 11 May 2026 16:57:16 -0300 Subject: [PATCH] agenda: dialog UX (bloqueio paciente arquivado/inativo + resumo sticky + card extras + observacao via commitment) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BLOQUEIO REAL Inativo + AVISO Arquivado futura: - useAgendaEventComposer.canSave agora bloqueia edicao de sessao futura quando !perms.canReschedule. Antes canReschedule era dead code (definido em getPatientAgendaPermissions mas nunca consumido). Pra Inativo: canReschedule=false => Save desabilitado de verdade (antes o aviso "Remarcacao bloqueada" mentia, save acontecia mesmo). - Aviso novo (severity=info) em AgendaEventDialog + V2 pra Arquivado + futura + edit: "Sessao futura editavel; novos agendamentos e recorrencias bloqueados". Cobria um gap onde nao havia aviso nenhum pra esse cenario. RESUMO FLUTUANTE acompanha o Dialog: - ResizeObserver no .p-dialog.agenda-event-composer mede top + altura e sincroniza com :style do aside via ref resumoStyle. Antes o aside tinha top:5vh fixo — dialog baixo (Bloqueio/Atividade) centrava vertical e o resumo ficava preso la em cima desalinhado. CARD "Campos Extras (compromisso)": - Bloco de selectedCommitmentFields extraido da fields-grid pra um .field-card proprio com header pi-list + titulo + .aed-extras-body (padding 0.85rem). Hierarquia visual clara: campos do compromisso ficam isolados dos campos do form principal. - Bind especial pra f.key==='notes': v-model="form.observacoes" em vez de form.extra_fields.notes. Mantem compat com a coluna nativa agenda_eventos.observacoes (consumida por relatorios/prontuario). - Textareas hardcoded de Observacao removidas do form (fields-grid + side-card direito) — agora vem como campo extra do commitment Sessao, via migration 20260511000001 (commit anterior). OUTROS: - Card "Pagamento" renomeado pra "Sessao / Honorarios" (cobre os 3 tipos: gratuito, particular, convenio — terminologia mais alinhada ao vocabulario clinico). - composer-grid e composer-right ganharam gap:0 — os cards filhos ja tem mb-4 proprio (Tailwind ~1rem), gap do flex duplicava. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../agenda/components/AgendaEventDialog.vue | 128 +++++++++++++----- .../agenda/components/AgendaEventDialogV2.vue | 5 +- .../composables/useAgendaEventComposer.js | 6 + 3 files changed, 103 insertions(+), 36 deletions(-) diff --git a/src/features/agenda/components/AgendaEventDialog.vue b/src/features/agenda/components/AgendaEventDialog.vue index 324da18..6ade1e0 100644 --- a/src/features/agenda/components/AgendaEventDialog.vue +++ b/src/features/agenda/components/AgendaEventDialog.vue @@ -15,7 +15,7 @@ |-------------------------------------------------------------------------- -->