Actualizar servicios.html
This commit is contained in:
@@ -458,7 +458,6 @@
|
|||||||
|
|
||||||
// --- EXTRACCIÓN INTELIGENTE DE UN SOLO TELÉFONO ---
|
// --- EXTRACCIÓN INTELIGENTE DE UN SOLO TELÉFONO ---
|
||||||
const rawPhone = raw["Teléfono"] || raw["TELEFONOS"] || raw["TELEFONO"] || "";
|
const rawPhone = raw["Teléfono"] || raw["TELEFONOS"] || raw["TELEFONO"] || "";
|
||||||
// Extrae el primer número que empiece por 6,7,8 o 9 y tenga 9 dígitos
|
|
||||||
const matchPhone = rawPhone.toString().match(/[6789]\d{8}/);
|
const matchPhone = rawPhone.toString().match(/[6789]\d{8}/);
|
||||||
const singlePhone = matchPhone ? matchPhone[0] : "";
|
const singlePhone = matchPhone ? matchPhone[0] : "";
|
||||||
|
|
||||||
@@ -547,7 +546,6 @@
|
|||||||
const btn = document.getElementById('btnAuto');
|
const btn = document.getElementById('btnAuto');
|
||||||
btn.innerHTML = '<i data-lucide="loader-2" class="w-5 h-5 animate-spin mx-auto"></i>';
|
btn.innerHTML = '<i data-lucide="loader-2" class="w-5 h-5 animate-spin mx-auto"></i>';
|
||||||
|
|
||||||
// Leemos si el usuario tiene activado el retraso (es true por defecto)
|
|
||||||
const savedSetting = localStorage.getItem('wa_delay_enabled');
|
const savedSetting = localStorage.getItem('wa_delay_enabled');
|
||||||
const useDelay = savedSetting === null ? true : savedSetting === 'true';
|
const useDelay = savedSetting === null ? true : savedSetting === 'true';
|
||||||
|
|
||||||
@@ -555,7 +553,6 @@
|
|||||||
const res = await fetch(`${API_URL}/providers/automate/${id}`, {
|
const res = await fetch(`${API_URL}/providers/automate/${id}`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
|
headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
|
||||||
// Añadimos useDelay al payload que va al servidor
|
|
||||||
body: JSON.stringify({ guild_id, cp, useDelay })
|
body: JSON.stringify({ guild_id, cp, useDelay })
|
||||||
});
|
});
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
@@ -629,8 +626,12 @@
|
|||||||
if(data.ok) sel.innerHTML = '<option value="">Seleccionar operario...</option>' + data.operators.map(o => `<option value="${o.id}">${o.full_name}</option>`).join('');
|
if(data.ok) sel.innerHTML = '<option value="">Seleccionar operario...</option>' + data.operators.map(o => `<option value="${o.id}">${o.full_name}</option>`).join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ====== AQUÍ ESTÁ LA NUEVA FUNCIÓN CORREGIDA ======
|
||||||
async function copyClientPortalLink() {
|
async function copyClientPortalLink() {
|
||||||
const phone = document.getElementById('detPhone').innerText;
|
const phone = document.getElementById('detPhone').innerText;
|
||||||
|
const name = document.getElementById('detName').innerText;
|
||||||
|
const addr = document.getElementById('detAddrText').innerText;
|
||||||
|
|
||||||
if (!phone || phone === "Sin Teléfono") {
|
if (!phone || phone === "Sin Teléfono") {
|
||||||
showToast("No hay un teléfono válido para este cliente.", "warning");
|
showToast("No hay un teléfono válido para este cliente.", "warning");
|
||||||
return;
|
return;
|
||||||
@@ -639,13 +640,18 @@
|
|||||||
const btn = document.getElementById('btnPortalLink');
|
const btn = document.getElementById('btnPortalLink');
|
||||||
const originalHtml = btn.innerHTML;
|
const originalHtml = btn.innerHTML;
|
||||||
|
|
||||||
// Animación de carga en el botón
|
|
||||||
btn.innerHTML = '<i data-lucide="loader-2" class="w-3 h-3 animate-spin"></i> Generando...';
|
btn.innerHTML = '<i data-lucide="loader-2" class="w-3 h-3 animate-spin"></i> Generando...';
|
||||||
lucide.createIcons();
|
lucide.createIcons();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`${API_URL}/clients/search?phone=${encodeURIComponent(phone)}`, {
|
// Ahora usamos /ensure en lugar de /search, y enviamos los datos por POST
|
||||||
headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` }
|
const res = await fetch(`${API_URL}/clients/ensure`, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"Authorization": `Bearer ${localStorage.getItem("token")}`
|
||||||
|
},
|
||||||
|
body: JSON.stringify({ phone: phone, name: name, address: addr })
|
||||||
});
|
});
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
|
|
||||||
@@ -665,7 +671,7 @@
|
|||||||
lucide.createIcons();
|
lucide.createIcons();
|
||||||
}, 3000);
|
}, 3000);
|
||||||
} else {
|
} else {
|
||||||
showToast("El cliente aún no está registrado en la base de datos oficial.", "warning");
|
showToast("No se pudo generar el token. Revisa la consola.", "warning");
|
||||||
btn.innerHTML = originalHtml;
|
btn.innerHTML = originalHtml;
|
||||||
lucide.createIcons();
|
lucide.createIcons();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user