Actualizar servicios2.html

This commit is contained in:
2026-03-22 15:50:59 +00:00
parent 6437cf7e71
commit 8d48098b93

View File

@@ -317,8 +317,17 @@
<hr class="border-slate-200 mb-4">
<div class="flex justify-between items-center mb-2">
<p class="text-[9px] font-black text-slate-400 uppercase tracking-widest flex items-center gap-1.5"><i data-lucide="sparkles" class="w-3 h-3 text-amber-500"></i> Avería (Limpiada por IA)</p>
<div class="flex items-center gap-2">
<label class="text-[9px] font-black text-slate-400 uppercase tracking-widest">Prioridad:</label>
<select id="editUrgent" class="input-readonly text-xs font-black bg-transparent border-none text-slate-700 outline-none cursor-pointer" disabled>
<option value="false">Normal</option>
<option value="true" class="text-red-600">🚨 Urgente</option>
</select>
</div>
</div>
<div class="pb-2">
<p class="text-[9px] font-black text-slate-400 uppercase tracking-widest mb-2 flex items-center gap-1.5"><i data-lucide="sparkles" class="w-3 h-3 text-amber-500"></i> Avería (Limpiada por IA)</p>
<textarea id="editDesc" rows="6" class="w-full bg-white border border-slate-200 p-4 rounded-xl text-sm font-medium text-slate-800 leading-relaxed outline-none overflow-y-auto" readonly></textarea>
</div>
</div>
@@ -869,10 +878,14 @@
const fullAddr = `${raw["Dirección"] || ""} ${raw["Población"] || ""}`.trim();
if(document.getElementById('editAddr')) document.getElementById('editAddr').value = fullAddr;
// Usamos la IA limpiadora para el modal también, o dejamos el original si se prefiere ver todo. Aquí usaremos la versión limpia para facilitar lectura.
// Usamos la IA limpiadora para el modal también, o dejamos el original si se prefiere ver todo. Aquí usaremos la versión limpia para facilitar lectura.
const descContent = limpiarPaja(raw["Descripción"] || raw["DESCRIPCION"] || "Sin notas.");
if(document.getElementById('editDesc')) document.getElementById('editDesc').value = descContent;
// 🛑 NUEVO: Cargar el selector de Urgencia
const isUrgent = s.is_urgent === true || (raw['Urgente'] && String(raw['Urgente']).toLowerCase() === 'sí') || (raw['URGENTE'] && String(raw['URGENTE']).toLowerCase() === 'si');
if(document.getElementById('editUrgent')) document.getElementById('editUrgent').value = isUrgent ? "true" : "false";
// Lógica de paneles
const dbStat = raw.status_operativo;
const statusObj = systemStatuses.find(st => String(st.id) === String(dbStat)) || systemStatuses[0];
@@ -923,10 +936,11 @@
document.getElementById('viewActions').classList.add('hidden');
document.getElementById('editActions').classList.remove('hidden');
['editName', 'editPhone', 'editAddr', 'editDesc'].forEach(id => {
['editName', 'editPhone', 'editAddr', 'editDesc', 'editUrgent'].forEach(id => {
const el = document.getElementById(id);
if(el) {
el.readOnly = false;
if (el.tagName === 'SELECT') el.disabled = false; // Desbloqueamos el selector
el.classList.add('input-editable');
el.classList.remove('input-readonly');
}
@@ -937,10 +951,11 @@
document.getElementById('viewActions').classList.remove('hidden');
document.getElementById('editActions').classList.add('hidden');
['editName', 'editPhone', 'editAddr', 'editDesc'].forEach(id => {
['editName', 'editPhone', 'editAddr', 'editDesc', 'editUrgent'].forEach(id => {
const el = document.getElementById(id);
if(el) {
el.readOnly = true;
if (el.tagName === 'SELECT') el.disabled = true; // Bloqueamos el selector
el.classList.add('input-readonly');
el.classList.remove('input-editable');
}
@@ -953,7 +968,8 @@
name: document.getElementById('editName').value,
phone: document.getElementById('editPhone').value,
address: document.getElementById('editAddr').value,
description: document.getElementById('editDesc').value
description: document.getElementById('editDesc').value,
is_urgent: document.getElementById('editUrgent').value === 'true' // 🛑 NUEVO: Enviamos la urgencia
};
try {
const res = await fetch(`${API_URL}/providers/scraped/${id}`, {