Actualizar index.html
This commit is contained in:
73
index.html
73
index.html
@@ -212,24 +212,65 @@
|
||||
}
|
||||
else if (srv.status_name === 'Visita Agendada' || (srv.scheduled_date && srv.scheduled_time)) {
|
||||
const endT = addOneHour(srv.scheduled_time);
|
||||
statusHtml = `
|
||||
<div class="bg-gradient-to-br from-emerald-400 to-emerald-600 p-6 rounded-3xl text-white shadow-lg shadow-emerald-500/30 relative overflow-hidden">
|
||||
<div class="flex items-center gap-5 mb-4">
|
||||
<div class="w-14 h-14 bg-white/20 rounded-2xl flex items-center justify-center backdrop-blur-md border border-white/30 shrink-0 relative z-10">
|
||||
<i data-lucide="calendar-check" class="w-7 h-7 text-white"></i>
|
||||
|
||||
// --- NUEVA LÓGICA: DETECCIÓN DE RETRASO ---
|
||||
const now = new Date();
|
||||
const schedParts = srv.scheduled_date.split('-'); // Formato esperado YYYY-MM-DD
|
||||
const endTimeParts = endT.split(':'); // Formato esperado HH:MM
|
||||
|
||||
let isLate = false;
|
||||
|
||||
if (schedParts.length === 3 && endTimeParts.length === 2) {
|
||||
// Construimos la fecha límite (la hora final del tramo de la cita)
|
||||
const limitDate = new Date(schedParts[0], schedParts[1] - 1, schedParts[2], endTimeParts[0], endTimeParts[1], 0);
|
||||
|
||||
// Si la fecha y hora actuales son mayores a la fecha límite, ¡Llega tarde!
|
||||
if (now > limitDate) {
|
||||
isLate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isLate) {
|
||||
// ESTADO: RETRASADO (Tono naranja/ámbar para pedir disculpas suavemente)
|
||||
statusHtml = `
|
||||
<div class="bg-amber-50 border border-amber-200 p-6 rounded-3xl relative overflow-hidden shadow-inner">
|
||||
<div class="flex items-center gap-4 relative z-10">
|
||||
<div class="w-14 h-14 bg-amber-500 text-white rounded-2xl flex items-center justify-center shadow-md shrink-0">
|
||||
<i data-lucide="clock-4" class="w-7 h-7"></i>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<p class="text-[9px] font-black uppercase tracking-widest text-amber-500 mb-0.5">Disculpe el retraso</p>
|
||||
<h4 class="font-black text-amber-900 uppercase text-lg leading-none mb-1.5 tracking-tight">Técnico Demorado</h4>
|
||||
<p class="text-[10px] font-bold text-amber-700 leading-tight">La cita estaba prevista hasta las ${endT}. El técnico ha tenido un contratiempo en la ruta anterior. Llegará lo antes posible.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative z-10 flex-1">
|
||||
<p class="text-[9px] font-black uppercase tracking-widest text-emerald-100 mb-0.5">Visita Confirmada</p>
|
||||
<p class="font-black uppercase text-lg leading-none mb-1.5">${formatDate(srv.scheduled_date)}</p>
|
||||
<p class="text-sm font-bold text-emerald-50 flex items-center gap-1.5"><i data-lucide="clock" class="w-4 h-4"></i> ${srv.scheduled_time} - ${endT}</p>
|
||||
<div class="mt-4 pt-4 border-t border-amber-200/60 relative z-10">
|
||||
<a href="cita.html?token=${urlToken}&service=${srv.id}" class="w-full bg-white border border-amber-200 text-amber-700 hover:bg-amber-100 font-black py-3 rounded-xl flex items-center justify-center gap-2 transition-colors text-[10px] uppercase tracking-widest shadow-sm">
|
||||
<i data-lucide="calendar-clock" class="w-4 h-4"></i> Prefiero Modificar la Cita
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="cita.html?token=${urlToken}&service=${srv.id}" class="w-full bg-white/20 hover:bg-white/30 text-white border border-white/30 backdrop-blur-md font-black py-3 rounded-xl flex items-center justify-center gap-2 transition-colors text-[10px] uppercase tracking-widest relative z-10">
|
||||
<i data-lucide="calendar-clock" class="w-4 h-4"></i> Modificar Cita
|
||||
</a>
|
||||
</div>`;
|
||||
}
|
||||
</div>`;
|
||||
} else {
|
||||
// ESTADO NORMAL: VISITA CONFIRMADA EN TIEMPO (Verde)
|
||||
statusHtml = `
|
||||
<div class="bg-gradient-to-br from-emerald-400 to-emerald-600 p-6 rounded-3xl text-white shadow-lg shadow-emerald-500/30 relative overflow-hidden">
|
||||
<div class="flex items-center gap-5 mb-4">
|
||||
<div class="w-14 h-14 bg-white/20 rounded-2xl flex items-center justify-center backdrop-blur-md border border-white/30 shrink-0 relative z-10">
|
||||
<i data-lucide="calendar-check" class="w-7 h-7 text-white"></i>
|
||||
</div>
|
||||
<div class="relative z-10 flex-1">
|
||||
<p class="text-[9px] font-black uppercase tracking-widest text-emerald-100 mb-0.5">Visita Confirmada</p>
|
||||
<p class="font-black uppercase text-lg leading-none mb-1.5">${formatDate(srv.scheduled_date)}</p>
|
||||
<p class="text-sm font-bold text-emerald-50 flex items-center gap-1.5"><i data-lucide="clock" class="w-4 h-4"></i> ${srv.scheduled_time} - ${endT}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="cita.html?token=${urlToken}&service=${srv.id}" class="w-full bg-white/20 hover:bg-white/30 text-white border border-white/30 backdrop-blur-md font-black py-3 rounded-xl flex items-center justify-center gap-2 transition-colors text-[10px] uppercase tracking-widest relative z-10">
|
||||
<i data-lucide="calendar-clock" class="w-4 h-4"></i> Modificar Cita
|
||||
</a>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
else {
|
||||
statusHtml = `
|
||||
<div class="bg-slate-100 border border-slate-200 p-6 rounded-3xl text-center">
|
||||
|
||||
Reference in New Issue
Block a user