Actualizar servicios.html
This commit is contained in:
@@ -24,6 +24,11 @@
|
||||
.pulse-slow { animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
|
||||
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
|
||||
|
||||
/* Estilos para el chat */
|
||||
.msg-me { background-color: #dcfce7; border-bottom-right-radius: 4px; border: 1px solid #bbf7d0; align-self: flex-end; }
|
||||
.msg-other { background-color: #f1f5f9; border-bottom-left-radius: 4px; border: 1px solid #e2e8f0; align-self: flex-start; }
|
||||
.msg-internal { background-color: #fffbeb; border-radius: 8px; border: 1px solid #fde68a; align-self: center; width: 90%; }
|
||||
|
||||
/* Estilos base para formularios mejorados */
|
||||
.input-modern { @apply w-full bg-slate-50 border border-slate-200 px-4 py-3 rounded-xl text-sm font-semibold text-slate-700 outline-none transition-all focus:border-blue-500 focus:bg-white focus:ring-2 focus:ring-blue-100; }
|
||||
.label-modern { @apply block text-[10px] font-black text-slate-500 uppercase tracking-widest mb-1.5 ml-1; }
|
||||
@@ -247,8 +252,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="detailModal" class="fixed inset-0 bg-slate-900/90 hidden z-[120] flex items-center justify-center backdrop-blur-sm p-4 text-left">
|
||||
<div class="bg-white rounded-[2rem] shadow-2xl w-full max-w-4xl overflow-hidden flex flex-col fade-in relative">
|
||||
<div id="detailModal" class="fixed inset-0 bg-slate-900/90 hidden z-[120] flex items-center justify-center backdrop-blur-sm p-4 text-left">
|
||||
<div class="bg-white rounded-[2rem] shadow-2xl w-full max-w-6xl overflow-hidden flex flex-col fade-in relative">
|
||||
|
||||
<button onclick="closeDetailModal()" class="absolute top-6 right-6 text-slate-400 hover:text-red-500 bg-white shadow-sm border border-slate-200 p-2.5 rounded-full transition-all hover:bg-red-50 hover:border-red-100 z-20"><i data-lucide="x" class="w-5 h-5"></i></button>
|
||||
|
||||
@@ -267,12 +272,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-6 grid grid-cols-1 md:grid-cols-5 gap-6 bg-white overflow-y-auto max-h-[80vh] no-scrollbar">
|
||||
<div class="flex flex-col md:flex-row h-[75vh] bg-white overflow-hidden">
|
||||
<input type="hidden" id="detId">
|
||||
<input type="hidden" id="detCp">
|
||||
|
||||
<div class="md:col-span-3 space-y-4">
|
||||
<div class="bg-slate-50 p-5 rounded-[1.5rem] border border-slate-100 space-y-4">
|
||||
<div class="w-full md:w-7/12 p-6 overflow-y-auto no-scrollbar flex flex-col gap-6">
|
||||
<div class="bg-slate-50 p-5 rounded-[1.5rem] border border-slate-100 space-y-4 shrink-0">
|
||||
<div>
|
||||
<p class="text-[9px] font-black text-slate-400 uppercase tracking-widest">Asegurado / Cliente</p>
|
||||
<input type="text" id="editName" class="input-readonly w-full font-black text-slate-800 text-lg uppercase mt-0.5" readonly>
|
||||
@@ -298,15 +303,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="shrink-0">
|
||||
<p class="text-[9px] font-black text-slate-400 uppercase tracking-widest mb-2 ml-2">Descripción de la Avería</p>
|
||||
<textarea id="editDesc" rows="6" class="w-full bg-amber-50/60 border border-amber-100 p-5 rounded-[1.5rem] text-sm font-medium text-slate-700 shadow-inner leading-relaxed outline-none" readonly></textarea>
|
||||
<textarea id="editDesc" rows="4" class="w-full bg-amber-50/60 border border-amber-100 p-5 rounded-[1.5rem] text-sm font-medium text-slate-700 shadow-inner leading-relaxed outline-none" readonly></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="md:col-span-2 flex flex-col gap-4">
|
||||
|
||||
<div id="panelAsignado" class="bg-blue-50/40 p-6 rounded-[1.5rem] border border-blue-100 flex flex-col justify-between shadow-sm h-full hidden">
|
||||
<div id="panelAsignado" class="bg-blue-50/40 p-6 rounded-[1.5rem] border border-blue-100 flex flex-col shadow-sm shrink-0 hidden">
|
||||
<div class="space-y-6">
|
||||
<div>
|
||||
<p class="text-[9px] font-black text-slate-400 uppercase tracking-widest mb-1.5">Operario Asignado</p>
|
||||
@@ -325,75 +327,87 @@
|
||||
<div class="space-y-2 pt-2">
|
||||
<p class="text-[10px] font-black text-slate-800 uppercase ml-1 flex items-center gap-1.5"><i data-lucide="arrow-right-left" class="w-4 h-4 text-blue-500"></i> Cambio de Estado</p>
|
||||
<div class="relative">
|
||||
<select id="detStatusMap" class="w-full bg-slate-800 text-white border-none p-4 rounded-xl text-xs font-bold shadow-lg outline-none cursor-pointer appearance-none pr-10">
|
||||
</select>
|
||||
<select id="detStatusMap" class="w-full bg-slate-800 text-white border-none p-4 rounded-xl text-xs font-bold shadow-lg outline-none cursor-pointer appearance-none pr-10"></select>
|
||||
<i data-lucide="chevron-down" class="w-4 h-4 text-slate-400 absolute right-4 top-1/2 -translate-y-1/2 pointer-events-none"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button id="btnSaveAppt" onclick="saveAppointment()" class="w-full mt-8 bg-blue-600 text-white font-black py-4 rounded-2xl text-xs uppercase tracking-widest shadow-[0_8px_20px_-6px_rgba(37,99,235,0.5)] hover:bg-blue-700 hover:shadow-blue-600/30 transition-all active:scale-95 flex items-center justify-center gap-2 border border-blue-500">
|
||||
<button id="btnSaveAppt" onclick="saveAppointment()" class="w-full mt-6 bg-blue-600 text-white font-black py-4 rounded-2xl text-xs uppercase tracking-widest shadow-[0_8px_20px_-6px_rgba(37,99,235,0.5)] hover:bg-blue-700 transition-all active:scale-95 flex items-center justify-center gap-2">
|
||||
<i data-lucide="save" class="w-4 h-4"></i> Guardar Cambios
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="panelSinAsignar" class="bg-rose-50/40 p-6 rounded-[1.5rem] border border-rose-100 flex flex-col shadow-sm h-full hidden">
|
||||
<div id="panelSinAsignar" class="bg-rose-50/40 p-6 rounded-[1.5rem] border border-rose-100 flex flex-col shadow-sm shrink-0 hidden">
|
||||
<div class="flex items-center gap-2 mb-6">
|
||||
<div class="w-2.5 h-2.5 rounded-full bg-rose-500 animate-pulse"></div>
|
||||
<p class="text-[10px] font-black text-rose-600 uppercase tracking-widest">Opciones de Asignación</p>
|
||||
</div>
|
||||
|
||||
<div class="space-y-5 flex-1">
|
||||
<div class="space-y-5">
|
||||
<select id="reGremio" class="w-full bg-white border border-rose-200 p-4 rounded-2xl text-xs font-bold text-slate-700 outline-none" onchange="loadOps(this.value, 'reOperario')">
|
||||
<option value="">Seleccionar Gremio...</option>
|
||||
</select>
|
||||
|
||||
<div class="bg-slate-900 p-5 rounded-2xl text-white space-y-4">
|
||||
<button onclick="sendToAutomate()" id="btnAuto" class="w-full bg-blue-600 hover:bg-blue-500 p-3 rounded-xl flex items-center justify-between text-left transition-all active:scale-95">
|
||||
<div><p class="font-black uppercase text-xs">Mandar a la Cola</p><p class="text-[9px] text-blue-200">Rueda automática (WA)</p></div>
|
||||
<button onclick="sendToAutomate()" id="btnAuto" class="w-full bg-blue-600 hover:bg-blue-500 p-3 rounded-xl flex items-center justify-between transition-all active:scale-95">
|
||||
<div class="text-left"><p class="font-black uppercase text-xs">Mandar a la Cola</p><p class="text-[9px] text-blue-200">Rueda automática (WA)</p></div>
|
||||
<i data-lucide="zap" class="w-5 h-5"></i>
|
||||
</button>
|
||||
|
||||
<div class="bg-slate-800 p-4 rounded-xl space-y-3">
|
||||
<p class="font-black uppercase text-[9px] text-slate-400 text-center">O Asignar a Mano:</p>
|
||||
<select id="reOperario" class="w-full bg-slate-700 border-none text-white px-3 py-2.5 rounded-lg text-xs font-bold outline-none">
|
||||
<option value="">-- Elija gremio primero --</option>
|
||||
</select>
|
||||
<select id="reOperario" class="w-full bg-slate-700 border-none text-white px-3 py-2.5 rounded-lg text-xs font-bold outline-none"><option value="">-- Elija gremio primero --</option></select>
|
||||
<button onclick="assignManualFromPanel()" class="w-full bg-white text-slate-900 font-black py-2.5 rounded-lg text-[10px] uppercase hover:bg-emerald-400 transition-colors">Confirmar Directo</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="panelEnBolsa" class="bg-amber-50/40 p-6 rounded-[1.5rem] border border-amber-200 flex flex-col justify-center items-center shadow-sm h-full hidden text-center space-y-4">
|
||||
<div class="w-16 h-16 bg-amber-100 text-amber-500 rounded-full flex items-center justify-center animate-pulse shadow-inner">
|
||||
<i data-lucide="bot" class="w-8 h-8"></i>
|
||||
</div>
|
||||
<div id="panelEnBolsa" class="bg-amber-50/40 p-6 rounded-[1.5rem] border border-amber-200 flex flex-col items-center shadow-sm shrink-0 hidden text-center space-y-4">
|
||||
<div class="w-16 h-16 bg-amber-100 text-amber-500 rounded-full flex items-center justify-center animate-pulse"><i data-lucide="bot" class="w-8 h-8"></i></div>
|
||||
<div>
|
||||
<h4 class="font-black text-slate-800 text-lg uppercase tracking-tight">Servicio en Bolsa</h4>
|
||||
<p class="text-xs text-slate-500 mt-2 font-medium">El robot está buscando operario automáticamente. Por favor, no interfieras a menos que sea urgente.</p>
|
||||
<p class="text-xs text-slate-500 mt-2 font-medium">Buscando operario automáticamente.</p>
|
||||
</div>
|
||||
<div class="w-full space-y-3 mt-6">
|
||||
<button onclick="stopAutomation()" class="w-full bg-rose-500 hover:bg-rose-600 text-white font-black py-3.5 rounded-xl text-xs uppercase transition-colors shadow-md flex justify-center items-center gap-2">
|
||||
<i data-lucide="octagon" class="w-4 h-4"></i> Detener y Asignar Manual
|
||||
</button>
|
||||
<button onclick="closeDetailModal()" class="w-full bg-white border border-slate-200 text-slate-600 font-bold py-3.5 rounded-xl text-xs uppercase hover:bg-slate-50 transition-colors">
|
||||
Dejar que el Robot siga
|
||||
<button onclick="stopAutomation()" class="w-full bg-rose-500 hover:bg-rose-600 text-white font-black py-3.5 rounded-xl text-xs uppercase shadow-md flex justify-center gap-2 mt-4"><i data-lucide="octagon" class="w-4 h-4"></i> Detener Bolsa</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full md:w-5/12 border-t md:border-t-0 md:border-l border-slate-200 bg-slate-100 flex flex-col">
|
||||
<div class="p-4 bg-white border-b border-slate-200 flex items-center gap-2 shrink-0">
|
||||
<div class="bg-blue-100 text-blue-600 p-2 rounded-lg"><i data-lucide="message-square" class="w-4 h-4"></i></div>
|
||||
<h4 class="font-black text-sm uppercase text-slate-800 tracking-wider">Historial / Chat</h4>
|
||||
</div>
|
||||
|
||||
<div id="chatBox" class="flex-1 overflow-y-auto p-4 space-y-4 flex flex-col no-scrollbar">
|
||||
<div class="text-center text-xs font-bold text-slate-400 mt-10 uppercase tracking-widest"><i data-lucide="loader-2" class="w-4 h-4 animate-spin mx-auto mb-2"></i> Cargando...</div>
|
||||
</div>
|
||||
|
||||
<div class="p-4 bg-white border-t border-slate-200 shrink-0 space-y-3">
|
||||
<textarea id="chatInput" rows="2" placeholder="Escribe un mensaje o nota..." class="w-full bg-slate-50 border border-slate-200 rounded-xl p-3 text-sm font-medium outline-none focus:ring-2 focus:ring-blue-500 resize-none"></textarea>
|
||||
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<label class="flex items-center gap-2 cursor-pointer">
|
||||
<input type="checkbox" id="chatInternal" class="w-4 h-4 text-amber-500 rounded border-slate-300">
|
||||
<span class="text-[10px] font-black uppercase text-amber-600 bg-amber-50 px-2 py-1 rounded-md border border-amber-100">Nota Oculta</span>
|
||||
</label>
|
||||
|
||||
<button onclick="sendChatMessage()" class="bg-blue-600 hover:bg-blue-500 text-white px-5 py-2.5 rounded-xl text-xs font-black uppercase tracking-widest shadow-md transition-all active:scale-95 flex items-center gap-2">
|
||||
<i data-lucide="send" class="w-3.5 h-3.5"></i> Enviar
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="p-4 bg-slate-50 border-t border-slate-100 flex justify-end items-center px-8 gap-3">
|
||||
<div class="p-4 bg-white border-t border-slate-100 flex justify-start items-center px-8 gap-3 shrink-0">
|
||||
<div id="viewActions">
|
||||
<button onclick="enableEditing()" id="btnEnableEdit" class="text-slate-400 hover:text-blue-600 flex items-center gap-2 transition-all group">
|
||||
<span class="text-[10px] font-black uppercase tracking-widest">Editar Ficha</span>
|
||||
<div class="bg-white border border-slate-200 p-2 rounded-xl shadow-sm group-hover:border-blue-200 group-hover:bg-blue-50 transition-all"><i data-lucide="edit-3" class="w-4 h-4"></i></div>
|
||||
<div class="bg-slate-50 border border-slate-200 p-2 rounded-xl shadow-sm group-hover:border-blue-200 group-hover:bg-blue-50 transition-all"><i data-lucide="edit-3" class="w-4 h-4"></i></div>
|
||||
</button>
|
||||
</div>
|
||||
<div id="editActions" class="hidden flex gap-3">
|
||||
<button onclick="cancelEditing()" class="px-6 py-2 rounded-xl text-[10px] font-black uppercase tracking-widest text-slate-400 hover:bg-slate-100 transition-all">Cancelar</button>
|
||||
<button onclick="saveFullEdit()" class="px-8 py-3 bg-blue-600 text-white rounded-xl text-[10px] font-black uppercase tracking-widest shadow-lg active:scale-95 transition-all">Guardar Cambios</button>
|
||||
<button onclick="cancelEditing()" class="px-6 py-2 rounded-xl text-[10px] font-black uppercase tracking-widest text-slate-400 hover:bg-slate-100 transition-all border border-slate-200">Cancelar</button>
|
||||
<button onclick="saveFullEdit()" class="px-8 py-2.5 bg-blue-600 text-white rounded-xl text-[10px] font-black uppercase tracking-widest shadow-lg active:scale-95 transition-all">Guardar Cambios</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user