Pimia
DocumentaciónFrontendIntegracionesAPI ReferenceKnowledge BaseChangelog
PantallasPersonal

Equipo

Ruta /pimia/equipo · componentes, campos y acciones del checkout documentado.

Ruta y puntos de edición

Ruta: /pimia/equipo. Revisión: 2aec1b16cc01.

Esta ficha procede de lectura estática del código. Los componentes asociados pueden incluir diálogos cerrados y bloques condicionales. Las expresiones dinámicas se conservan como código; no equivalen a campos siempre visibles ni a permisos concedidos.

Vista en el tenant de referencia

Equipo en Pimia

Captura de escritorio del tenant de demostración Reformas Vera, S.L., tomada el 10 de septiembre de 2026. Los datos ilustran la composición de la pantalla y pueden cambiar.

CapaArchivo relativo al repositorio
Rutasrc/app/pimia/equipo/page.tsx
Adaptador Next.jssrc/host/screens/PimiaTeamScreens.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaTeamScreen.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaStates.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaScreenShell.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaPageHeader.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaStatusTabs.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaTablePanel.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaEmployeeDialog.tsx
Vista o componente asociadosrc/features/pimia/ui/PimiaConnectDialog.tsx

PimiaTeamScreen

Fuente: src/features/pimia/ui/PimiaTeamScreen.tsx.

Campos y controles

La columna «Reglas JSX» recoge propiedades explícitas; la validación adicional vive en los helpers y en el servidor. El enlace de estado indica dónde se lee el valor.

Etiqueta o pistaControlEnlace de estadoReglas JSXLínea
Buscar por nombre, correo, DNI o departamentoInputsearchNo declaradas en este nodo278

Columnas declaradas

  • Persona
  • Departamento
  • Contrato
  • Jornada
  • Vacaciones
  • Alta
  • Acciones

Acciones

Rótulo literalHandler o envíoDeshabilitado cuandoLínea
Nueva ficha() => { setEditando(null); setDialogoAbierto(true); }No declarado en este nodo246
Rótulo dinámico / icono() => { setEditando(ficha); setDialogoAbierto(true); }!puedeEscribir334
Dar de baja() => setConfirmando({ kind: "terminate", employee: ficha, })No declarado en este nodo398
Reactivar() => setConfirmando({ kind: "reactivate", employee: ficha, })No declarado en este nodo414
`Borrar la ficha de ${ficha.userName ?? "esta persona"}`() => setConfirmando({ kind: "delete", employee: ficha })No declarado en este nodo429
Rótulo dinámico / icono(event) => { event.preventDefault(); void confirmar(); }borrar.isPending || editar.isPending496

Estados reutilizados

  • PimiaNotConnected
  • PimiaRowsSkeleton
  • PimiaErrorState
  • PimiaEmpty

Clases de presentación locales

Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.

bg-muted/40, text-sm, text-muted-foreground, text-right, text-left, text-foreground, text-xs, gap-1.

PimiaStates

Fuente: src/features/pimia/ui/PimiaStates.tsx.

Acciones

Rótulo literalHandler o envíoDeshabilitado cuandoLínea
Conectar una empresa() => setIsConnectOpen(true)No declarado en este nodo99
Rótulo dinámico / icono() => void goPimiaPath(notFound.listPath)No declarado en este nodo233
Rótulo dinámico / iconodelegado al contenedorNo declarado en este nodo247
Rótulo dinámico / icono() => void goPimiaPath( closedDoor.action?.kind === "plan" ? PLAN_PATH : MODULES_SETTINGS_PATH, )No declarado en este nodo257
Volver a conectar() => setIsConnectOpen(true)No declarado en este nodo273
ReintentaronRetryNo declarado en este nodo279

Clases de presentación locales

Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.

gap-4, p-8, text-center, text-base, text-foreground, text-sm, text-muted-foreground, gap-2, overflow-hidden, bg-muted/40.

PimiaEmployeeDialog

Fuente: src/features/pimia/ui/PimiaEmployeeDialog.tsx.

Campos y controles

La columna «Reglas JSX» recoge propiedades explícitas; la validación adicional vive en los helpers y en el servidor. El enlace de estado indica dónde se lee el valor.

Etiqueta o pistaControlEnlace de estadoReglas JSXLínea
De quién es la fichaInputemailtype=email297
Sin etiqueta literal resolubleSelectusuario === null ? "" : String(usuario.id)No declaradas en este nodo374
DNI o NIEInputform.nationalIdmaxLength=20452
Nº de la Seguridad SocialInputform.socialSecurityNomaxLength=20463
DepartamentoInputform.departmentmaxLength=120475
Sin etiqueta literal resolubleSelectform.contractType === "" ? NINGUNO : form.contractTypeNo declaradas en este nodo486
Fecha de altaInputform.hiredAttype=date519
Fecha de bajaInputform.terminatedAttype=date528
Horas por semanaInputform.weeklyHourstype=number; min=1; max=80544
Días de vacaciones al añoInputform.vacationDaysPerYeartype=number; min=0; max=60557
Sin etiqueta literal resolubleSelectform.workScheduleId === "" ? NINGUNO : form.workScheduleIdNo declaradas en este nodo579
Sin etiqueta literal resolubleSelectform.workCalendarId === "" ? NINGUNO : form.workCalendarIdNo declaradas en este nodo606
IBAN para la nóminaInputform.payrollIbanmaxLength=34635

Acciones

Rótulo literalHandler o envíoDeshabilitado cuandoLínea
Rótulo dinámico / icono() => void buscarUsuario()buscando || email.trim() === ""308
Rótulo dinámico / icono() => { onClose(); void goPimiaPath(MODULES_SETTINGS_PATH); }No declarado en este nodo345
Elegir de la lista() => { setPorCorreo(false); setUsuario(null); setAvisoCorreo(null); }No declarado en este nodo358
No está en la lista: buscar por correo() => { setPorCorreo(true); setUsuario(null); }No declarado en este nodo423
CancelaronCloseNo declarado en este nodo662
Rótulo dinámico / icono() => void guardar()isSaving || faltaUsuario || problema !== null665

Clases de presentación locales

Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.

overflow-y-auto, bg-muted/40, text-sm, text-foreground, text-muted-foreground, gap-2, gap-1.5, text-xs, p-0, gap-4, sm:grid-cols-2, text-destructive.

PimiaConnectDialog

Fuente: src/features/pimia/ui/PimiaConnectDialog.tsx.

Campos y controles

La columna «Reglas JSX» recoge propiedades explícitas; la validación adicional vive en los helpers y en el servidor. El enlace de estado indica dónde se lee el valor.

Etiqueta o pistaControlEnlace de estadoReglas JSXLínea
Tu empresaInputbaseUrldisabled=connect.isPending114

Acciones

Rótulo literalHandler o envíoDeshabilitado cuandoLínea
Cancelar() => handleOpenChange(false)No declarado en este nodo155
Rótulo dinámico / iconosubmit del formulario!canSubmit162

Clases de presentación locales

Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.

text-sm, text-foreground, gap-2, text-muted-foreground, text-xs, text-destructive.

Hooks, adaptadores y utilidades relacionados

  • src/features/pimia/api/auth.ts
  • src/features/pimia/api/employees.ts
  • src/features/pimia/api/pimiaClient.ts
  • src/features/pimia/api/workCalendars.ts
  • src/features/pimia/api/workSchedules.ts
  • src/features/pimia/hooks/usePimiaAuth.ts
  • src/features/pimia/hooks/usePimiaCalendarios.ts
  • src/features/pimia/hooks/usePimiaHorarios.ts
  • src/features/pimia/hooks/usePimiaPersonal.ts
  • src/features/pimia/hooks/usePimiaResources.ts
  • src/features/pimia/lib/closedDoors.ts
  • src/features/pimia/lib/employees.ts
  • src/features/pimia/lib/missingRecord.ts
  • src/features/pimia/lib/scopeDenial.ts

Antes de entregar un retoque

  • Revisa los archivos de formulario y sus helpers antes de cambiar tipos, obligatoriedad o valores iniciales.
  • Prueba carga, error, vacío, permisos insuficientes y guardado pendiente en las variantes que usa esta pantalla.
  • Comprueba escritorio, móvil, teclado, tema oscuro y scroll con suficientes filas.
  • Conserva los handlers y la invalidación de datos al modificar la presentación.

En esta página