MelissaPaciente: editPatient abre PatientCadastroDialog INLINE (sem sair)
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 - <PatientCadastroDialog v-model="cadastroOpen" ...> 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) <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ import { useToast } from 'primevue/usetoast';
|
|||||||
import { useConversationDrawerStore } from '@/stores/conversationDrawerStore';
|
import { useConversationDrawerStore } from '@/stores/conversationDrawerStore';
|
||||||
import DocumentsListPage from '@/features/documents/DocumentsListPage.vue';
|
import DocumentsListPage from '@/features/documents/DocumentsListPage.vue';
|
||||||
import PatientConversationsTab from '@/features/patients/prontuario/PatientConversationsTab.vue';
|
import PatientConversationsTab from '@/features/patients/prontuario/PatientConversationsTab.vue';
|
||||||
|
import PatientCadastroDialog from '@/components/ui/PatientCadastroDialog.vue';
|
||||||
import { usePatientDetail } from '@/features/patients/composables/usePatientDetail';
|
import { usePatientDetail } from '@/features/patients/composables/usePatientDetail';
|
||||||
import { usePatientSessions } from '@/features/patients/composables/usePatientSessions';
|
import { usePatientSessions } from '@/features/patients/composables/usePatientSessions';
|
||||||
import { usePatientFinancial } from '@/features/patients/composables/usePatientFinancial';
|
import { usePatientFinancial } from '@/features/patients/composables/usePatientFinancial';
|
||||||
@@ -338,11 +339,22 @@ function goToPacientes() {
|
|||||||
router.push('/melissa/pacientes');
|
router.push('/melissa/pacientes');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit: navega pra /melissa/pacientes?edit=<id> e a propria
|
// Edit: abre o PatientCadastroDialog INLINE (sem sair do prontuario).
|
||||||
// MelissaPacientes detecta esse query param e abre o cadastroFullDialog.
|
// 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() {
|
function editPatient() {
|
||||||
emit('edit', props.patientId);
|
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
|
// Open WhatsApp: usa o conversationDrawerStore global (mesmo padrao
|
||||||
@@ -1870,6 +1882,15 @@ onBeforeUnmount(() => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<!-- Dialog de cadastro/edicao do paciente — abre INLINE por cima do
|
||||||
|
prontuario (z-index PrimeVue ~1100 > .mpa-page z-index 40). Ao
|
||||||
|
salvar/criar, recarrega os dados do paciente sem sair da tela. -->
|
||||||
|
<PatientCadastroDialog
|
||||||
|
v-model="cadastroOpen"
|
||||||
|
:patient-id="cadastroPatientId"
|
||||||
|
@created="onPatientSaved"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user