Files
2026-08-26 16:31:12 -04:00

2 lines
8.0 KiB
JavaScript

import{u as q,r as i,g as l,j as e,c as $,L as h,a as w}from"./index-kE4_6-nI.js";import{M as o,C as c,P as d}from"./DashboardParts-nkkWHQei.js";import{P as M}from"./PageHeader-BIrj68Xg.js";import{S as H}from"./StatusBadge-B-6mWO83.js";import{R as p,C as j,X as m,Y as u,T as v,B as K,a as g}from"./BarChart-DxUPBeMP.js";import{L as V,a as z}from"./LineChart-CrnmrpEO.js";const G=[{mes:"Mar",dias:18},{mes:"Abr",dias:17},{mes:"May",dias:19},{mes:"Jun",dias:15},{mes:"Jul",dias:14},{mes:"Ago",dias:12}],_=[{pais:"RD",activas:8,cerradas:5},{pais:"GT",activas:6,cerradas:4},{pais:"CO",activas:5,cerradas:6},{pais:"PA",activas:4,cerradas:3},{pais:"MX",activas:3,cerradas:4},{pais:"CR",activas:2,cerradas:3}],W=[{name:"Búsqueda",value:2.1,tone:"ok"},{name:"1.ª entrevista",value:4.8,tone:"late"},{name:"2.ª entrevista",value:3.4,tone:"risk"},{name:"Referencias",value:1.6,tone:"ok"},{name:"Exámenes médicos",value:2.7,tone:"risk"}];function Z(){const{requisitions:x,recruiters:f}=q(),[n,b]=i.useState("Todos los países"),[S,k]=i.useState("Últimos 6 meses"),[y,C]=i.useState("Casos activos"),[N,A]=i.useState("Global"),[T,F]=i.useState("Promedio global"),[E,L]=i.useState("Top 6"),a=i.useMemo(()=>x.filter(s=>n==="Todos los países"||s.country===n),[n,x]).filter(s=>!["borrador","cerrada","cancelada"].includes(s.status)),P=a.filter(s=>s.status.startsWith("pendiente")).length,R=a.filter(s=>["risk","late"].includes(l(s))).length,t=a.reduce((s,r)=>({...s,[l(r)]:s[l(r)]+1}),{ok:0,risk:0,late:0,neutral:0}),D=a.filter(s=>["risk","late"].includes(l(s))).slice(0,4);return e.jsxs("div",{className:"page-stack",children:[e.jsx(M,{eyebrow:"Vista global · Dirección de RRHH",title:"El pulso del reclutamiento",description:"Aprobaciones, SLA y capacidad del equipo en una sola lectura operativa.",actions:e.jsxs("div",{className:"filter-pair",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Territorio"}),e.jsxs("select",{value:n,onChange:s=>b(s.target.value),children:[e.jsx("option",{children:"Todos los países"}),$.map(s=>e.jsx("option",{children:s},s))]})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Período"}),e.jsxs("select",{value:S,onChange:s=>k(s.target.value),children:[e.jsx("option",{children:"Últimos 6 meses"}),e.jsx("option",{children:"Este mes"}),e.jsx("option",{children:"Este trimestre"})]})]})]})}),e.jsxs("section",{className:"metrics-grid","aria-label":"Indicadores principales",children:[e.jsx(o,{label:"Casos activos",value:a.length,note:`${a.filter(s=>s.status==="reclutando").length} en reclutamiento`}),e.jsx(o,{label:"Por aprobar",value:P,note:"RRHH + Administración",tone:"orange"}),e.jsx(o,{label:"SLA en atención",value:R,note:"En riesgo o vencidos",tone:"red"}),e.jsx(o,{label:"TTF promedio",value:"12 d",note:"2 días menos que julio",tone:"green"})]}),e.jsxs("div",{className:"dashboard-grid dashboard-grid--lead",children:[e.jsx(c,{title:"Semáforo de SLA",description:"Tiempo total desde el envío de la requisición",filter:e.jsx(d,{label:"Filtrar semáforo",value:y,onChange:C,options:["Casos activos","Pendientes","En reclutamiento"]}),className:"chart-panel--signal",children:e.jsxs("div",{className:"sla-traffic",role:"img","aria-label":`${t.ok} dentro del SLA, ${t.risk} en riesgo y ${t.late} vencidos`,children:[e.jsxs("div",{className:"sla-traffic__total",children:[e.jsx("strong",{children:a.length}),e.jsx("span",{children:"casos medidos"})]}),e.jsxs("div",{className:"sla-traffic__segments",children:[e.jsxs("div",{className:"sla-segment sla-segment--ok",children:[e.jsx("b",{children:t.ok}),e.jsx("span",{children:"En tiempo"}),e.jsx("small",{children:"Margen mayor a 3 días"})]}),e.jsxs("div",{className:"sla-segment sla-segment--risk",children:[e.jsx("b",{children:t.risk}),e.jsx("span",{children:"En riesgo"}),e.jsx("small",{children:"3 días o menos"})]}),e.jsxs("div",{className:"sla-segment sla-segment--late",children:[e.jsx("b",{children:t.late}),e.jsx("span",{children:"Vencidos"}),e.jsx("small",{children:"Acción inmediata"})]})]}),e.jsxs("div",{className:"sla-split",children:[e.jsxs("span",{children:["Aprobación ",e.jsx("b",{children:"3.1 d"})]}),e.jsx("i",{}),e.jsxs("span",{children:["Reclutamiento ",e.jsx("b",{children:"8.9 d"})]})]})]})}),e.jsx(c,{title:"TTF en descenso",description:"Días hábiles desde envío hasta cierre",filter:e.jsx(d,{label:"Filtrar TTF",value:N,onChange:A,options:["Global","Por país","Por tier"]}),children:e.jsx("div",{className:"chart-height chart-height--compact",children:e.jsx(p,{width:"100%",height:"100%",children:e.jsxs(V,{data:G,margin:{top:12,right:18,bottom:0,left:-18},children:[e.jsx(j,{vertical:!1,stroke:"#E4E8EA"}),e.jsx(m,{dataKey:"mes",axisLine:!1,tickLine:!1,tick:{fill:"#6B7780",fontSize:11}}),e.jsx(u,{axisLine:!1,tickLine:!1,tick:{fill:"#6B7780",fontSize:11}}),e.jsx(v,{contentStyle:{border:"1px solid #D0D0D0",borderRadius:4,fontFamily:"Arial"}}),e.jsx(z,{type:"monotone",dataKey:"dias",stroke:"#4F758B",strokeWidth:3,dot:{fill:"#6CC24A",stroke:"#FFFFFF",strokeWidth:2,r:4},activeDot:{r:6}})]})})})})]}),e.jsxs("div",{className:"dashboard-grid",children:[e.jsxs(c,{title:"Velocidad por etapa",description:"El color revela dónde se concentra la espera",filter:e.jsx(d,{label:"Filtrar velocidad",value:T,onChange:F,options:["Promedio global","Tier 1","Tier 2","Tier 3"]}),children:[e.jsx("div",{className:"stage-heatmap",children:W.map(s=>e.jsxs("div",{className:`heat-row heat-row--${s.tone}`,children:[e.jsx("span",{children:s.name}),e.jsxs("b",{children:[s.value," d"]}),e.jsx("i",{style:{width:`${s.value*16}%`}})]},s.name))}),e.jsxs("p",{className:"chart-insight",children:[e.jsx("strong",{children:"Cuello de botella:"})," la 1.ª entrevista concentra el 31% del tiempo total."]})]}),e.jsxs(c,{title:"Actividad por territorio",description:"Casos activos y cierres del período",filter:e.jsx(d,{label:"Filtrar territorios",value:E,onChange:L,options:["Top 6","Todos","Solo Caribe"]}),children:[e.jsx("div",{className:"chart-height chart-height--compact",children:e.jsx(p,{width:"100%",height:"100%",children:e.jsxs(K,{data:_,margin:{top:12,right:4,bottom:0,left:-24},children:[e.jsx(j,{vertical:!1,stroke:"#E4E8EA"}),e.jsx(m,{dataKey:"pais",axisLine:!1,tickLine:!1,tick:{fill:"#6B7780",fontSize:11}}),e.jsx(u,{axisLine:!1,tickLine:!1,tick:{fill:"#6B7780",fontSize:11}}),e.jsx(v,{contentStyle:{border:"1px solid #D0D0D0",borderRadius:4,fontFamily:"Arial"}}),e.jsx(g,{dataKey:"activas",fill:"#4F758B"}),e.jsx(g,{dataKey:"cerradas",fill:"#6CC24A"})]})})}),e.jsxs("div",{className:"chart-legend",children:[e.jsxs("span",{children:[e.jsx("i",{className:"legend-blue"}),"Activas"]}),e.jsxs("span",{children:[e.jsx("i",{className:"legend-green"}),"Cerradas"]})]})]})]}),e.jsxs("div",{className:"dashboard-grid dashboard-grid--bottom",children:[e.jsxs("section",{className:"data-panel",children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Atención hoy"}),e.jsx("p",{children:"Casos que requieren una decisión"})]}),e.jsx(h,{to:"/requisiciones",children:"Ver todos"})]}),e.jsx("div",{className:"attention-list",children:D.map(s=>e.jsxs(h,{to:`/requisiciones/${s.id}`,className:`attention-row signal-${l(s)}`,children:[e.jsxs("div",{children:[e.jsx("b",{children:s.position}),e.jsxs("span",{children:[s.id," · ",s.country]})]}),e.jsx(H,{status:s.status}),e.jsx("strong",{children:l(s)==="late"?"Vencido":"≤ 3 días"})]},s.id))})]}),e.jsxs("section",{className:"data-panel capacity-preview",children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Capacidad del equipo"}),e.jsx("p",{children:"Puntaje de carga activo"})]}),e.jsx(h,{to:"/capacidad",children:"Planear"})]}),e.jsx("div",{children:f.map(s=>{const r=w(s.score);return e.jsxs("div",{className:"capacity-line",children:[e.jsx("span",{className:"avatar avatar--small",children:s.name.split(" ").map(B=>B[0]).join("")}),e.jsxs("div",{children:[e.jsx("b",{children:s.name}),e.jsx("small",{children:r.label})]}),e.jsx("progress",{value:Math.min(s.score,30),max:"30",className:`capacity-progress capacity-progress--${r.tone}`}),e.jsx("strong",{children:s.score})]},s.id)})})]})]})]})}export{Z as default};