refactor: improve UI and functionality in employee registration and audit pages

- Enhanced the employee registration form by adding a dependents management section, allowing users to input details such as relationship, name, CPF, and birth date.
- Updated the layout and styling of the audit page, including improved statistics display and user feedback elements.
- Refined the handling of user actions in the audit logs, providing clearer labels and better organization of information.
- Improved the overall user experience by ensuring consistent design patterns and responsive elements across the registration and audit interfaces.
This commit is contained in:
2025-11-04 06:31:28 -03:00
parent d5c01aabab
commit f7cc758d33
3 changed files with 1848 additions and 1708 deletions

View File

@@ -702,71 +702,51 @@
</div>
{/if}
<!-- Filtros -->
<div class="card bg-base-100 shadow-xl mb-6">
<div class="card-body">
<h2 class="card-title mb-4">Filtros</h2>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div class="form-control">
<label class="label">
<span class="label-text">Tipo</span>
</label>
<select
bind:value={filtroTipo}
class="select select-bordered"
>
<!-- Filtros -->
<div class="card bg-base-100 shadow-xl mb-6">
<div class="card-body">
<h2 class="card-title mb-4">Filtros</h2>
<div class="grid grid-cols-1 md:grid-cols-5 gap-4 items-end">
<div class="form-control">
<label class="label cursor-pointer flex flex-col gap-2" for="filtro-tipo">
<span class="label-text">Tipo</span>
<select id="filtro-tipo" class="select select-bordered" bind:value={filtroTipo}>
<option value="todos">Todos</option>
<option value="atestado_medico">Atestado Médico</option>
<option value="declaracao_comparecimento">Declaração</option>
<option value="maternidade">Licença Maternidade</option>
<option value="paternidade">Licença Paternidade</option>
</select>
</div>
</label>
</div>
<div class="form-control">
<label class="label">
<span class="label-text">Funcionário</span>
</label>
<input
type="text"
bind:value={filtroFuncionario}
placeholder="Buscar por nome..."
class="input input-bordered"
/>
</div>
<div class="form-control">
<label class="label cursor-pointer flex flex-col gap-2" for="filtro-funcionario">
<span class="label-text">Funcionário</span>
<input id="filtro-funcionario" class="input input-bordered" type="text" bind:value={filtroFuncionario} placeholder="Nome do colaborador" />
</label>
</div>
<div class="form-control">
<label class="label">
<span class="label-text">Data Início</span>
</label>
<input
type="date"
bind:value={filtroDataInicio}
class="input input-bordered"
/>
</div>
<div class="form-control">
<label class="label cursor-pointer flex flex-col gap-2" for="filtro-data-inicio">
<span class="label-text">Data Início</span>
<input id="filtro-data-inicio" class="input input-bordered" type="date" bind:value={filtroDataInicio} />
</label>
</div>
<div class="form-control">
<label class="label">
<span class="label-text">Data Fim</span>
</label>
<div class="flex gap-2">
<input
type="date"
bind:value={filtroDataFim}
class="input input-bordered flex-1"
/>
<button
class="btn btn-outline"
onclick={limparFiltros}
>
Limpar
</button>
</div>
</div>
<div class="form-control">
<label class="label cursor-pointer flex flex-col gap-2" for="filtro-data-fim">
<span class="label-text">Data Fim</span>
<input id="filtro-data-fim" class="input input-bordered" type="date" bind:value={filtroDataFim} />
</label>
</div>
<div class="flex gap-2 justify-end">
<button class="btn btn-outline" onclick={limparFiltros}>Limpar</button>
</div>
</div>
</div>
</div>
<!-- Calendário Interativo -->
{#if eventosQuery?.data}
@@ -1136,8 +1116,8 @@
: "Declaração"}
</span>
</td>
<td>{formatarData(atestado.dataInicio)}</td>
<td>{formatarData(atestado.dataFim)}</td>
<td class="whitespace-nowrap font-mono text-xs">{formatarData(atestado.dataInicio)}</td>
<td class="whitespace-nowrap font-mono text-xs">{formatarData(atestado.dataFim)}</td>
<td>{atestado.dias}</td>
<td>
<span
@@ -1203,8 +1183,8 @@
{licenca.ehProrrogacao ? " (Prorrogação)" : ""}
</span>
</td>
<td>{formatarData(licenca.dataInicio)}</td>
<td>{formatarData(licenca.dataFim)}</td>
<td class="whitespace-nowrap font-mono text-xs">{formatarData(licenca.dataInicio)}</td>
<td class="whitespace-nowrap font-mono text-xs">{formatarData(licenca.dataFim)}</td>
<td>{licenca.dias}</td>
<td>
<span
@@ -1279,9 +1259,9 @@
/>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Início <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={atestadoMedico.dataInicio}
@@ -1291,9 +1271,9 @@
</div>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Fim <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={atestadoMedico.dataFim}
@@ -1303,9 +1283,9 @@
</div>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">CID <span class="text-error">*</span></span>
</label>
</div>
<input
type="text"
bind:value={atestadoMedico.cid}
@@ -1333,9 +1313,9 @@
</div>
<div class="form-control md:col-span-2">
<label class="label">
<div class="label">
<span class="label-text font-medium">Observações</span>
</label>
</div>
<textarea
bind:value={atestadoMedico.observacoes}
class="textarea textarea-bordered h-24"
@@ -1379,9 +1359,9 @@
/>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Início <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={declaracao.dataInicio}
@@ -1391,9 +1371,9 @@
</div>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Fim <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={declaracao.dataFim}
@@ -1417,9 +1397,9 @@
</div>
<div class="form-control md:col-span-2">
<label class="label">
<div class="label">
<span class="label-text font-medium">Observações</span>
</label>
</div>
<textarea
bind:value={declaracao.observacoes}
class="textarea textarea-bordered h-24"
@@ -1463,9 +1443,9 @@
/>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Início <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={licencaMaternidade.dataInicio}
@@ -1475,18 +1455,18 @@
</div>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Fim <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={licencaMaternidade.dataFim}
class="input input-bordered"
required
/>
<label class="label">
<div class="label">
<span class="label-text-alt">Calculado automaticamente (120 dias)</span>
</label>
</div>
</div>
<div class="form-control md:col-span-2">
@@ -1502,9 +1482,9 @@
{#if licencaMaternidade.ehProrrogacao}
<div class="form-control md:col-span-2">
<label class="label">
<div class="label">
<span class="label-text font-medium">Licença Original <span class="text-error">*</span></span>
</label>
</div>
<select
bind:value={licencaMaternidade.licencaOriginalId}
class="select select-bordered"
@@ -1539,9 +1519,9 @@
</div>
<div class="form-control md:col-span-2">
<label class="label">
<div class="label">
<span class="label-text font-medium">Observações</span>
</label>
</div>
<textarea
bind:value={licencaMaternidade.observacoes}
class="textarea textarea-bordered h-24"
@@ -1585,9 +1565,9 @@
/>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Início <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={licencaPaternidade.dataInicio}
@@ -1597,18 +1577,18 @@
</div>
<div class="form-control">
<label class="label">
<div class="label">
<span class="label-text font-medium">Data Fim <span class="text-error">*</span></span>
</label>
</div>
<input
type="date"
bind:value={licencaPaternidade.dataFim}
class="input input-bordered"
required
/>
<label class="label">
<div class="label">
<span class="label-text-alt">Calculado automaticamente (20 dias)</span>
</label>
</div>
</div>
<div class="form-control md:col-span-2">
@@ -1628,9 +1608,9 @@
</div>
<div class="form-control md:col-span-2">
<label class="label">
<div class="label">
<span class="label-text font-medium">Observações</span>
</label>
</div>
<textarea
bind:value={licencaPaternidade.observacoes}
class="textarea textarea-bordered h-24"