MelissaPaciente Fase 5: Tab Agenda completa (KPIs + filtros + grupos por mes + acoes)
EXTENSAO src/features/patients/utils/patientFormatters.js: +2 helpers
- fmtHourShort (HH:MM 24h pt-br) — usado na coluna data dos cards
- fmtDayShort (DOW abreviado pt-br sem ponto) — usado na coluna data
EXTENSAO src/features/patients/composables/usePatientSessions.js
- Novo ref `busy` pra disable de buttons durante mutation
- _lastPatientId guardado internamente pra auto-reload
- Nova funcao `updateStatus(sessionId, novoStatus)` que faz
supabase.from('agenda_eventos').update({status}) + auto-reload da
lista de sessoes. Retorna {ok, error?}.
MELISSAPACIENTE.VUE — script
- agendaFilter ref ('all' default) + AGENDA_FILTERS array com 6 opcoes
(Todas, Proximas, Passadas, Realizadas, Faltas, Canceladas)
- agendaSessoesFiltradas computed: filtra por future/past/status (regex)
- agendaAgrupadas computed: agrupa por "Mes de YYYY" DESC
- updateSessionStatus(ev, status, msg): chama sessionsHook.updateStatus +
toast de sucesso/erro
- Removido `void toast` (toast usado de verdade agora)
MELISSAPACIENTE.VUE — Tab Agenda reescrita (substitui placeholder Fase 1)
- 4 KPI cards no padrao Visao Geral (numerados 01-04):
Total / Realizadas (% do total) / Faltas (cor adaptativa) / Proxima
- 6 filter chips redondas (cor primary quando active)
- Empty state contextual (sem sessoes vs filtro vazio)
- Grupos por mes com header (label + badge count)
- Cards 3-col: data column (DOW + dia + hora) | main (status tag + chips
modalidade/duracao + relative + titulo + note 2-line clamp) | actions
(3 buttons: ok/warn/danger com tooltip + cor adaptativa no hover)
- Mobile: stack date+main em 2 cols; actions full-width abaixo
CSS: ~150L novos. Padrao visual Melissa: data column estilo calendario,
actions hover muda cor por intent (verde realiz / amarelo falta / vermelho
cancel), border-left por status.
ESLint: 0 errors da minha mudanca.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,51 @@ Touched: none
|
||||
## [2026-05-08 00:00] session | Melissa cfg-* nativas + temas + cronometro DB
|
||||
Touched: none
|
||||
|
||||
## [2026-05-08 16:30] session | MelissaPaciente Fase 5 — Tab Agenda completa
|
||||
Touched: none
|
||||
Detalhes: Tab Agenda com KPIs, filtros, agrupamento por mes e acoes
|
||||
rapidas (mark realizada/falta/cancelar). Espelha o legacy.
|
||||
|
||||
EXTENSAO patientFormatters.js: +2 helpers
|
||||
- fmtHourShort (HH:MM 24h pt-br) e fmtDayShort (DOW abbreviado pt-br
|
||||
sem ponto) — usados na coluna data dos cards.
|
||||
|
||||
EXTENSAO usePatientSessions.js: mutation + busy flag
|
||||
- Novo ref `busy` pra disable de buttons durante mutation.
|
||||
- _lastPatientId guardado pra auto-reload depois de mutation.
|
||||
- Nova funcao `updateStatus(sessionId, novoStatus)` que faz
|
||||
supabase.from('agenda_eventos').update({status}) + auto-reload da
|
||||
lista. Retorna {ok, error?}.
|
||||
|
||||
MELISSAPACIENTE.VUE — script
|
||||
- agendaFilter ref ('all' default) + AGENDA_FILTERS array com 6 opcoes
|
||||
(Todas, Proximas, Passadas, Realizadas, Faltas, Canceladas).
|
||||
- agendaSessoesFiltradas computed: filtra sessoes por future/past/status.
|
||||
- agendaAgrupadas computed: agrupa por "Mes de YYYY" mantendo ordem DESC.
|
||||
- updateSessionStatus(ev, status, msg) handler que chama
|
||||
sessionsHook.updateStatus + toast de sucesso/erro.
|
||||
- Removido `void toast` (toast usado de verdade agora).
|
||||
|
||||
MELISSAPACIENTE.VUE — Tab Agenda reescrita (substitui placeholder Fase 1)
|
||||
- 4 KPI cards no padrao Visao Geral (numerados 01-04):
|
||||
- 01 Total + cap "sessoes registradas"
|
||||
- 02 Realizadas + cap "% do total"
|
||||
- 03 Faltas + cap "+ N cancel." (cor vermelha quando > 0, cinza quando 0)
|
||||
- 04 Proxima + relative + datetime
|
||||
- 6 filter chips redondas (estilo Melissa: cor primary quando active).
|
||||
- Empty state contextual (sem sessoes vs filtro vazio).
|
||||
- Grupos por mes com header (label + badge count).
|
||||
- Cards com 3 colunas: data column (DOW + dia + hora curta) | main
|
||||
(status tag + chips modalidade/duracao + relative + titulo + note) |
|
||||
actions (3 buttons: ok/warn/danger com tooltip + cor adaptativa hover).
|
||||
- Mobile: stack date+main em 2 cols; actions full-width abaixo.
|
||||
|
||||
CSS: ~150L novos pros componentes (mpa-ag__group/list/item/date/main/
|
||||
actions). Padrao visual Melissa: data column estilo calendario, actions
|
||||
hover muda cor por intent (verde realiz / amarelo falta / vermelho cancel).
|
||||
|
||||
ESLint: 0 errors da minha mudanca.
|
||||
|
||||
## [2026-05-08 15:30] session | MelissaPaciente Fase 4 — Tab Prontuario MVP
|
||||
Touched: none
|
||||
Detalhes: O legacy PatientProntuario.vue tem a aba Prontuario como
|
||||
|
||||
Reference in New Issue
Block a user