From 301a7124a72c63aa5d9e0ef9281cd9ba87581e26 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Fri, 8 May 2026 11:06:49 -0300 Subject: [PATCH] MelissaPaciente: editPatient abre PatientCadastroDialog INLINE (sem sair) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug reportado: ao clicar "Editar dados" no prontuario, o user era redirecionado pra /melissa/pacientes?edit=X (que entao abria o cadastro em MelissaPacientes). Isso saia da tela do prontuario — comportamento incorreto. FIX: importar PatientCadastroDialog no MelissaPaciente e abrir por cima da pagina (z-index PrimeVue ~1100 > .mpa-page z-index 40). Ao salvar, recarrega os dados do paciente in-place via detail.load(). ADICIONADO - Import PatientCadastroDialog - Refs locais cadastroOpen + cadastroPatientId - editPatient() agora seta refs e abre dialog (era router.push) - onPatientSaved() handler que fecha o dialog e refetcha o detail - renderizado depois da .mpa-page no template O watch route.query.edit em MelissaPacientes (Fase 8) continua valido pra deep-links externos, mas o fluxo MelissaPaciente -> editar nao usa mais essa rota. ESLint: 0 errors. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/layout/melissa/MelissaPaciente.vue | 27 +++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/layout/melissa/MelissaPaciente.vue b/src/layout/melissa/MelissaPaciente.vue index 26b5f1b..4a5d3b0 100644 --- a/src/layout/melissa/MelissaPaciente.vue +++ b/src/layout/melissa/MelissaPaciente.vue @@ -24,6 +24,7 @@ import { useToast } from 'primevue/usetoast'; import { useConversationDrawerStore } from '@/stores/conversationDrawerStore'; import DocumentsListPage from '@/features/documents/DocumentsListPage.vue'; import PatientConversationsTab from '@/features/patients/prontuario/PatientConversationsTab.vue'; +import PatientCadastroDialog from '@/components/ui/PatientCadastroDialog.vue'; import { usePatientDetail } from '@/features/patients/composables/usePatientDetail'; import { usePatientSessions } from '@/features/patients/composables/usePatientSessions'; import { usePatientFinancial } from '@/features/patients/composables/usePatientFinancial'; @@ -338,11 +339,22 @@ function goToPacientes() { router.push('/melissa/pacientes'); } -// Edit: navega pra /melissa/pacientes?edit= e a propria -// MelissaPacientes detecta esse query param e abre o cadastroFullDialog. +// Edit: abre o PatientCadastroDialog INLINE (sem sair do prontuario). +// Antes redirecionava pra /melissa/pacientes?edit=X mas isso saia da +// tela do prontuario. Agora o dialog abre por cima e ao salvar +// recarrega os dados do paciente in-place. +const cadastroOpen = ref(false); +const cadastroPatientId = ref(null); function editPatient() { emit('edit', props.patientId); - router.push({ path: '/melissa/pacientes', query: { edit: props.patientId } }); + cadastroPatientId.value = String(props.patientId || ''); + cadastroOpen.value = true; +} +async function onPatientSaved() { + cadastroOpen.value = false; + if (props.patientId) { + await detail.load(props.patientId); + } } // Open WhatsApp: usa o conversationDrawerStore global (mesmo padrao @@ -1870,6 +1882,15 @@ onBeforeUnmount(() => { + + +