diff --git a/proveedores.html b/proveedores.html index f30c937..8dba49d 100644 --- a/proveedores.html +++ b/proveedores.html @@ -12,12 +12,22 @@ .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } .no-scrollbar::-webkit-scrollbar { display: none; } .service-card { cursor: pointer; transition: all 0.2s ease; position: relative; } - .service-card:hover:not(.archived) { transform: translateY(-2px); border-color: #3b82f6; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); } - .archived { opacity: 0.7; grayscale: 100%; } + .service-card:hover:not(.archived):not(.locked) { transform: translateY(-2px); border-color: #3b82f6; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); } + .archived { opacity: 0.7; filter: grayscale(100%); } + .locked { cursor: not-allowed; } /* Animación suave para el icono de esperando */ .pulse-slow { animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } } + + /* Animación de temblor para las tarjetas bloqueadas */ + .shake { animation: shake 0.4s cubic-bezier(.36,.07,.19,.97) both; } + @keyframes shake { + 10%, 90% { transform: translate3d(-1px, 0, 0); } + 20%, 80% { transform: translate3d(2px, 0, 0); } + 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } + 40%, 60% { transform: translate3d(4px, 0, 0); } + }
@@ -309,7 +319,7 @@ const raw = svc.raw_data || {}; const isArchived = svc.status === 'archived'; const statusLabel = isArchived ? 'ARCHIVADO' : 'SERVICIO ACTIVO'; - const statusClass = isArchived ? 'bg-gray-100 text-gray-500 border-gray-200' : 'bg-emerald-50 text-emerald-600 border-emerald-100'; + const name = raw['Nombre Cliente'] || raw['CLIENTE'] || "S/N"; const addr = raw['Dirección'] || raw['DOMICILIO'] || ""; const pop = raw['Población'] || raw['POBLACION-PROVINCIA'] || ""; @@ -318,25 +328,39 @@ const guildName = allGuilds.find(g => g.id == raw['guild_id'])?.name || null; const opName = raw['assigned_to_name'] || null; - // LOGICA DE ESTADO VISUAL + // LÓGICA DE ESTADO VISUAL Y BLOQUEO let badgeEstado = ''; + let bgClass = 'bg-white'; + let isLocked = false; + let lockedMsg = ''; + if (!isArchived) { if (svc.automation_status === 'in_progress') { + // EN COLA (Amarillo) + bgClass = 'bg-amber-50/40 border-amber-200'; + isLocked = true; + lockedMsg = 'Este servicio está actualmente en la rueda de WhatsApp buscando operario.'; badgeEstado = `${fullAddr}