WhatsApp CRM Funcional

Mi WhatsApp CRM

Estado: Esperando conexión…

Cargando el motor…

Nuevos Mensajes (Llegan en vivo)

En Proceso (Armando Pedido)

Despachados / Finalizados

Servicios

Servicios Técnicos Especializados – Servicio EV Bajío

Servicios Disponibles para tu EV

Centro de ingeniería automotriz de alta gama dedicado exclusivamente a la movilidad electrificada en el Bajío.

Híbridos y 100% Eléctricos

Especialistas sin restricciones. Atendemos arquitecturas complejas de modelos HEV, PHEV y plataformas 100% BEV multimarca.

🔬

Equipo Especializado

Operamos con escáneres topológicos, megóhmetros CAT IV y herramental de precisión certificado para Alta Tensión.

👨‍🔧

Personal Certificado

Intervenciones garantizadas y realizadas bajo estrictos protocolos clínicos por técnicos capacitados en ingeniería electromotriz.

Diagnóstico Clínico

Balanceo y Nivelación de Batería de Tracción

Nivelamos microscópicamente el voltaje de las celdas de tu batería (Litio o Ni-MH) para asegurar la integridad térmica y operativa del paquete de Alto Voltaje.

  • Aumenta drásticamente la vida útil (SoH).
  • Restauración de la Conducción segura.
  • Previene sobrecalentamientos críticos.
  • Optimización de Autonomía.
Balanceo de celdas de batería EV de alta gama
Diagnóstico Sistema HV

Sistema de Alta Tensión

Revisión y diagnóstico general de todo el perímetro de Alto Voltaje (HV), incluyendo cableado blindado naranja y contactores principales.

Reparación de Inversores EV

Inversores y Conversores

Revisión clínica y diagnóstico de electrónica de potencia: gestión de inversores de tracción y convertidores DC/DC.

Mantenimiento Moto Generador MG AWD

Moto Generadores “MG”

Diagnóstico avanzado de unidades MG para sistemas de tracción delantera, trasera o integral (AWD).

Conexiones de Alto Voltaje EV

Conexiones y Componentes

Revisión y diagnóstico de componentes de HV y LV. Mantenimiento a conexiones eléctricas de alta potencia para evitar arcos y fugas.

Ingeniería Integral Mecánica

Un vehículo electrificado requiere rigor mecánico tradicional. El torque inmediato de los EVs y su peso exigen que los sistemas de seguridad y tracción estén en perfectas condiciones bajo la supervisión de nuestro personal capacitado.

Frenos Regenerativos
Sistema de Suspensión
Dirección (EPS)
Transmisión Electrificada
Análisis Topológico
Mucho Más…
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WhatsApp CRM Funcional</title>
    <script src="/socket.io/socket.io.js"></script>
    <style>
        body { font-family: 'Segoe UI', Tahoma, sans-serif; background-color: #f0f2f5; margin: 0; padding: 20px; color: #333; }
        header { display: flex; justify-content: space-between; align-items: center; background-color: #075e54; color: white; padding: 15px 25px; border-radius: 8px; margin-bottom: 20px; }
        .qr-section { background: white; padding: 15px; border-radius: 8px; text-align: center; color: black; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
        .qr-placeholder { min-width: 150px; min-height: 150px; background-color: #e0e0e0; border: 2px dashed #999; margin: 10px auto; display: flex; align-items: center; justify-content: center; }
        .board { display: flex; gap: 20px; overflow-x: auto; padding-bottom: 10px; }
        .column { background-color: #e4e6eb; min-width: 300px; border-radius: 8px; padding: 15px; display: flex; flex-direction: column; gap: 10px; min-height: 400px; }
        .column h3 { margin-top: 0; font-size: 16px; color: #054c44; border-bottom: 2px solid #25d366; padding-bottom: 5px; }
        .card { background-color: white; padding: 15px; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); cursor: grab; border-left: 4px solid #25d366; }
        .card:active { cursor: grabbing; }
        .card-title { font-weight: bold; margin-bottom: 5px; color: #075e54; }
        .card-msg { font-size: 14px; color: #666; }
    </style>
</head>
<body>

    <header>
        <h2>Mi WhatsApp CRM</h2>
        <div class="qr-section">
            <p style="margin: 0; font-size: 14px;"><strong>Estado:</strong> Esperando conexión...</p>
            <div class="qr-placeholder" id="qr-container">
                Cargando el motor...
            </div>
        </div>
    </header>

    <div class="board">
        <div class="column" id="nuevos" ondrop="drop(event)" ondragover="allowDrop(event)">
            <h3>Nuevos Mensajes (Llegan en vivo)</h3>
        </div>
        <div class="column" id="proceso" ondrop="drop(event)" ondragover="allowDrop(event)">
            <h3>En Proceso (Armando Pedido)</h3>
        </div>
        <div class="column" id="despachados" ondrop="drop(event)" ondragover="allowDrop(event)">
            <h3>Despachados / Finalizados</h3>
        </div>
    </div>

    <script>
        // Conexión con el servidor
        const socket = io();
        const qrContainer = document.getElementById('qr-container');
        const boardNuevos = document.getElementById('nuevos');

        // Mostrar el código QR
        socket.on('qr', (url) => {
            qrContainer.innerHTML = `<img src="${url}" alt="QR de WhatsApp" style="width: 150px; height: 150px;">`;
        });

        // Mensaje de éxito al vincular
        socket.on('ready', (msg) => {
            qrContainer.innerHTML = `<span style="color: #075e54; font-weight: bold; font-size: 18px;">${msg}</span>`;
        });

        // Crear una tarjeta nueva cuando llega un mensaje de WhatsApp
        socket.on('message', (data) => {
            const card = document.createElement('div');
            card.className = 'card';
            card.draggable = true;
            card.id = 'msg-' + Date.now(); // ID único para arrastrar
            card.ondragstart = drag;
            card.innerHTML = `
                <div class="card-title">${data.from}</div>
                <div class="card-msg">${data.body}</div>
            `;
            boardNuevos.appendChild(card);
        });

        // Funciones Drag & Drop (Arrastrar y Soltar)
        function allowDrop(ev) { ev.preventDefault(); }
        function drag(ev) { ev.dataTransfer.setData("text", ev.target.id); }
        function drop(ev) {
            ev.preventDefault();
            var data = ev.dataTransfer.getData("text");
            var draggedElement = document.getElementById(data);
            if (ev.target.classList.contains('column')) {
                ev.target.appendChild(draggedElement);
            } else if (ev.target.closest('.column')) {
                ev.target.closest('.column').appendChild(draggedElement);
            }
        }
    </script>
</body>
</html>