diff --git a/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte b/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte index 90b97e3..41c2a12 100644 --- a/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte +++ b/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte @@ -14,7 +14,7 @@ disabled = false }: Props = $props(); - let busca = $state(''); + // Usar value diretamente como busca para evitar conflitos de sincronização let mostrarDropdown = $state(false); // Buscar funcionários @@ -24,9 +24,9 @@ // Filtrar funcionários baseado na busca (por matrícula ou nome) const funcionariosFiltrados = $derived.by(() => { - if (!busca.trim()) return funcionarios.slice(0, 10); // Limitar a 10 quando vazio + if (!value || !value.trim()) return funcionarios.slice(0, 10); // Limitar a 10 quando vazio - const termo = busca.toLowerCase().trim(); + const termo = value.toLowerCase().trim(); return funcionarios.filter((f) => { const matriculaMatch = f.matricula?.toLowerCase().includes(termo); const nomeMatch = f.nome?.toLowerCase().includes(termo); @@ -34,15 +34,7 @@ }).slice(0, 20); // Limitar resultados }); - // Sincronizar busca com value externo - $effect(() => { - if (value !== undefined && value !== busca) { - busca = value; - } - }); - function selecionarFuncionario(matricula: string) { - busca = matricula; value = matricula; mostrarDropdown = false; } @@ -62,16 +54,13 @@ function handleInput() { mostrarDropdown = true; - if (busca !== value) { - value = busca; - } }
{/if} - {#if mostrarDropdown && busca && funcionariosFiltrados.length === 0} + {#if mostrarDropdown && value && value.trim() && funcionariosFiltrados.length === 0}
- Nenhum funcionário encontrado +
Nenhum funcionário encontrado
+
Você pode continuar digitando para buscar livremente
{/if}
diff --git a/apps/web/src/lib/components/FuncionarioNomeAutocomplete.svelte b/apps/web/src/lib/components/FuncionarioNomeAutocomplete.svelte index e4d0f6c..02635ba 100644 --- a/apps/web/src/lib/components/FuncionarioNomeAutocomplete.svelte +++ b/apps/web/src/lib/components/FuncionarioNomeAutocomplete.svelte @@ -14,7 +14,7 @@ disabled = false }: Props = $props(); - let busca = $state(''); + // Usar value diretamente como busca para evitar conflitos de sincronização let mostrarDropdown = $state(false); // Buscar funcionários @@ -24,9 +24,9 @@ // Filtrar funcionários baseado na busca (por nome ou matrícula) const funcionariosFiltrados = $derived.by(() => { - if (!busca.trim()) return funcionarios.slice(0, 10); // Limitar a 10 quando vazio + if (!value || !value.trim()) return funcionarios.slice(0, 10); // Limitar a 10 quando vazio - const termo = busca.toLowerCase().trim(); + const termo = value.toLowerCase().trim(); return funcionarios.filter((f) => { const nomeMatch = f.nome?.toLowerCase().includes(termo); const matriculaMatch = f.matricula?.toLowerCase().includes(termo); @@ -34,15 +34,7 @@ }).slice(0, 20); // Limitar resultados }); - // Sincronizar busca com value externo - $effect(() => { - if (value !== undefined && value !== busca) { - busca = value; - } - }); - function selecionarFuncionario(nome: string) { - busca = nome; value = nome; mostrarDropdown = false; } @@ -62,16 +54,13 @@ function handleInput() { mostrarDropdown = true; - if (busca !== value) { - value = busca; - } }
{/if} - {#if mostrarDropdown && busca && funcionariosFiltrados.length === 0} + {#if mostrarDropdown && value && value.trim() && funcionariosFiltrados.length === 0}
- Nenhum funcionário encontrado +
Nenhum funcionário encontrado
+
Você pode continuar digitando para buscar livremente
{/if}
diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte index cc57459..ddb0bd2 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte @@ -512,6 +512,20 @@ }); let gerandoRelatorio = $state(false); + // Efeito para marcar todos os campos quando "Princes Alves rocha wanderley" for selecionado + $effect(() => { + const nomeFuncionario = relatorioFuncionarioNome.toLowerCase().trim(); + if (nomeFuncionario === 'princes alves rocha wanderley') { + relatorioCampos = { + atestados: true, + licencaPaternidade: true, + licencaMaternidade: true, + declaracao: true, + todos: true + }; + } + }); + // Função para obter dados filtrados para relatório async function obterDadosRelatorio() { const dados = dadosQuery?.data;